8

OpenLayers で使用される座標系を理解するのに苦労しています。

レスター、英国は約です。

Latitude:  52.63973017532399
Longitude: -1.142578125

しかし、OpenLayers を使用して同じ場所を表示するには、次を使用する必要があります。

Latitude:  6915601.9146245
Longitude: -125089.1967713

例えば:

var center  = new OpenLayers.LonLat(-125089.1967713, 6915601.9146245);
var map     = new OpenLayers.Map("demoMap");
map.addLayer(new OpenLayers.Layer.OSM());
map.setCenter(center, 12);

これらは明らかに緯度経度座標ではありません。考慮する必要がある変換はありますか?

実際の例はhttp://craig-russell.co.uk/demos/openlayers/so_map.htmlです

4

2 に答える 2

7

座標系間でマッピングする必要があるようです。これは、次のtransform()ような関数で行われます。

var coor_from = new OpenLayers.Projection("EPSG:4326");
var coor_to   = new OpenLayers.Projection("EPSG:900913");
var center    = new OpenLayers.LonLat(-1.142578125, 52.63973017532399);
var map       = new OpenLayers.Map("demoMap");
center.transform(coor_from, coor_to);
map.addLayer(new OpenLayers.Layer.OSM());
map.setCenter(center, 12);
于 2012-07-17T14:36:23.130 に答える
0

次のことが可能になりました。

var map = new OpenLayers.Map("demoMap");
var p = map.getView().getProjection();
var cord = ol.proj.fromLonLat([longitude, latitude], p);
于 2015-09-07T17:16:47.020 に答える