Я не могу сделать маркер Google Maps

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

Если я поставлю координаты вручную, то это будет работать без проблем, но если я получу значение координат из моей базы данных, карты Google, это не сработает.

Это мой код:

function myFunction() {
var latitud = <?php echo '["' . implode('", "', $dbLatitud) . '"]' ?>;
var longitud = <?php echo '["' . implode('", "', $dbLongitud) . '"]' ?>;

document.getElementById("demo").innerHTML = latitud + longitud;
// document.getElementById("demo").innerHTML = fruits[1];   --- especifico slot
var a = latitud.toString();
var b = longitud.toString();
var myLatLong = {lat: a, lng: b};

var marker = new google.maps.Marker({
position: myLatLong,
map: map,
title: 'Colectivo N°: 1'
});

marker.setMap(map);

}

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

-1

Решение

Я мог бы решить это!

Я изменил .toString ()

function myFunction() {
var latitud = <?php echo '["' . implode('", "', $dbLatitud) . '"]' ?>;
var longitud = <?php echo '["' . implode('", "', $dbLongitud) . '"]' ?>;
var a = latitud.toString();
var b = longitud.toString();
var myLatLong = {lat: a, lng: b};
}

с parseFloat ();

function myFunction() {
var latitud = <?php echo '["' . implode('", "', $dbLatitud) . '"]' ?>;
var longitud = <?php echo '["' . implode('", "', $dbLongitud) . '"]' ?>;
var a = parseFloat(latitud);
var b = parseFloat(longitud);
var myLatLong = {lat: a, lng: b};
}
0

Другие решения

Проще говоря, не приводите значения как строки для начала — другими словами удаляйте двойные кавычки.

Ты можешь использовать <?= а также ?> как короткая рука, чтобы эхо переменной PHP без записи echo,

Я не проверял свое утверждение, но документация предполагает, что вы не можете просто вставить несколько значений в myLatLong, У вас на самом деле есть только одно значение для лат и лонг? Если так, это будет делать:

var marker = new google.maps.Marker({
position: {lat:<?=$dbLatitud[0]);?>, lng:<?=$dbLongitud[0];?>},
map: map,
title: 'Colectivo N°: 1'
});

Кроме того, вы можете подготовить свои данные для прямой вставки в JavaScript, используя связанный массив и json_encode():

<?php
$lats=['lat'=>-33.890542];
$lng=['lng'=>151.274856];
?>
...
position: <?=json_encode($lats+$lng);?>

Если у вас есть несколько маркеров, то увидеть это демо который использует многомерный массив данных и использует цикл для применения всех маркеров. В этом случае вы снова можете / должны использовать json_encode() в вашем PHP, чтобы подготовить / отформатировать значения вашей базы данных для JavaScript.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector