我可以使用lat& amp;从mySQL检索谷歌地图坐标吗?列在一起?

时间:2012-01-30 03:28:33

标签: php mysql google-maps google-maps-api-3

通常人们在mySQL中创建了2列,称为纬度和经度来存储和检索点的坐标。但是,我的应用程序检索整个纬度和经度坐标,并将它们只插入1列。

示例:(1.372442,103.94954699999994)

是否可以将我的数据库列插入如下位置?或者我能做到的任何方式。

var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $location['locationOne']),
map: map,
}); 

谷歌地图可以承认这一点并检索点并根据我的例子绘制出来吗?感谢

4 个答案:

答案 0 :(得分:1)

您需要将列拆分为两个单独的值,以创建Google地图LatLng对象。

答案 1 :(得分:1)

您不需要需要进行拆分 - 只要您的服务器端代码生成有效的javascript - 用户浏览器就会对其进行解析。事实上,javascript使用逗号分隔函数调用中的变量。

从您的示例中可以看出,它已经在提供的值上有括号,因此您不需要硬编码的值。

position: new google.maps.LatLng<?php echo $location['locationOne']; ?>,

但是你可能想对locationOne里面的值进行一些验证 - 否则你可能会产生无效的javascript,这最多会给用户一个神秘的错误信息。不好。

答案 2 :(得分:0)

您可以使用PHP在服务器端拆分列,也可以在JavaScript中在客户端拆分列。以下是JavaScript代码示例:

var latlng = "<?php echo $location['locationOne'] ?>".split(",");
var marker = new google.maps.Marker({
  position: new google.maps.LatLng(latlng[0], latlng[1]),
  map: map,
}); 

答案 3 :(得分:0)

您可以使用或不使用逗号将值保存在数据库中。如果谷歌地图不喜欢它,那么你可以添加它或使用PHP和JavaScript函数删除它。 JavaScript = replace();和PHP = str_replace();

如果您按数据过滤地图,那么您可以将数据“缓存”在JSON中进行检索,这样可以更快地加载地图。祝好运!