【问题标题】:google Javascript API V3 places search with types=['geocode'] returns ZERO_RESULTSgoogle Javascript API V3 使用 types=['geocode'] 进行搜索返回 ZERO_RESULTS
【发布时间】:2011-08-24 16:14:25
【问题描述】:

我在使用 Google 地方搜索时遇到问题。如果我选择类型:['geocode'],无论搜索词如何,我都不会得到任何结果(ZERO_RESULTS)。我究竟做错了什么?这是我的代码 sn-p:

        ...
        var params = {
            name: searchTerm, //search Term is for example 'lon'
            bounds: map.getBounds(),
            types: ['geocode']
         }

        var service = new google.maps.places.PlacesService(map);
        service.search(params, function (results, status) {
                alert(status); - gives ZERO_RESULTS
         }
         ...

更新:

我希望它的行为与 Javascript AOI 放置自动完成功能相同。让我得到同样的结果。我以为他们正在查询相同的数据?

var input = document.getElementById('location');
var options = {
    bounds: map.getBounds(),
    types: ['geocode']

};
autocomplete = new google.maps.places.Autocomplete(input, options);

google.maps.event.addListener(autocomplete, 'place_changed', function() {

.... 这给了我很好的结果。 (我没有在第一个解决方案上使用自动完成方法的原因是因为一旦输入(在搜索字段中)被击中,我就无法自动选择自动完成列表中的第一项。-如果你知道答案,请帮助:)

【问题讨论】:

    标签: google-maps google-maps-api-3


    【解决方案1】:

    至少在这个时候,最好不要假设 Google Places 有很多关于某个位置的数据,或者这些数据是经过精细分类的。 Google 地方信息很可能没有或没有 geocode 类型的地点供您查找。

    由于types 是可选的,请将其删除,您可能会得到结果。

    更新:关于已添加到问题中的自动完成与地方搜索内容:我没有使用自动完成,但我认为它不应该给你相同的结果。地点搜索正在尝试查找与搜索词 XXXXX 匹配的内容。自动完成正在尝试预测给定的子字符串 XXXXXX 您可能要输入的内容。所以它可能会返回更多(和不同的,并且在许多情况下不太相关)的结果。所以你所看到的(自动完成的更多结果)并没有让我觉得异常。

    【讨论】:

    • 请看我编辑的帖子。它不应该给出与 Javascript API 位置自动完成库相同的结果吗??
    • 我认为它不应该给你同样的结果。地点搜索正在尝试查找与搜索词 XXXXX 匹配的内容。自动完成正在尝试预测给定的子字符串 XXXXXX 您可能要输入的内容。因此,它可能会返回更多(并且不同,并且在许多情况下不太相关)的结果。
    【解决方案2】:

    我发现通过删除“类型”参数可以得到更多的地方。我正在使用地点自动完成功能,它无疑为我提供了更多没有类型的选择。

    我只是捕捉回车键并停止它,以防止用户意外提交表单。不是你想要的,但它对我有用。

            $("#LatLongSearch").keypress(function (event) {
                if (event.which == 13) {    // make enter key just search map and stop it from submitting form
                    event.preventDefault();
                } 
            })
    

    【讨论】:

      【解决方案3】:

      试试这个

      $('#searchform').keypress(function(e) {
                      if (e.which == 13) {
                      e.preventDefault();
                     google.maps.event.addListener(autocomplete, 'place_changed', function() {
                       fillInAddress();
                      $('#yourform').submit();
              }); } });
      

      对我有用

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-08-07
        • 1970-01-01
        • 1970-01-01
        • 2017-08-14
        • 2020-04-06
        • 1970-01-01
        • 1970-01-01
        • 2019-10-28
        相关资源
        最近更新 更多