在 MapQuest 中拖动标记捕获经纬度
Capturing latitude and longitude on marker drag in MapQuest
我似乎找不到从 MapQuest 中的现有标记获取纬度和经度的方法。
我目前使用以下方法设置路线图:
var map = L.mapquest.map('map', {
center: [selfLatitude, selfLongitude],
layers: L.mapquest.tileLayer('map'),
zoom: 13
});
L.mapquest.directions().route({
start: [selfLatitude, selfLongitude],
end: [otherLatitude, otherLongitude]
});
这会生成一个地图,其中包含两个点以及它们之间的方向。
我可以在地图上移动 end
点,但想要捕获 修改后的 latitude
和 longitude
。
使用 mapquest.js javascript 库从 MapQuest 地图中的各个标记定位和获取坐标的正确方法是什么?
我认为这是一个简单的解决方案,但我无法在他们的文档中轻松找到任何内容。我试着拆开他们的例子,到处寻找信息。在假设这可行之后,但没有因为 getLatLng()
不是函数:
popup.on('dragend', function(event) {
var marker = event.target;
var position = marker.getLatLng().wrap();
showLL(position, 'USER_DEFINED');
});
在某些时候我决定停止查看他们提供的文档并尝试查看他们的 Lat/Long finder example 并进一步查看返回的 event.target
对象并试图找到与纬度和经度。
我知道你要求 "proper" 方法,但老实说我找不到,我想我还是应该分享一下。
以下不是执行此操作的官方方法,但我相信它有效。出于某种原因,无论开始还是结束移动,都会触发 moveend
事件,但无论如何我只记录结束 lat/long。
我注意到 marker._layers[prop].locationIndex
混合在图层 obj 中,0 似乎与开始标记相关,1 似乎指向结束标记。
这是我想出的:
let latLng1 = new L.LatLng(35.6009, -82.554);
let latLng2 = new L.LatLng(35.7796, -78.6382);
let map = L.mapquest.map('map', {
center: latLng1,
layers: L.mapquest.tileLayer('map'),
zoom: 13
});
let directions = L.mapquest.directions();
directions.route({
start: latLng1,
end: latLng2
});
map.on('moveend', function(event) {
let marker = event.target;
for (let prop in marker._layers) {
if (!marker._layers.hasOwnProperty(prop)) continue;
// locationIndex- I am assuming 0 for start marker and 1 for end marker.
if (marker._layers[prop].locationIndex === 1) {
let latLong = marker._layers[prop]._latlng;
console.log(latLong)
}
}
});
}
我似乎找不到从 MapQuest 中的现有标记获取纬度和经度的方法。
我目前使用以下方法设置路线图:
var map = L.mapquest.map('map', {
center: [selfLatitude, selfLongitude],
layers: L.mapquest.tileLayer('map'),
zoom: 13
});
L.mapquest.directions().route({
start: [selfLatitude, selfLongitude],
end: [otherLatitude, otherLongitude]
});
这会生成一个地图,其中包含两个点以及它们之间的方向。
我可以在地图上移动 end
点,但想要捕获 修改后的 latitude
和 longitude
。
使用 mapquest.js javascript 库从 MapQuest 地图中的各个标记定位和获取坐标的正确方法是什么?
我认为这是一个简单的解决方案,但我无法在他们的文档中轻松找到任何内容。我试着拆开他们的例子,到处寻找信息。在假设这可行之后,但没有因为 getLatLng()
不是函数:
popup.on('dragend', function(event) {
var marker = event.target;
var position = marker.getLatLng().wrap();
showLL(position, 'USER_DEFINED');
});
在某些时候我决定停止查看他们提供的文档并尝试查看他们的 Lat/Long finder example 并进一步查看返回的 event.target
对象并试图找到与纬度和经度。
我知道你要求 "proper" 方法,但老实说我找不到,我想我还是应该分享一下。
以下不是执行此操作的官方方法,但我相信它有效。出于某种原因,无论开始还是结束移动,都会触发 moveend
事件,但无论如何我只记录结束 lat/long。
我注意到 marker._layers[prop].locationIndex
混合在图层 obj 中,0 似乎与开始标记相关,1 似乎指向结束标记。
这是我想出的:
let latLng1 = new L.LatLng(35.6009, -82.554);
let latLng2 = new L.LatLng(35.7796, -78.6382);
let map = L.mapquest.map('map', {
center: latLng1,
layers: L.mapquest.tileLayer('map'),
zoom: 13
});
let directions = L.mapquest.directions();
directions.route({
start: latLng1,
end: latLng2
});
map.on('moveend', function(event) {
let marker = event.target;
for (let prop in marker._layers) {
if (!marker._layers.hasOwnProperty(prop)) continue;
// locationIndex- I am assuming 0 for start marker and 1 for end marker.
if (marker._layers[prop].locationIndex === 1) {
let latLong = marker._layers[prop]._latlng;
console.log(latLong)
}
}
});
}