试图弄清楚为什么没有出现,它应该显示一个带有图层的地图来显示天气。我使用了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>
答案 0 :(得分:1)
如果你改变了
<div id="map" class="map"></div>
到
<div id="basicMap" class="map"></div>
它会起作用。
这是因为当您最初创建地图时,将名称设置为basicMap,并且div id必须匹配:
map = new OpenLayers.Map("basicMap");