Openlayers 3 OpenLayers.LonLat在3.4中缺失

Openlayers 3 OpenLayers.LonLat在3.4中缺失,openlayers-3,Openlayers 3,我想知道如何在OpenLayers中使用GPS坐标 很多老帖子都提到了新的OpenLayers,这在3.4版本中是不可用的,因为所有内容都嵌入了ol中。 我想这应该是可以做到的 var map = new ol.Map({ target: 'map', layers: [ new ol.layer.Tile({ source: new ol.source.BingMaps({ key: '',

我想知道如何在OpenLayers中使用GPS坐标

很多老帖子都提到了
新的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
    })
});
但不,这是TypeError:undefined不是一个函数

正是新的ol.geom.Point(ol.proj.transform([58.4108600,15.6215700],'EPSG:4326','EPSG:3857')造成了所有的麻烦,几乎所有的例子都说“使用var lonlat=new OpenLayers.lonlat…”
感谢使用ol.View center属性,希望输入一个ol.Coordinate类型的对象。这基本上是一个包含lon/lat的数组(例如[13553864,5918250]),您要做的是使用类型为ol.geom.Point的对象作为中心属性。以简单传球为中心:

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


它应该可以工作。

我也在寻找这个函数,我在他们网站上的一些示例中找到了它

您可以使用LONLAT([19.062072,47.473478])中的ol.proj



旧链接:

Hmm,这很有效,但中心是非常错误的。我应该使用EPSG:3011,但是更换投影不起作用,可能你弄错了lat/lon。我在第一篇文章中写错了。ol.坐标数组的结构为[lon,lat]。“那个中心应该在哪里?”杰克门特,这是不对的。ol.坐标的结构为[x,y]。如果您的投影是EPSG:4326(WGS84地理坐标),那么x将是经度,y将是纬度。@Eric Herlitz EPSG:3011仅在包含Proj4js时由OpenLayers 3支持。看看这个例子,看看如何使用Proj4js。@ahocevar啊,好的,谢谢。lat lon总是有同样的问题:)