2

我正在编写一个脚本,该脚本将从我的 MySQL 数据库表中提取一个变量,这是 google 给我的示例编码。

var beaches = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
];

现在这就是我想要实现的目标,

我有一张桌子,上面有 ID、Beach、Long、Lat

我将如何替换海滩变量以从我的 MySQL 表中提取,而不必进入并手动将海滩添加到变量中。这样,当用户通过我的表单向数据库添加经度和纬度的海滩名称时,它会自动在我的谷歌地图上添加一个标记。

我正在使用 Google Maps API v3 实现 ComplexIcon Overlays

https://developers.google.com/maps/documentation/javascript/overlays#ComplexIcons

我猜我会使用一些 AJAX 吗?我以前从未使用过 AJAX,所以如果是这种情况,我想我最好把我的 AJAX tuts 拉起来 :)

4

2 回答 2

4

用户浏览器中的 Javascript 无法直接访问您的数据库(这很好!),但它可以向您的服务器请求数据,如果您想要动态更新,AJAX 很可能是您的选择。谷歌有一篇文章:https ://developers.google.com/maps/articles/phpsqlajax_v3

然而,当您将页面发送到浏览器时,您似乎更可能只需要获取标记数据,您可以通过使用 PHP 或其他服务器端语言构建页面,使用类似的技术来获取数据数据库并直接在页面代码中使用这些值。

您可能需要同时执行这两项操作,以创建用户获取的初始页面并通过 AJAX 对其进行更新,这样只需更改数据即可,您不必刷新整个页面。

[注意:您不必使用 XML 来异步传输数据,您可以使用 JSON 来格式化它或您可以编码的任何其他格式。但是 XML 很简单,而且有很多例子。]

于 2012-05-17T07:24:39.137 回答
0

是的,你必须用ajax来做。例如,我将使用 jQuery

$.ajax({
    url: formSubmitUrl,
    data: 'id=1&lat=23.444...',
    type: 'GET',
    success: function (data)
    {
        // data = response from the script
        // if every thing is ok, I return the string 'OK'
        if(data == 'OK')
        {
            var pMarker = new google.maps.Marker({
                position: new google.maps.LatLng(lat, lng),
                map: map,
                icon: yourMarkerimage
            });
        }
    }
});

而这一切都来自客户端。通过 AJAX 提交表单,然后将标记添加到地图

于 2012-05-17T07:44:06.917 回答