【发布时间】:2012-06-08 15:39:12
【问题描述】:
我想知道是否有人可以帮助我。
我使用下面显示的代码在 Google 地图上正确绘制从 MySQL 数据库检索到的标记。
<script type="text/javascript">
//Sample code written by August Li
var icon = new google.maps.MarkerImage("images/location-marker-2.png")
new google.maps.Point(16, 32);
var center = null;
var map = null;
var bounds = new google.maps.LatLngBounds();
function addMarker(lat, lng, info) {
var pt = new google.maps.LatLng(lat, lng);
bounds.extend(pt);
var marker = new google.maps.Marker({
position: pt,
icon: icon,
map: map
});
}
function initMap() {
map = new google.maps.Map(document.getElementById("gmaps-canvas"), {
center: new google.maps.LatLng(0, 0),
zoom: 6,
scrollwheel: true,
draggable: true,
mapTypeId: google.maps.MapTypeId.SATELLITE
});
<?php
include("admin/link.php");
include("admin/opendb.php");
$query = mysql_query("SELECT * FROM `detectinglocations` WHERE `locationid` = '$lid'");
while ($row = mysql_fetch_array($query)){
$locationname=$row['locationname'];
$osgb36lat=$row['osgb36lat'];
$osgb36lon=$row['osgb36lon'];
echo ("addMarker($osgb36lat, $osgb36lon,'<b>$locationname</b><br/>');\n");
}
mysql_close($connect);
?>
center = bounds.getCenter();
map.fitBounds(bounds);
}
</script>
我现在要做的是添加更多功能,允许用户也可以单击地图来绘制新标记,本质上使用数据库中预先存在的标记作为工作点,执行 @ 987654322@.
我已经研究了好几天了,我已经尝试实现了一大堆教程,但我似乎无法让这两个部分的功能都正常工作。
我知道要启用 on-click 事件,我需要合并以下内容:
google.maps.event.addListener(map, 'click', function(event) {
marker.setPosition(event.latLng)
geocode_lookup( 'latLng', event.latLng );
});
}
但我必须承认我有点不确定我还需要合并什么。
我只是想知道是否有人可以看看这个,如果有人能告诉我我哪里出错了,我将非常感激。
非常感谢和亲切的问候
【问题讨论】:
-
没看清楚。您希望获得从数据库中添加的每个标记的地址吗?或者当点击地图时?单击数据库标记时?上述所有的?反向地理编码后,地址应该去哪里?
-
嗨@HeitorChang,感谢您抽出宝贵时间回复我的帖子,对于没有明确说明这一点,我深表歉意。当地图加载时,地图上已经有一个标记。这是从存储在 MySQL 数据库中的 lat 和 lng 加载的。我现在需要尝试并做的是添加功能,用户也可以单击地图并执行
reverse geocode,而不会影响预先填充的标记。我希望这使它更清楚一点。亲切的问候
标签: php google-maps-api-3 reverse-geocoding