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