2015-06-08 113 views
-1


我正在使用Wordpress开发一个网站,我使用的主题允许插入名为“Property”的自定义帖子;此功能在自定义页面模板中处理。在此页面内,我可以添加具有自动填充地理编码建议的地址。这里是代码:如何使用Google地图地理编码器获取城市

this.initAutoComplete = function(){ 
      var addressField = this.container.find('.goto-address-button').val(); 
      if (!addressField) return null; 

      var that = thisMapField; 
      $('#' + addressField).autocomplete({ 
       source: function(request, response) { 
        // TODO: add 'region' option, to help bias geocoder. 
        that.geocoder.geocode({'address': request.term }, function(results, status) { 
         //$('#city').val(results.formatted_address); 

         response($.map(results, function(item) { 
          $('#city').val(item.formatted_address); 
          return { 
           label: item.formatted_address, 
           value: item.formatted_address, 
           latitude: item.geometry.location.lat(), 
           longitude: item.geometry.location.lng() 
          }; 
         })); 
        }); 
       }, 
       select: function(event, ui) { 
        that.container.find(".map-coordinate").val(ui.item.latitude + ',' + ui.item.longitude); 
        var location = new window.google.maps.LatLng(ui.item.latitude, ui.item.longitude); 
        that.map.setCenter(location); 
        // Drop the Marker 
        setTimeout(function(){ 
         that.marker.setValues({ 
          position: location, 
          animation: window.google.maps.Animation.DROP 
         }); 
        }, 1500); 
       } 
      }); 
     } 

当地址被点击时,地图绘制制造商与接收的坐标。我想从点击的地址中提取城市,并将该值放在另一个输入字段中。我怎样才能做到这一点?谢谢!

回答

2

看着documentation 你需要访问address_components和寻找模式标本产地,政治,所以是这样的:

var city = ''; 
item.address_components.map(function(e){ 
    if(e.types.indexOf('locality') !== -1 && 
     e.types.indexOf('political') !== -1) { 
     city = e.long_name; 
    } 
}); 

$('#city').val(city); 
相关问题