Как я могу загружать маркеры из базы данных MySQL динамически? - PullRequest
0 голосов
/ 27 ноября 2010

У меня есть база данных MySQL, где я сохранил некоторую позицию маркера (вместе с другой информацией), которую я загрузил в карту Google. Я последовал примеру -

http://code.google.com/apis/maps/articles/phpsqlajax.html

и у меня все работало нормально.

Теперь я хочу, чтобы пользователь мог выбрать идентификатор определенного маркера и щелкнуть по кнопке, которая будет загружена на карту. Не знаете, как динамически загрузить определенный маркер на карту.

Любая помощь будет оценена.

Ответы [ 3 ]

3 голосов
/ 28 ноября 2010

Я настроил пример здесь .Я использую Google Geocoding API для получения координат адреса, введенного пользователем, и создаю маркер с помощью Google API V3, как показано ниже Ajax Запрос на получение координат

$.getJSON("getjson.php?address="+address,
  function(data){
   lat=data.results[0].geometry.location.lat;
   lng=data.results[0].geometry.location.lng;
   point= new google.maps.LatLng(lat,lng);
   map.setCenter(point);
   zoom = 14;
   marker = createMarker(point,"<h3>Marker"+(markersArray.length+1)+" "+point+"</h3>",zoom);
});

Код PHP для возврата координат

<?php

$address = $_GET['address'];
$address=str_replace(" ","+",$address);
if ($address) {
 $json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address.
 '&sensor=true');
 echo $json;
}

?>

СозданиеМаркер

function createMarker(latlng, html,zoom) {
   var contentString = html;
    var marker = new google.maps.Marker({
  position: latlng,
  map: map,
  zIndex: Math.round(latlng.lat()*-100000)<<5
 });

 google.maps.event.addListener(marker, 'click', function() {
  infowindow.setContent(contentString); 
  infowindow.open(map,marker);
 });
 marker.MyZoom = zoom; 
 return marker; 
} 
1 голос
/ 27 ноября 2010

Прежде всего, я вижу в вашей ссылке, что вы используете v2.Попробуйте использовать v3 по крайней мере сейчас, когда вы находитесь в начале, так как версия v2 устарела.

Что касается вашего вопроса, я могу только рассказать вам о процедуре, и тогда вы сможете ее осуществить.


1. Взаимодействие с пользователем
Пользователь взаимодействует с пользовательским интерфейсом и выбирает, например, диапазон цен (0-100).

2. Ajax-запрос
Клиент отправляет ajax-запрос на сервер, чтобы получить json с jquery getJson () или любым другим способом.

3. Ответ сервера
Страница php отвечает на ваш вызов ajax и делает запрос в mysql, получая набор маркеров позиции, преобразует его в json и отправляет обратно.

4. Разбор ответов
Разобрать json обратно к клиенту и создать маркеры.

0 голосов
/ 30 января 2013

Привет, я нашел эту замечательную помощь. http://www.svennerberg.com/2012/03/adding-multiple-markers-to-google-maps-from-json/

Создайте объект json по заданной ссылке и передайте его в javascript.

функция createMarker (json) {

for (var i = 0, length = json.length; i < length; i++) {
    var data = json[i],
    latLng = new google.maps.LatLng(data.lat, data.lng);        
    // Creating a marker and putting it on the map
    var marker = new google.maps.Marker({
    position: latLng,
    map: map,
    title: data.title
    });
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...