I cant seem to load a basic webmap into a bootstrap div.
<div class="row">
<div class="col-xs-12" style="background-color: red">
<div id="viewDiv">
</div>
</div>
</div>
No map, any ideas? Is there some conflict with 4.0 and bootstrap?
Solved! Go to Solution.
Specify a CSS height attribute for the viewDiv container.
Can you post the rest of your code or a sample that is similar?
All I did was add bootstrap/jquery and inclose the view container div.
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Get started with MapView - Create a 2D map</title> <style> html, body, #viewDiv { padding: 0; margin: 0; height: 100%; width: 100%; } </style> <link rel="stylesheet" href="https://js.arcgis.com/4.0/esri/css/main.css"> <script src="https://js.arcgis.com/4.0/"></script> <script src="https://code.jquery.com/jquery-2.2.2.min.js"></script> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script> require([ "esri/Map", "esri/views/MapView", "dojo/domReady!" ], function(Map, MapView){ var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", // Reference to the scene div created in step 5 map: map, // Reference to the map object created before the scene zoom: 4, // Sets the zoom level based on level of detail (LOD) center: [15, 65] // Sets the center point of view in lon/lat }); }); </script> </head> <body> <div class="row"> <div class="col-sm-12"> <div id="viewDiv"></div> </div> </div> </body> </html>
Kyle,
Not sure why you would want to use bootstrap grid when you only have a one row one column layout but here is your code fixed for that:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Get started with MapView - Create a 2D map</title> <style> html, body, #viewDiv { padding: 0; margin: 0; height: 100%; width: 100%; } .nopadding { padding: 0 !important; margin: 0 !important; } </style> <link rel="stylesheet" href="https://js.arcgis.com/4.0/esri/css/main.css"> <script src="https://js.arcgis.com/4.0/"></script> <script src="https://code.jquery.com/jquery-2.2.2.min.js"></script> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <script> require([ "esri/Map", "esri/views/MapView", "dojo/dom-style", "dojo/domReady!" ], function(Map, MapView, domStyle) { var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", // Reference to the scene div created in step 5 map: map, // Reference to the map object created before the scene zoom: 4, // Sets the zoom level based on level of detail (LOD) center: [15, 65] // Sets the center point of view in lon/lat }); domStyle.set("viewDiv", "height", getPageHeight() + "px"); function getPageHeight() { var body = document.body, html = document.documentElement; var height = Math.max(body.scrollHeight, body.offsetHeight, html.clientHeight, html.scrollHeight, html.offsetHeight); return height; } }); </script> </head> <body> <div class="row nopadding"> <div class="col-md-12 nopadding"> <div id="viewDiv"></div> </div> </div> </body> </html>
The 1 row/1 column was just an example. Change it to 2 columns and it performs the same way. Adding a height to the div used for the map container has solved it.
Specify a CSS height attribute for the viewDiv container.
Thank you.