1

特定の都市の気象情報を取得しようとしています (都市は動的に来ています)。統合が非常に簡単なこのマップ API に出会いました。しかし、一度試してみると、別の都市、たとえばミュンヘンの緯度と経度を指定しても、モスクワしか表示されません。

これはコードです:

<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 のリンクです: http://openweathermap.org/tutorial/openlayers

4

1 に答える 1

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>

あなたの場所の経度と緯度を取得するには、次の URL を使用できます: http://www.mapcoordinates.net/en

お役に立てれば

于 2013-07-02T11:56:18.170 に答える