2016-02-12 99 views
2

我正在使用​​並使用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

回答

0

據谷歌的地方搜索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