javascript - Openlayers 3中心 map

标签 javascript openlayers-3

我在唱歌OpenLayers 3显示 map 。我想使用 latLon 坐标将 map 居中。 我正在使用 quickstart code首先。 使用此代码,我无法更改 map 的中心。我认为这与 Spherical Mercator projection 有关。唯一的问题是,我只有经纬度坐标。

有谁知道如何通过 openlayers v3 将 map 居中?

最佳答案

您需要使用以下方法将经/纬度坐标转换为正确的投影(或坐标系)

var olCoordinates = ol.proj.transform([lon, lat],"WGS84", "EPSG:900913")

现在您可以使用 olCorrdinates 设置中心。

不同的投影有不同的代号。 WGS84 是“正常”经/纬度,EPSG:900913 是 web map (如 google map 、openstreetmap 和 bing)中经常使用的投影。

我认为 OpenLayers 3 内置了对从 WGS84/EPSG:4326 (lon/lat) 进行转换的支持,但如果您需要与其他坐标系相互转换,则可以包含 proj4js 库。 Openlayers 将与这个库集成,并能够以相同的方式进行转换。

转换文档 http://openlayers.org/en/v3.1.1/apidoc/ol.proj.html

Proj4 库 https://github.com/proj4js/proj4js

编辑: 在您引用的示例中,中心位置实际上是用经/纬度设置的。

view: new ol.View({
    center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
    zoom: 4
})

EPSG:4326 实际上与 WGS84 相同,EPSG:3857 与 EPSG:900913 相同。这非常令人困惑。我自己去过那里。

您只需将数字 37.41 和 8.82 更改为您的经/纬度坐标。如果您想在初始化后更改中心位置,则需要使用 setCenter();

map.getView().setCenter(ol.proj.transform([lon, lat], 'EPSG:4326', 'EPSG:3857'))

关于javascript - Openlayers 3中心 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27820784/

相关文章:

javascript - 如何使用javascript通过更改事件获取文本框的第一个值?

javascript - 如何通过异步 xmlhttprequest 响应设置变量

javascript - 如何将 html 转换为 javascript 字符串标记

gis - Openlayers 3.5 和 GeoJSON

javascript - 如何使用HTTP协议(protocol)使用IE9下载文件

javascript - 没有 ID 的 clearTimeout

javascript - Openlayers 不重新投影 WMS 查询

javascript - 样式 z-index 不起作用

javascript - 如何在闭包编译器中排除对象重命名

javascript - 我怎样才能使 "ol.Map"适合 "Ext.panel.Panel"?