3.4中缺少OpenLayers.LonLat

时间:2015-03-31 13:05:44

标签: openlayers-3

我正在尝试计算如何在OpenLayers中使用GPS坐标

很多较旧的帖子指的是new OpenLayers,这在3.4中没有,但ol.

我认为这应该可以通过类似的东西来实现

var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.BingMaps({
                key: '',
                imagerySet: 'Aerial'
            })
        })
    ],
    //projection: "EPSG:4326",
    //displayProjection: "EPSG:3857",
    view: new ol.View({
        //center: [-13553864, 5918250],
        center: new ol.geom.Point(ol.proj.transform([58.4108600, 15.6215700], 'EPSG:4326', 'EPSG:3857')),
        zoom: 4
    })
});

但不,它是sais TypeError:undefined不是函数

导致所有麻烦的是the new ol.geom.Point(ol.proj.transform([58.4108600, 15.6215700], 'EPSG:4326', 'EPSG:3857')),这几乎是任何一个例子“使用var lonlat = new OpenLayers.LonLat ......” 感谢

2 个答案:

答案 0 :(得分:1)

我也在寻找这个功能,我在他们网站上的一些例子中找到了它。

您可以使用ol.proj.fromLonLat([19.062072, 47.473478])

http://openlayers.org/en/v3.13.1/apidoc/ol.proj.html#.fromLonLat

答案 1 :(得分:0)

ol.View center属性期望输入ol.Coordinate类型的对象。这基本上是一个带有lon / lat的数组(例如[-135538​​64,5918250])你所做的是使用ol.geom.Point类型的Object作为中心属性。简单传递为中心:

ol.proj.transform([58.4108600,15.6215700],'EPSG:4326','EPSG:3857')

它应该有用。