为什么这张地图没有出现?

时间:2015-03-05 02:56:48

标签: javascript html openlayers

试图弄清楚为什么没有出现,它应该显示一个带有图层的地图来显示天气。我使用了Openlayers和OWM API的组合我已经在Google Chrome和Firefox上尝试了这个并且无济于事:

<body onload="init()">
<div id="map" class="map"></div>
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script src="http://openweathermap.org/js/OWM.OpenLayers.1.3.2.js" >         </script>

<script type="text/javascript">
    var map;
    function init() {
//Center  ( mercator coordinates )
var lat = 515566; 
var lon = 4688454;

// if  you use WGS 1984 coordinate you should  convert to mercator
//  lonlat.transform(
//      new OpenLayers.Projection("EPSG:4326"), // transform from WGS     1984
//      new OpenLayers.Projection("EPSG:900913") // to Spherical Mercator Projection
//  );

var lonlat = new OpenLayers.LonLat(lon, lat);

    map = new OpenLayers.Map("basicMap");

// Create overlays
// map layer OSM
    var mapnik = new OpenLayers.Layer.OSM();
// Create station layer
var stations = new OpenLayers.Layer.Vector.OWMStations("Stations");
// Create weather layer 
var city = new OpenLayers.Layer.Vector.OWMWeather("Weather");

//connect layers to map
map.addLayers([mapnik, stations, city]);

// Add Layer switcher
map.addControl(new OpenLayers.Control.LayerSwitcher());         

map.setCenter( lonlat, 10 );
}
</script>
</body>

1 个答案:

答案 0 :(得分:1)

如果你改变了

<div id="map" class="map"></div>

<div id="basicMap" class="map"></div>

它会起作用。

这是因为当您最初创建地图时,将名称设置为basicMap,并且div id必须匹配:

map = new OpenLayers.Map("basicMap");