Google Places API - radarSearch按名称搜索

问题描述:

我正在使用​​并使用radarSearch列出机构。但是,当我使用名称参数进行搜索时,我遇到了问题。Google Places API - radarSearch按名称搜索

它返回的几个地方,但我想获得的确切名称。

在这种example,我想又回到“百思买”,但它返回不相关的,我寻找的字的地方。

  var map; 
    var infoWindow; 
    var service; 

    function initialize() { 
    map = new google.maps.Map(document.getElementById('map'), { 
     mapTypeId: google.maps.MapTypeId.ROADMAP, 
     center: new google.maps.LatLng(33.7490, -84.3880), 
     zoom: 11, 
     styles: [ 
     { 
      stylers: [ 
      { visibility: 'simplified' } 
      ] 
     }, 
     { 
      elementType: 'labels', 
      stylers: [ 
      { visibility: 'on' } 
      ] 
     } 
     ] 
    }); 

    infoWindow = new google.maps.InfoWindow(); 
    service = new google.maps.places.PlacesService(map); 

    performSearch(); 
    } 

    function performSearch() { 
    var request = { 
     location: new google.maps.LatLng(33.7490, -84.3880), 
     radius: 50000, 
     name: "Best Buy" 
    }; 
    service.radarSearch(request, callback); 
    } 

    function callback(results, status) { 
    if (status != google.maps.places.PlacesServiceStatus.OK) { 
     alert(status); 
     return; 
    } 
    for (var i = 0, result; result = results[i]; i++) { 
     createMarker(result); 
    } 
    } 

    function createMarker(place) { 
    var marker = new google.maps.Marker({ 
     map: map, 
     position: place.geometry.location, 
     icon: 'http://www.google.com/intl/en_us/mapfiles/ms/micons/yellow-dot.png' 
    }); 

    google.maps.event.addListener(marker, 'click', function() { 
     service.getDetails(place, function(result, status) { 
     if (status != google.maps.places.PlacesServiceStatus.OK) { 
      alert(status); 
      return; 
     } 
     infoWindow.setContent(result.name); 
     infoWindow.open(map, marker); 
     }); 
    }); 
    } 

    initialize(); 
+0

',我想又回到‘百思买’,但它正在返回与wo无关的地方rd我正在寻找.' =>你能否添加关于你认为不相关的数据的细节?这个名字不完全是“百思买”的事实吗? 看着你的样本不明确 –

+0

嗨尼古拉斯,没错。我得到的结果与“最佳购买”完全不符。 喜欢“在这里买这里付钱”或“我们买地” – user2383907

据谷歌的地方搜索API(https://developers.google.com/places/web-service/search),在name参数:

名字 - 一个或多个方面对场所的名称相匹配, 用空格隔开。结果将仅限于那些包含传递的名称值的 。请注意,除了列出的名称外,某个地点可能还会有其他与之相关联的名称 。 API 将尝试将传递的名称值与所有这些名称进行匹配。如果结果为 ,则可能会将结果返回到名称为 的搜索结果与搜索字词不匹配,但其关联名称的搜索结果中。

我想你应该使用\之前逃脱你的空格字符:

var request = { 
    location: new google.maps.LatLng(33.7490, -84.3880), 
    radius: 50000, 
    name: "Best\ Buy" 
}; 

注意:在你的小提琴,我只得到了“百思买...” /“百思买” /“ ..百思买......”因此,我不同意这种变化(与小的jsfiddle改进)得到您的问题

更新小提琴:https://jsfiddle.net/fautepdf/16/

+0

嗨尼古拉斯,我还在变脏的地方。 [这是一个例子] [1] [1]:http://i.stack.imgur.com/jeKqn.png – user2383907

+0

与的jsfiddle或直接在代码?我没有你在屏幕截图中的观点! 我也有同样的结果,如果我只让“买”,在搜索领域 –

+0

对不起,我没有说这个较早,但我真的很感谢你对这个帮助,但是使用您提供的的jsfiddle,我仍然得到这个误导信息(如屏幕截图所示)。即使使用其他浏览器,清理饼干... – user2383907