2016-06-16 3 views
-1

У меня есть проект. Я использую google map и php в проекте. Когда выполняется запрос, я получаю значение latlong из базы данных. Я определил ограничение 1 в запросе. Позже я покажу позицию latlong с маркером на карте. Я хочу показать предел 5 с мультимаркером. Как показать все маркеры на карте? Мой запрос и результат запроса приведены ниже. Переменная geom - это условие, а мой скрипт карты Google - часть ниже.google map multi marker

Query: 
SELECT lat, lng from mytable where $geom limit 5; 

Php code: 
while ($row = pg_fetch_assoc($result)) { 
$lat=$row['lat']; 
$lng=$row['lng']; 
} 

Google Map js: 
var myLatLng = {lat:<?php echo $lat;?>, lng:<?php echo $lng;?>}; 
var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 19, 
     center: myLatLng 
    }); 
    var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: 'Hello World!' 
    }); 
+0

Только сделать одну карту, несколько маркеров. – geocodezip

+0

есть. Я хочу показать все значения latlong на маркерах. – Hermes

+0

Ну, прямо сейчас ваш код создает новую карту для каждого маркера. – geocodezip

ответ

1

Создайте карту один раз. Добавьте все маркеры на эту карту.

var map = new google.maps.Map(document.getElementById('map')); 
var bounds = new google.maps.LatLngBounds(); 
while ($row = pg_fetch_assoc($result)) { 
    $lat = $row['lat']; 
    $lng = $row['lng']; 

    var myLatLng = {lat:<?php echo $lat;?>, lng:<?php echo $lng;?>}; 
    bounds.extend(myLatLng); 

    var marker = new google.maps.Marker({ 
     position: myLatLng, 
     map: map, 
     title: 'Hello World!' 
    }); 
} 
map.fitBounds(bounds); // center and zoom the map to show all the markers 
+0

Ваше решение хорошее. Я уже хотел сделать то, что написал. Но вот проблема в том, что я не могу запустить js-код во время цикла. Потому что я также получаю еще один столбец с запросом, и я печатаю код html. Я отобразил часть кода. Вскоре я объясню. Я получаю строку ['lat'] и строку ['lng']. Это два массива. Я хочу напечатать весь элемент массива в js-коде. Как: var myLatLng = {lat: ?, lng: ?} Надеюсь, я мог бы объяснить. – Hermes

Смежные вопросы