Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在MapQuest中通过标记拖动捕获纬度和经度_Javascript_Mapquest - Fatal编程技术网

Javascript 在MapQuest中通过标记拖动捕获纬度和经度

Javascript 在MapQuest中通过标记拖动捕获纬度和经度,javascript,mapquest,Javascript,Mapquest,我似乎找不到从MapQuest中现有的标记获取纬度和经度的方法 我当前使用以下方法设置方向图: var map = L.mapquest.map('map', { center: [selfLatitude, selfLongitude], layers: L.mapquest.tileLayer('map'), zoom: 13 }); L.mapquest.directions().route({ start: [selfLatitude, selfLong

我似乎找不到从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]
});
这将生成一个包含两点及其之间方向的贴图

我可以移动地图上的
端点
点,但希望捕获修改后的
纬度
经度


使用MapQuest.js javascript库从MapQuest地图中的单个标记定位和获取坐标的正确方法是什么?

我认为这是一个简单的解决方案,但我在他们的文档中找不到任何简单的方法。我试着把他们的例子分开,到处寻找一些信息。假设这会起作用,但没有起作用,因为
getLatLng()
不是函数:

  popup.on('dragend', function(event) {
    var marker = event.target;
    var position = marker.getLatLng().wrap();
    showLL(position, 'USER_DEFINED');
  });
在某个时刻,我决定停止查看他们提供的文档,并尝试查看他们的文档,进一步查看返回的
event.target
对象,并尝试查找与lat和long相关的任何内容

我知道你要求一个“合适的”方式,但我真的找不到,我想我应该分享

下面的def不是一种官方的方法,但我相信它是有效的。出于某种原因,无论移动开始还是结束,都会触发
moveend
事件,但无论如何,我只记录结束lat/long

我注意到,
marker.\u 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)
    }
  }
});
}

这确实有效。我会等几天,看看是否有一个更精简的方法弹出,如果没有,我会标记你的作为接受的答案。