【问题标题】:How to center a map on a position in Open layer 3如何将地图置于 Open layer 3 中的某个位置的中心
【发布时间】:2016-04-27 15:09:49
【问题描述】:

我需要将位置中心设置在印度德里的某个地方,我有坐标 [lat: '28.627671', lng: '77.216574']。我已经使用下面的代码使其工作,但仍然显示错误的位置。

 map = new ol.Map({
        target: 'map',
        renderer: 'canvas',
        view: new ol.View({
            center: [0,0],
            zoom: 4
        })
    });

    var newLayer = new ol.layer.Tile({
        source: new ol.source.OSM()
    });

    map.addLayer(newLayer);
    map.addLayer(mapVectorLayer);
    console.log(centerPosition);
    map.getView().setCenter(ol.proj.transform([centerPosition.lng, centerPosition.lat], 'EPSG:4326', 'EPSG:3857'));
    map.getView().setZoom(5);

【问题讨论】:

    标签: jquery angularjs openlayers-3


    【解决方案1】:

    我可能是因为你给坐标提供了字符串值。通过在变量前添加+ 将它们转换为数字,你应该没问题。

    查看一个看起来像您想要做的示例的 JSFiddle:http://jsfiddle.net/bbc7gup9/2/

    还有一个sn-p:

    var centerPosition = {
      lat: '28.627671',
      lng: '77.216574'
    };
    view.setCenter(ol.proj.transform([
      +centerPosition.lng,
      +centerPosition.lat
    ], 'EPSG:4326', 'EPSG:3857'));
    view.setZoom(5);
    

    【讨论】:

      【解决方案2】:

      只需翻转您的坐标。这样做:

      map.getView().setCenter(ol.proj.transform([ 77.216574,28.627671], 'EPSG:4326', 'EPSG:3857'));

      fiddle here

      检查@Alexander Dude fiddle,按照他建议的方式传递坐标更安全。我只是很确定你有周围的坐标

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-14
        • 2016-10-25
        • 2019-09-18
        • 2021-02-05
        • 2016-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多