首页 文章

Google商家信息 - 获取格式化地址,无需用户输入

提问于
浏览
0

我一直在筛选文档失败,需要帮助 . 我需要访问Google地方中的第一个值自动填充功能或对Google地方信息中的lat lng coords进行地理编码 . 我自动填充该字段说“Palo Alto”,并且需要Google Places的第一个建议来自动完成该城市 . 我尝试过使用Google地理编码功能,但结果与Places API不同,因此对我来说毫无用处 . 示例放置输出Palo Alto,CA和地理编码功能输出Palo Alto,CA USA . 我已经尝试通过反向地理编码将上面的字符串拆分为lang lng以仅仅说Palo Alto并填充连接到Places自动完成的输入字段,但是我无法触发它 . 我编写了一个脚本来从自动完成结果中提取输出;我只需要触发它 . 我尝试过使用$('myCity') . trigger('keypress');一旦我将Palo Alto插入输入区域无济于事 . 欢迎所有关于下一步采取的步骤的建议 . 我也查看了以下代码,但我想在没有 Map 的情况下这样做,当我删除它时我得到一个javascript错误 . “TypeError:a未定义[打破此错误](66超出范围46)”

var lat = -130;
var lng = 37;
var request = {
    location: new google.maps.LatLng(lat, lng);
};

var service = new google.maps.places.PlacesService(map);
service.search(request, function (results, status) {
    if (status == google.maps.places.PlacesServiceStatus.OK) {
        for (var i = 0; i < results.length; i++) {        
          console.log(results[i])
        }
    }
});

谢谢你的帮助 .

1 回答

  • 0

    您需要执行文本搜索 .

    转到Places Library并转到 Text Search Requests .

    下面是一个例子:

    var map;
    var service;
    var infowindow;
    
    function initialize() {
      var pyrmont = new google.maps.LatLng(-33.8665433,151.1956316);
    
      map = new google.maps.Map(document.getElementById('map'), {
          mapTypeId: google.maps.MapTypeId.ROADMAP,
          center: pyrmont,
          zoom: 15
        });
    
      var request = {
        location: pyrmont,
        radius: '500',
        query: 'restaurant'
      };
    
      service = new google.maps.places.PlacesService(map);
      service.textSearch(request, callback);
    }
    
    function callback(results, status) {
      if (status == google.maps.places.PlacesServiceStatus.OK) {
        for (var i = 0; i < results.length; i++) {
          var place = results[i];
          createMarker(results[i]);
        }
      }
    }
    

    注意:在您的情况下,将请求更改为:

    var request = {
        query: 'Palo Alto'
      };
    

相关问题