0

我一直在筛选文档,但没有成功,需要帮助。我需要访问 Google Places 中的第一个值自动完成或对我在 Google Places 中的 lat lng 坐标进行地理编码。我正在使用“Palo Alto”​​自动填充该字段,并且需要 Google Places 的第一个建议来自动完成该城市。我曾尝试使用 Google Geocode 功能,但结果与 Places API 不同,因此对我来说毫无用处。示例位置输出加利福尼亚州帕洛阿尔托,地理编码要素输出美国加利福尼亚州帕洛阿尔托。我尝试通过反向地理编码 lat lng 将上面的字符串拆分为只说 Palo Alto 并填充一个连接到 Places 自动完成的输入字段,但我无法触发它。我编写了一个脚本来从自动完成结果中提取输出;我只需要触发它。我试过使用 $('myCity').trigger('keypress'); 一旦我将帕洛阿尔托插入输入字段无济于事。欢迎所有关于下一步要采取的步骤的建议。我还查看了以下代码,但我想在没有地图的情况下执行此操作,并且在删除它时出现 javascript 错误。“TypeError: a is undefined [Break On This Error] (66 out of range 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])
        }
    }
});

谢谢你的帮助。

4

1 回答 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'
  };
于 2013-02-01T06:41:42.993 回答