gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 04:39:14 24 4
gpt4 key购买 nike

目前正在开发一个小项目,无法解决通过 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com