Google PlaceService textSearch()とnearbySearch()の違い

グーグル

Google Map系のAPI「PlaceService」で、textSearch()とnearbySearch()というメソッドがあります

どちらも指定したエリア内の施設を検索できる機能です

textSearch()はqueryというリクエストで単語を指定します

例えば「レストラン」とか

一方でnearbySearch()でもkeywordというリクエストで同様の機能があります

しかしこれらには公式ドキュメントにも載っていない違いがあります

それはtextSearch()は複数の単語をスペースで区切って指定できるのに対して、

nearbySearch()はできない、という事です

だから、例えばtextSearch()はこういう使い方ができます

// 周辺のお風呂を検索したい!
var request = {
    location: new google.maps.LatLng(lat, lng),
    radius: 10000,
    query:'銭湯 温泉'
};
 
var service = new google.maps.places.PlacesService(map);
service.textSearch(request, Result_Places);

「銭湯」という単体のキーワードだと、「○○温泉」という施設が検索に引っかかりません

反対に「温泉」というキーワードだけだと「○○銭湯」が見つかりません

nearbySearch()はキーワードが1つしか指定できないのでどちらかの施設しか検索できません

けどtextSearch()ならできます

意外とキーワードから施設を検索する時って、幅を持った範囲を探したいのでこういう複数単語検索ができるtextSearch()は重要です

なお、検証はしてませんがリクエストパラメータで「query」と指定できる関数はほぼ同じように機能すると予想されます

例えば、findPlaceFromQuery()とかですね