Как использовать Карты Google для поиска моих собственных данных о местоположении (такая же функциональность, как API поиска мест, но для моих собственных "мест" )

См. соответствующий вопрос: Google Maps настраиваемый локальный поиск/контроль

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

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

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

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

Ответ 1

Локальный API поиска устарел, поэтому вам, вероятно, стоит переходить к "Адреса мест" .

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

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

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

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

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