0

我正在使用一些地理数据,使用 Google Maps API 在地图上生成圆圈。简单的。数据来自 MySQL 数据库,我正在使用 PHP 在加载时将其打印到脚本中。JavaScript 对象的结构如下所示:

var circles = { 
    1 : { center : new google.maps.LatLng(55,-1), size: 1000},
    2 : { center : new google.maps.LatLng(56,-2), size: 2000}
};

目标

圆圈不是任意的,它们所代表的位置具有我想过滤的相关特征。假设有一个下拉框允许您选择地图上显示的圆圈的大小范围。更改后,地图将根据此选择重新加载圆圈。

我创建了一个生成数据的 PHP 脚本,并尝试使用 AJAX (jQuery) 将响应分配给 circles 变量,如下所示。当我破解它的想法是脚本将根据下拉选择生成不同的数据。

var circles = {};
var circles = $.ajax({
    url: "data.php",
    async: false
}).responseText;

PHP (data.php) 脚本生成的文本是这样的:

1:{中心:新google.maps.LatLng(55,-1),大小:1000},2:{中心:新google.maps.LatLng(56,-2),大小:2000}

但是,这不起作用。我可能错过了一步或走错了路,但欢迎任何指导。

提前致谢!

4

1 回答 1

0

感谢@davidkonrad,我没能让他的回答奏效。问题在于将new google.maps.LatLng(55,-1)对象作为 JSON 传输。

我的解决方案是在 PHP 脚本生成的 JSON 中拆分纬度和经度变量。

JSON结构:

{"1" : { "lat" : 55, "lng" : -1, "size": 10000}}

然后在选项或每个圆圈中设置中心:

center : new google.maps.LatLng(circle.lat,circle.lng)
于 2013-11-14T11:52:50.473 回答