使用 Openlayers 3 在地图上单击时坐标错误
Wrong Coordinates when clicking on the map with Openlayers 3
我正在使用 Openlayers 3,但我从 ol.MapBrowserPointerEvent
中得到了错误的坐标。
关键是,我得到了这个坐标,我打印了一个弹出窗口(popup.show
),它离我点击的地方有几米远。但是,当我从 PostGIS
得到一个几何图形(点)并用相同的方法(popup.show
)打印它时,它被正确放置了。
我做了所有检查以证明这一点(使用 QGIS
和相同的栅格图层作为参考手动验证)。
因此我假设我从点击事件中获得的坐标不正确...(或不在正确的投影中)
var projection = ol.proj.get('EPSG:25830');
map = new ol.Map({
layers: [
new ol.layer.Group({
interactions: ol.interaction.defaults({mouseWheelZoom: false}).extend([
new ol.interaction.MouseWheelZoom({
constrainResolution: true
})
]),
layers:[ basemap, mapbox]
}),new ol.layer.Group({
layers: [ orto, pks, medidas, video_milestones]}) ,],
loadTilesWhileAnimating: true,
loadTilesWhileInteracting: true,
controls: ol.control.defaults({
attributionOptions: ({
collapsible: false
})
}),
target: 'map',
view: new ol.View({
center: [ 686776,4223752 ],
zoom: 15,
projection: projection,
minZoom: 5,//minimo zoom que el usuario puede hacer
maxZoom: 23 //maximo zoom que el usuario puede hacer
})
});
popup = new ol.Overlay.Popup();
map.addOverlay(popup);
这是点击事件处理程序:
map.on('click', function(evt) {
var str = '<div><i class="fa fa-info-circle"></div>'
popup.show(evt.coordinate,str);
});
谢谢!
我发现了问题。我在 CSS 文件中的正文样式中设置了缩放,它更改了坐标值
我正在使用 Openlayers 3,但我从 ol.MapBrowserPointerEvent
中得到了错误的坐标。
关键是,我得到了这个坐标,我打印了一个弹出窗口(popup.show
),它离我点击的地方有几米远。但是,当我从 PostGIS
得到一个几何图形(点)并用相同的方法(popup.show
)打印它时,它被正确放置了。
我做了所有检查以证明这一点(使用 QGIS
和相同的栅格图层作为参考手动验证)。
因此我假设我从点击事件中获得的坐标不正确...(或不在正确的投影中)
var projection = ol.proj.get('EPSG:25830');
map = new ol.Map({
layers: [
new ol.layer.Group({
interactions: ol.interaction.defaults({mouseWheelZoom: false}).extend([
new ol.interaction.MouseWheelZoom({
constrainResolution: true
})
]),
layers:[ basemap, mapbox]
}),new ol.layer.Group({
layers: [ orto, pks, medidas, video_milestones]}) ,],
loadTilesWhileAnimating: true,
loadTilesWhileInteracting: true,
controls: ol.control.defaults({
attributionOptions: ({
collapsible: false
})
}),
target: 'map',
view: new ol.View({
center: [ 686776,4223752 ],
zoom: 15,
projection: projection,
minZoom: 5,//minimo zoom que el usuario puede hacer
maxZoom: 23 //maximo zoom que el usuario puede hacer
})
});
popup = new ol.Overlay.Popup();
map.addOverlay(popup);
这是点击事件处理程序:
map.on('click', function(evt) {
var str = '<div><i class="fa fa-info-circle"></div>'
popup.show(evt.coordinate,str);
});
谢谢!
我发现了问题。我在 CSS 文件中的正文样式中设置了缩放,它更改了坐标值