0

正確な場所を指定するが、正確な店舗名は指定しない(ワイルドカード検索など)ことで、Google MapsAPIV3の「nearbySearch」を実行する方法を模索しています。

たとえば、リクエストが「サンフランシスコ」の「スターバックス」であった場合、その場所のタイトルに単語が多いかどうかに関係なく、「スターバックス」と呼ばれるすべてのプレイスが返されます。たとえば、結果には「スターバックスコーヒー」、「スターバックススミスストリート」が含まれます。 「または単に「スターバックス」。現在、「スターバックス」という同一の一致のみが検出されているようです。

コード詳細はこちら):

var map;
var service;
var infowindow;

function initialize() {

  // Specify lat/lng of search location
  var SanFran = new google.maps.LatLng(37.777119,-122.41964);

  // Create new map object
  map = new google.maps.Map(document.getElementById('map'), {
    mapTypeId: google.maps.MapTypeId.ROADMAP,
    center: SanFran,
    zoom: 15
  });

  // Create request parametres
  var request = {
    location: SanFran
    , radius: '500',
    , name: "Starbucks"
  };

  // Call the nearby search using the parametres
  service = new google.maps.places.PlacesService(map);
  service.nearbySearch(request, callback);

}

// Asynchronous marker creation at returned locations
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]);
    }
  }
}

私はいくつかの読書をしました、そしてそれはAPI3がワイルドカード検索を提供しないように見えますが、私は回避策があることを望んでいます。

前もって感謝します!

4

1 に答える 1

2

申し訳ありませんが、答えは非常に簡単でした。私はnearbySearchではなくtextSearchを使用すべきでした:

...

// Create request parametres
var request = {
  location: SanFran
  , radius: '500',
  , query: "Starbucks"
};

// Call the nearby search using the parametres
service = new google.maps.places.PlacesService(map);
service.textSearch(request, callback);

...

詳細はこちらhttps://developers.google.com/maps/documentation/javascript/places#TextSearchRequests

于 2013-03-25T22:42:36.577 に答える