gpt4 book ai didi

javascript - 从可拖动标记前往新街道和城镇

转载 作者:行者123 更新时间:2023-12-03 07:58:50 25 4
gpt4 key购买 nike

我有一个带有拖动标记的谷歌地图,它在信息窗口中显示街道和城镇

现在,当拖动标记时,我使用此代码在表单中获取新的 lng e lat

<小时/>
var geocoder = new google.maps.Geocoder;
function geocodeLatLng(geocoder, map, infowindow) {
var input = document.getElementById('latlng').value;
var latlngStr = input.split(',', 2);
var latlng = {lat: parseFloat(latlngStr[0]), lng: parseFloat(latlngStr[1])};
geocoder.geocode({'location': latlng}, function(results, status) {
if (status === google.maps.GeocoderStatus.OK) {
if (results[1]) {
infowindow.setContent(results[0].formatted_address);
infowindow.open(map, marker);
} else {
window.alert('No results found');
}
} else {
window.alert('Geocoder failed due to: ' + status);
}
});
}

google.maps.event.addListener(marker, 'dragend', function (event) {
document.getElementById("lat").value = this.getPosition().lat();
document.getElementById("lng").value = this.getPosition().lng();
document.getElementById("latlng").value = this.getPosition().lat()+','+this.getPosition().lng();
geocodeLatLng(geocoder, map, infowindow);
});

在输入 lng、lat、latlng 中一切正常,因此值会更改移动标记,但我可以确定其他 2 个输入(即城市和街道)的值

我正在寻找类似的东西

document.getElementById("address").value = this.address;
document.getElementById("city").value = this.city;

最佳答案

结果组件包含元素organized in this way

results[0].components

通过

过滤第 n 个结果[0].components[n].types
  • route 匹配路线的长名称或短名称。

  • 地点与地点和子地点类型匹配。

  • administrative_area 匹配所有行政区域级别(administrative_area_level_3.political = 城镇/城市、administrative_area_level_2.political = 省/县、administrative_area_level_1.political = 国家/地区)

  • postal_code 与 postal_code 和 postal_code_prefix 匹配。

  • 国家/地区匹配国家/地区名称或两个字母的 ISO 3166-1 国家/地区代码。

你可以得到你需要的东西

   result[0].components[n].long_name

如果你只想要局部性,你应该这样迭代

  for  (var i=0;  i < results[0].address_components.length; i++ ) {
if (results[0].address_components[i].types == 'locality,political') {
window.alert(results[0].address_components[i].long_name);
};
}

关于javascript - 从可拖动标记前往新街道和城镇,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34682146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com