Как использовать Google Maps для поиска моих собственных данных о местоположении (те же функции, что и в API поиска мест, но для моих собственных "мест") - PullRequest
11 голосов
/ 04 февраля 2012

См. Связанный вопрос: google maps пользовательский локальный поиск / элемент управления поиском

Я знаю, что могу создать Пользовательские местоположения и Информационные окна на карте Google. например http://code.google.com/apis/ajax/playground/#info_windows_sharing_v3

И я понимаю, что Локальный поиск может находить близлежащие места (публичные)
например http://code.google.com/apis/ajax/playground/#localsearch_with_markers

Однако мой вопрос прост: как мне объединить оба? Как включить те же функции, что и в локальном / местном поиске, но только в пользовательских местах расположения маркеров (например, мои собственные данные о местоположении, а не данные о местах / локальных данных Google)?

Например, если у меня есть набор пользовательских данных / маркеров местоположения (не опубликованных в Google Адресах), как разрешить пользователю находить список ближайших пользовательских мест относительно адреса или его / ее текущего местоположения?

1 Ответ

8 голосов
/ 04 февраля 2012

API локального поиска устарел, поэтому вам, вероятно, стоит обратить внимание на переход к API Places .

В любом случае все, что вам нужно сделать, этозапросить (Search or) Places API, извлечь LatLngs из результатов и поместить ваши маркеры на карту.

Я не уверен, что вы имеете в виду под пользовательскими маркерами , я думаюлибо (а) используя собственный значок каждого результата в качестве значка маркера, либо (б) предоставьте пользователям возможность поиска среди ваших данных (маркеров) вместо локальных / мест Google.

(a) является своего родалегко с Библиотека мест .В примере place-search.html вы бы добавили всего одну строку к функции обратного вызова createMarker():

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);
  });
}

Хотя оригинальные иконки выглядят большими, поэтому вы можете захотеть масштабироватьих вниз.

(б) будет другой историей, например Создание локатора магазина с PHP, MySQL и Google Maps .

...