Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.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 区分标记映射api v3_Javascript_Google Maps Api 3_Google Maps Markers - Fatal编程技术网

Javascript 区分标记映射api v3

Javascript 区分标记映射api v3,javascript,google-maps-api-3,google-maps-markers,Javascript,Google Maps Api 3,Google Maps Markers,我正在创建一个带有地理编码和反向地理编码的路由淋浴。 工作得很好,但当我想拖动标记时,我想用更新的地址更新正确的输入。问题是我无法定义起点和终点。使用下面的代码,如果我只有1个点,它会正确地更新起始地址,但在添加另一个点后,它们都会开始更新相同的输入。(不知道我是否有办法通过属性来区分它们-我将这些点添加到数组中,根据其长度,它应该添加带有“开始”或“停止”的属性目标。似乎在添加第二个标记后,它会更新上一个标记的目标值) 功能位置标记(位置){ 如果(列表长度

我正在创建一个带有地理编码和反向地理编码的路由淋浴。 工作得很好,但当我想拖动标记时,我想用更新的地址更新正确的输入。问题是我无法定义起点和终点。使用下面的代码,如果我只有1个点,它会正确地更新起始地址,但在添加另一个点后,它们都会开始更新相同的输入。(不知道我是否有办法通过属性来区分它们-我将这些点添加到数组中,根据其长度,它应该添加带有“开始”或“停止”的属性目标。似乎在添加第二个标记后,它会更新上一个标记的目标值)

功能位置标记(位置){
如果(列表长度<2){
marker=新的google.maps.marker({
位置:位置,,
地图:地图,
真的,
动画:google.maps.animation.DROP,
目的地:“开始”
});
地图设置中心(位置);
列表。推送(标记);
如果(list.length==2){
列表[1]。目的地='stop';
};
geocoder.geocode({'latLng':location},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
如果(结果[0]){
if(list.length==1){
$('#start').val(结果[0]。格式化的#地址);
}否则{
$('#end').val(结果[0]。格式化的#u地址);
}
}
}
});
}
如果(list.length==2){
drawRoute(列表[0].getPosition(),列表[1].getPosition());
};
google.maps.event.addListener(标记'drag',函数(事件){
console.log(marker.destination);
geocoder.geocode({'latLng':marker.getPosition()},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
如果(marker.destination=='start'){
$(“#start”).val(结果[0]。格式化的#u地址);
}否则{
$(“#end”).val(结果[0]。格式化的#u地址);
}
}
});
});
};

谢谢你的帮助

您只将eventListener附加到一个标记,而不是

google.maps.event.addListener(marker, 'drag', function(event){...})
你应该这样做

google.maps.event.addListener(list[0], 'drag', function(event){...})
google.maps.event.addListener(list[1], 'drag', function(event){...})
每次创建标记时都应该附加这些侦听器

google.maps.event.addListener(list[0], 'drag', function(event){...})
google.maps.event.addListener(list[1], 'drag', function(event){...})