web-dev-qa-db-ja.com

Googleマップを使用して自分の位置データを検索する方法(プレイス検索APIと同じ機能ですが、自分の「プレイス」用です)

関連する質問を参照してください: グーグルマップカスタムローカル検索/検索コントロール

Googleマップでカスタムロケーションと情報ウィンドウを作成できることを知っています。 http://code.google.com/apis/ajax/playground/#info_windows_sharing_v

そして私はローカル検索が近くの場所(公共のもの)を見つけることができることを理解しています
例えば。 http://code.google.com/apis/ajax/playground/#localsearch_with_markers

しかし、私の質問は単純です:どうすれば両方を組み合わせることができますか?ローカル/場所検索機能と同じように、ただしカスタムマーカーの場所(たとえば、Googleの場所/ローカルデータではなく自分の場所データ)でのみ有効にするにはどうすればよいですか?

たとえば、カスタムの場所データ/マーカーのセット(Googleプレイスに公開されていない)がある場合、ユーザーが住所または現在の場所に関連する近くのカスタム場所のリストを検索できるようにするにはどうすればよいですか?

11
Eran Medan

Local Search API は非推奨であるため、おそらく Places API への移行を検討する必要があります。

いずれの場合も、(検索または)Places APIにクエリを実行し、結果からLatLngsを抽出して、マーカーをマップに配置するだけです。

カスタムマーカーの意味がわかりません。(a)各結果の独自のアイコンをマーカーのアイコンとして使用するか、(b) )ユーザーがGoogleのローカル/場所ではなくあなたのデータ(マーカー)を検索できるようにします。

(a) Places Library で簡単です。 place-search.html の例では、createMarker()コールバック関数に1行だけ追加します。

function createMarker(place) {
  var placeLoc = place.geometry.location;
  var marker = new google.maps.Marker({
    map: map,
    icon: place.icon,
    position: place.geometry.location
  });

  google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(place.name);
    infowindow.open(map, this);
  });
}

ただし、元のアイコンは大きく見えるので、縮小することをお勧めします。

(b)は、 PHP、MySQL、およびGoogleマップを使用したスト​​アロケーターの作成 のように別の話になります。

8
miguev