【发布时间】:2013-01-14 19:56:25
【问题描述】:
我正在尝试使用 Google Maps API 创建可用作标记的纬度和经度数组(来自 mySQL 城市数据库)。
我不确定如何在 PHP 中动态提取城市并在 javascript 中对其进行地理编码。
这是我目前所拥有的。我知道地理编码器线不正确,但我不确定如何使用它。任何建议或解决方案都会非常有帮助。
var geocoder = google.maps.Geocoder();
var markers = [
<?php
//orgnize fans by city
$query = "SELECT city, state, COUNT(*) fans FROM users GROUP BY city ORDER BY fans DESC";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
//pulls the city, state code from the database and stores it as a string in $address
$address = '"' . $row['city'] . ", " . $row['state'] . '"';
// "$row['city'].", ".$row['state']";
geocoder.getLatLng($address, function(point) {
$latitude = point.y;
$longitude = point.x;
});
echo "{ lat: \"".$latitude.", lng: ".$longitude.", name: "'"'.$row['city'].", ".$row['state'].'"'"},\n ";
echo "<br/>";
}
?>
];
//var locationNameArray = ['Portland','Seattle','Los Angeles','San Diego','Las Vegas'];
// Create the markers ad infowindows.
for (index in markers) addMarker(markers[index]);
function addMarker(data) {
// Create the marker
var marker = new google.maps.Marker({
position: new google.maps.LatLng(data.lat, data.lng),
map: map,
title: data.name
});
【问题讨论】:
-
你的 PHP 代码在哪里结束而 JavaScript 从哪里开始?
-
您真的想在每次从数据库中获取所有城市时对其进行地理编码吗?我会为所有城市做一次,并将经纬度保存在数据库中。也许你从一个开放的数据库中获取经纬度数据。
-
我想在每次获取城市时对其进行地理编码,因为我希望地图最终为不同的用户显示不同的标记。
-
如果您每次加载页面时都运行此脚本,您可能会被列入黑名单。每天还有 2500 个请求限制。如果您的查询返回 250 个用户(城市),则地理编码将在 10 人访问您的网站后停止:developers.google.com/maps/documentation/geocoding
-
@user1072337:但城市的位置不会改变。仅仅因为您使用“粉红色独角兽”图标来表示纽约并不意味着它会神奇地移动到南半球,因为另一个用户上面有一只卡其色大象。
标签: php javascript mysql google-maps-api-3