Обновление местоположения на Google Maps-API



В настоящее время работаю над небольшим проектом и не могу решить проблему, с которой я сталкиваюсь при обновлении местоположения на карте Google через API.



Быстрый запуск (эта часть полностью работает)
- Иметь базу данных MySQL с некоторыми значениями lat и long
- По щелчку кнопки используйте Ajax, чтобы попасть в PHP-скрипт, который извлекает случайный lat и long из базы данных и кодирует в json.
- Я успешно извлекаю значения lat и long и могу предупредить их или вставить их в любом месте на экране. страница.



Вот в чем моя проблема. Я использую фрагмент API Google Maps, который отлично работает. Он показывает карту и, если я жестко кодирую значение lat и long в функции, которая срабатывает по щелчку кнопки, он повторно центрирует карту на новое место. Однако, когда я вставляю значения lat и long через Ajax-скрипт, он не обновляет расположение.



Вот мой код (только передний конец jQuery. Работают контроллеры PHP и ajax.)



<script>
var map;
function initialize()
{
map = new google.maps.Map(document.getElementById('map-canvas'), {
center: new google.maps.LatLng(48.1293954,12.556663),//Setting Initial Position
zoom: 2
});
}


function newLocation(newLat,newLng)
{
map.setCenter({
lat : newLat,
lng : newLng
});
}

google.maps.event.addDomListener(window, 'load', initialize);

$(document).ready(function ()
{
$("#1").on('click', function ()
{

// Get lat and long new values from MySQL
$.ajax({
type: "POST",
url: 'core/ajax_controller.php?c=controller',
data: $(this).serialize(),
dataType: 'json',
success: function(data) {

newLocation(data[0],data[1]);
map.setZoom(15);

}

});

});
});
</script>


Из приведенного выше примера. Если Я предупреждаю или печатаю данные[0], например, которые содержат значение lat, оно отображает значение в виде обычного текста - "26.1725364". Однако при добавлении его в функцию map "newLocation" он, похоже, не проходит через функцию, а повторно центрирует карту.



Однако, если я удалю Ajax и просто получу следующее, с жестко закодированными координатами lat и long. Он работает, каждый щелчок кнопки обновляет центр карты.



$("#1").on('click', function ()
{
newLocation(12.12345678,12.12345678);
map.setZoom(15);


Итак, похоже, что моя проблема заключается в том, чтобы каким-то образом получить доступ ко второму функция javascript "newLocation" внутри другой функции.



Есть ли способ сделать это правильно?

Спасибо

763   1  

1 ответ:

Ваш data результат запроса Ajax-это массив строк.

Таким образом, быстрое исправление будет:

success: function(data) {

    newLocation(parseFloat(data[0]),parseFloat(data[1]));
    map.setZoom(15);

}

Comments

    Ничего не найдено.