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

时间:2012-10-19 10:19:11

标签: javascript jquery google-maps-api-3 google-places-api

我一直在筛选文档失败并需要帮助。我需要访问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插入输入区域无济于事。欢迎所有关于下一步采取的步骤的建议。我也查看了以下代码,但我想在没有地图的情况下这样做,当我删除它时我得到一个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 :(得分:0)

您需要执行文本搜索。

转到Places Library并转到文字搜索请求

以下是一个例子:

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