php - 更新 Google map 上的位置 - API

标签 php jquery ajax google-maps google-maps-api-3

目前正在开发一个小项目,无法解决通过 API 更新 Google map 上的位置时遇到的问题。

快速运行(这部分全部正常) - 拥有一个包含一些纬度和经度值的 MySQL 数据库 - 单击按钮后,我使用 Ajax 来执行 PHP 脚本,该脚本从数据库中提取随机的纬度和经度并编码为 json。 - 我成功检索了纬度和经度值,并可以提醒它们或将它们插入到页面上的任何位置。

这就是我的问题所在。我正在使用 Google Maps API 片段,效果非常好。它显示 map ,如果我在单击按钮时触发的函数中硬编码纬度和经度值,它会将 map 重新​​居中到新位置。但是,当我通过 Ajax 脚本插入纬度和经度值时,它不会更新位置。

这是我的代码(只有前端 jQuery。PHP 和 ajax Controller 可以工作。)

<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],它会以纯文本形式显示一个值 - “26.1725364”。但是,当将其添加到 map 函数“newLocation”时,它似乎没有传递到该函数,也没有将 map 重新​​设置为中心。

但是,如果我删除 Ajax 并且只有以下内容,并带有硬编码的纬度和经度坐标。它有效,每次单击按钮都会更新 map 中心。

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

所以,看来我的问题是在另一个函数中访问第二个 javascript 函数“newLocation”。

有没有办法正确地做到这一点?

谢谢

最佳答案

Ajax 请求的 data 结果是一个字符串数组。

因此,快速解决方法是:

success: function(data) {

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

}

关于php - 更新 Google map 上的位置 - API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42544300/

相关文章:

php - "object not found"使用 php 连接到 mysql 数据库时

javascript - 如何使用jquery优化页面加载

jquery - 依次使用 .fadeIn()

javascript - 替换字符串中的多个文本 javascript

javascript - 保护 ajax 数据以供提交

c# - C#中如何获取对象的值

html - 什么时候使用灯箱效果?

java - 位图图像不显示

php - 在一个查询中从两个不同的表中选择不同的行

php - 如果 Laravel 的内置身份验证中的身份验证逻辑重定向?