开放层 3 - 将经纬度转换为点
Open Layers 3 - Convert Lat Long to Point
我在名为 lat_longs
的数组中有一个 Lat Longs 数组(看起来像这样 - [[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 中找到具体的操作方法。
注意: 我根据 tsauerwein 的评论得到了它。但请注意,我必须将点从 EPSG:4326
转换为 EPSG:900913
OpenLayers 期望坐标为 [lon, lat]
而不是 [lat, lon]
。因此,在您的情况下,您必须更改顺序。
我在名为 lat_longs
的数组中有一个 Lat Longs 数组(看起来像这样 - [[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 中找到具体的操作方法。
注意: 我根据 tsauerwein 的评论得到了它。但请注意,我必须将点从 EPSG:4326
转换为 EPSG:900913
OpenLayers 期望坐标为 [lon, lat]
而不是 [lat, lon]
。因此,在您的情况下,您必须更改顺序。