从mysql检索纬度和经度,将其传递给谷歌地图API
Retrieving latitude and longitude from mysql, passing it to google maps api
我是一个完全的初学者,只是想知道是否有一个简单的方法是将这些位置传递给谷歌地图,这是在我的HTML脚本中。
我可以像这样很好地检索坐标
PHP(这有效(:
<?php
require_once "sql.php";
error_reporting(E_ALL ^ E_NOTICE);
ini_set('display_errors','On');
$result = array();
$result['success'] = false;
$order_by = $_REQUEST['sort_by'];
$query = "SELECT venue_name, latitude, longitude, id FROM venues";
if ($result_set = Sql::query($query)) {
$result['success'] = true;
$result['message'] = "All Venues" ;
$rows = mysqli_num_rows($result_set);
$result['rows'] = array();
for ($i = 0; $i<$rows; $i++) {
$tmpRow = mysqli_fetch_assoc($result_set);
$result['rows'][$i] = $tmpRow;
}
} else {
$result['message'] = "Failed to read Cafes" ;
}
print(json_encode($result));
JQuery(单独.js的一部分,这有效(:
function success_get_locations(response) {
if(response.success) {
var cafe_loc = '';
for (var i = 0; i < response.rows.length; i++) {
var venue_name = response.rows[i].venue_name;
var venue_lat = response.rows[i].latitude;
var venue_long = response.rows[i].longitude;
var id = response.rows[i].id;
cafe_loc += venue_name + venue_lat + venue_long + id;
}
}
}
我只需要知道如何将这些位置从我的 JQuery 中的function success_locations()
添加到谷歌地图var locations []
,这在我的 HTML 中:
<div id="map" style="width: 500px; height: 400px;"></div>
<script type="text/javascript">
var locations = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: new google.maps.LatLng(-33.92, 151.25),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locations.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[i][1], locations[i][2]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent(locations[i][0]);
infowindow.open(map, marker);
}
})(marker, i));
}
</script>
谢谢詹姆斯
这一点没有多大意义:
cafe_loc += venue_name + venue_lat + venue_long + id;
你正在获取漂亮的结果数组,将这些位吸收到单个变量中,然后将它们全部合并到一个大字符串中。 例如,对于JS代码中的示例位置,您实际上正在构建
Bondi Beach-33.890542151.2748564
为什么不将它们保留为它们已经存在的阵列呢?或者,如果数组的顺序不正确,您可以按正确的顺序使用元素构建一个新数组:
locs_for_google = [];
for (var i = 0; i < response.rows.length; i++) {
locs_for_google[i] = [
response.rows[i].venue_name,
response.rows[i].latitude,
response.rows[i].longitude,
response.rows[i].id
];
}
相关文章:
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 谷歌地图JS API+JSON-多个标记没有显示
- 标记的实时更新,无需加载页面谷歌地图API V3
- 覆盖在赢得'不允许点击下面的标记,谷歌地图api v3
- 谷歌地图Api和JS代码不工作
- 谷歌地图API-InfoBubble赢得't关闭-关闭()不会'不起作用
- 如何在多承诺链中处理谷歌地图API V3事件
- 地理定位api和谷歌地图出错
- 谷歌地图api和gMapsLatLonPicker
- 谷歌地图地点API地图未显示
- 当我使用高度百分比时,谷歌地图javascript api不会显示
- 谷歌地图API-“;toGeoJson”;返回几何体为null的对象
- 谷歌地图API v3:Initial View is Fine,but Gray Box with No Map if
- 为什么谷歌地图API's方法未从RequireJS中正确调用
- 使用谷歌地图api计算距离并将其设置在表格中<td>
- 使用谷歌地图API和phonegap显示当前位置+方向
- 使用谷歌地图api v3自动完成字段(法国大道、邮编、城市)
- 关于关键的API谷歌地图
- mark.setDragable(false)在API谷歌地图的main.js中抛出异常
- 隐藏标记出现后缩放- API谷歌地图V3