【问题标题】:OpenLayer Coordinate SystemOpenLayer 坐标系
【发布时间】:2012-07-16 07:20:01
【问题描述】:

我很难理解 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

【问题讨论】:

    标签: javascript geolocation geocoding openlayers


    【解决方案1】:

    看起来我确实需要在坐标系之间进行映射。 这是通过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);
    

    【讨论】:

      【解决方案2】:

      现在可以这样做了:

      var map = new OpenLayers.Map("demoMap");
      var p = map.getView().getProjection();
      var cord = ol.proj.fromLonLat([longitude, latitude], p);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-04
        • 1970-01-01
        • 1970-01-01
        • 2014-10-20
        • 2013-02-15
        • 1970-01-01
        相关资源
        最近更新 更多