通常人们在mySQL中创建了2列,称为纬度和经度来存储和检索点的坐标。但是,我的应用程序检索整个纬度和经度坐标,并将它们只插入1列。
示例:(1.372442,103.94954699999994)
是否可以将我的数据库列插入如下位置?或者我能做到的任何方式。
var marker = new google.maps.Marker({
position: new google.maps.LatLng(<?php echo $location['locationOne']),
map: map,
});
谷歌地图可以承认这一点并检索点并根据我的例子绘制出来吗?感谢
答案 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中进行检索,这样可以更快地加载地图。祝好运!