当前位置: 首页 > 知识库问答 >
问题:

从可拖动的记号笔中获取新的街道和城镇

罗源
2023-03-14

我有一个带有draggrabble标记的谷歌地图,在infowindow中显示街道和城镇

现在我使用这段代码在拖动标记时在表单中获取新的lng e

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都是ok的,所以移动标记的值会改变,但我可以确定其他2个输入的值,即城市和街道

我在找像这样的东西

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

共有1个答案

卞云瀚
2023-03-14

结果组件包含以这种方式组织的元素

results[0].components

筛选第n个结果[0].组件[n].类型

>

  • 路由匹配路由的长或短名称。

       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);
          };
      }
    

  •  类似资料:
    • 问题内容: 我正在尝试从Google json获取$ street,$ city和$ country字符串。它适用于我的家庭住址:http : //maps.googleapis.com/maps/api/geocode/json?latlng=52.108662,6.307370&sensor=true 但是,对于像这样的示例中数组中包含更多数据的其他地址:http : //maps.googl

    • 问题内容: 在我当前的android应用程序中,我想根据输入的城市名称,街道名称或邮政编码获取地理坐标。我该怎么做? 最好的问候,罗尼 问题答案: 查看方法。 像这样使用它:

    • 问题内容: 我是Regex的新手,正尝试使用它来将地址解析为门牌号和街道。 例如:123 Main St-> [‘123’,’Main St’] 由于我的某些街道字符串将带有连字符的街道地址,因此情况变得有些复杂,在这种情况下,我想将第一个数字放在连字符之前。 例如:123-127 Main St-> [‘123’,’Main St’] 最后,我需要能够处理以数字开头的街道名称。 最复杂的示例是:

    • 在论坛上搜索了几天,我仍然无法理解它... null (不需要其他的东西,因为其余的是通过lat/lon坐标运行的)。 在登录时,我希望他们 通过谷歌地图上的标记来设置坐标(单点击和只有1个标记,第二次点击标记会删除第一个标记,不确定我是否会使用传感器....)

    • 我一直在玩API、XAPI和OSM的天桥。但我无法获得所需的一些信息:获取街道的所有信息节点。 这里有一个例子:http://www.openstreetmap.org/browse/way/5671291 这提供了一种称为“瓦茨街”(在纽约)的方式的信息,但它不是所有的街道,只是其中的一部分。 另一部分:http://www.openstreetmap.org/browse/way/461163

    • 问题详情: 拉绍夫是埃姆兰市市长。埃姆兰由十字路口和街道组成。从每个交叉口到任何其他交叉口都只有一条路径。交点用正整数1...n表示。一家建筑公司向Rashof提出要重建埃姆兰的所有街道,但Rashof最多可以选择建筑公司为每条街道提供了一个新的长度,这意味着在街道重建后,街道的长度会发生变化。现在,作为城市的市长,拉绍夫必须明智地做出选择,使所有对交叉口之间的路径长度之和最小化。救救Rashof