打开图层3-将Lat Long转换为Point



我在一个名为lat_longs的数组中有一个Lat-Long数组(看起来像这样-[[39.749318, -104.9701129], [..], [..]]),我正试图使用Open Layers 3在OpenStreetMap中绘制它们。这是我的代码-

var icon_features = [];
$.each(lat_longs, function(index, item){
   var point = new ol.geom.Point(item);
   point.transform('EPSG:4326', 'EPSG:900913');
   // I tried it the other way too, but doesn't seem to work
   var iconFeature = new ol.Feature({
       geometry: point,
       name: item.name
   });
   icon_features.push(iconFeature);
});
var vectorSource = new ol.source.Vector({
   features: icon_features
});
var vectorLayer = new ol.layer.Vector({
   source: vectorSource
});
var view = new ol.View({
   center: [0,0],
   zoom: 2
});
var map = new ol.Map({
    layers: [
       new ol.layer.Tile({
           source: new ol.source.OSM()
       }),
       vectorLayer
    ],
    target: 'map',
    controls: ol.control.defaults({
        attributionOptions:  ({
        collapsible: false
    })
  }),
  view: view
});

出于某种原因,它似乎要么在非洲附近绘制位置,要么根本没有绘制位置。

我该如何解决这个问题?

我在Open Layers 2中找到了进行投影和转换的代码。在Open Layers 3中找不到确切的方法。

注意:我使用了tsaurwein的评论。但请注意,我必须将点从EPSG:4326转换为EPSG:900913

OpenLayers希望坐标为[lon, lat],而不是[lat, lon]。所以在你的情况下,你必须改变顺序。

最新更新