2013-07-02 95 views
1

我想獲取certian城市的天氣信息(城市正在動態發佈),並且我遇到了這個非常容易集成的map api。但是一旦我嘗試了它,即使我給了另一座城市的經緯度,例如慕尼黑,它也只會顯示莫斯科。OpenWeatherMap - 地圖只顯示莫斯科

這是代碼:

<html> 
<head> 
<script src="http://openlayers.org/api/OpenLayers.js"></script> 
<script src="http://openweathermap.org/js/OWM.OpenLayers.1.3.4.js" ></script> 
</head> 
<body onload="init()"> 
<div id="basicMap"></div> 
</body> 
<script type="text/javascript"> 
function init() { 
//Center of map 
var lat = 48.24806; // <--- some dynamic location 
var lon = 11.90166; //<--- some dynamic location 
var lonlat = new OpenLayers.LonLat(lon, lat); 
    var map = new OpenLayers.Map("basicMap"); 
// Create overlays 
// OSM 
    var mapnik = new OpenLayers.Layer.OSM(); 
// Stations 
var stations = new OpenLayers.Layer.Vector.OWMStations("Stations"); 
// Current weather 
var city = new OpenLayers.Layer.Vector.OWMWeather("Weather"); 
//Addind maps 
map.addLayers([mapnik, stations, city]); 
map.setCenter(lonlat, 10); 
} 
</script> 
</html> 

我只是想節省一些能源負荷爲我的服務器,並用JS做這樣的天氣問題前端。如果這可行,這將是美好的,請儘可能幫助。爲什麼我在這裏堅持莫斯科,即使給不同的拉特和隆隆。這是api的鏈接: ​​

+0

在這個例子中,似乎經緯度不是使用點。你有沒有嘗試刪除點? – Ron

+0

@RyonnSan,是的,你可能是對的,但用點不是一個有趣的莫斯科拉特,但讓我試試 – doniyor

+0

@RyonnSan,看,如果我給沒有點,地圖顯示完全不同的地方,沙特阿拉伯 – doniyor

回答

1

顯然你需要設置它的投影正常工作。

下面是代碼的在倫敦中心的一個例子:

<html> 
<head> 
<script src="http://openweathermap.org/js/OWM.OpenLayers.1.3.4.js" ></script> 
</head> 
<body onload="init()"> 
<div id="basicMap"></div> 
</body> 
<script type="text/javascript"> 
function init() { 
//Center of map 
var lat = 51.5112139; // <--- some dynamic location 
var lon = -0.1198244; //<--- some dynamic location 
var map = new OpenLayers.Map("basicMap"); 
var fromProjection = new OpenLayers.Projection("EPSG:4326"); // Transform from WGS 1984 
var toProjection = new OpenLayers.Projection("EPSG:900913"); // to Spherical Mercator Projection 
var position  = new OpenLayers.LonLat(lon, lat).transform(fromProjection, toProjection); 
// Create overlays 
// OSM 
var mapnik = new OpenLayers.Layer.OSM(); 
// Stations 
var stations = new OpenLayers.Layer.Vector.OWMStations("Stations"); 
// Current weather 
var city = new OpenLayers.Layer.Vector.OWMWeather("Weather"); 
//Addind maps 
map.addLayers([mapnik, stations, city]); 
map.setCenter(position, 5); 
} 

</script> 
</html> 

要獲得的經度和你的位置的緯度,你可以使用這個網址: http://www.mapcoordinates.net/en

希望這有助於

+0

謝謝,我還沒有測試,但似乎很有可能工作。 :) – doniyor

+0

感謝您的信任:) – Ron

+0

它甚至工作:D再次感謝 – doniyor