0

我有一个数据库驱动的网站,它获取地址,地址显示在谷歌地图上。这是包含谷歌地图嵌入的字符串。我没有位置的纬度,但我有地址和区域。地点没有出现。

<?php  $add = $row_rsDoc['Address'];
$address = str_replace(" ","+",$add);
$gtown = str_replace(" ","+",$row_rsDoc['Town']);
$gprov = str_replace(" ","+",$row_rsDoc['Province']);

$googlestr=$address.','.'+'.$gtown.','.'+'.$gprov;
echo $googlestr;
?>
<th width="446" class="entry" scope="col"><iframe width="441" height="243" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.za/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=<?php echo $googlestr; ?>&amp;aq=&amp;sll=-26.178375,28.033719&amp;ie=UTF8&amp;hq=&amp;hnear=&amp;radius=15000&amp;t=m&amp;output=embed"></iframe><br />
4

2 回答 2

0

您需要对地址进行地理编码以获得长/纬度,然后使用标记和叠加层将标记嵌入到您的谷歌地图上。在谷歌地图文档中有一个很好的例子,说明如何应用静态标记和如何进行地理编码。

这个过程是这样的。

在地址添加 -> 请求地理编码 -> 将返回的 long/lat 存储到 db -> 在地图加载时通过 ajax 回调到一个 php 页面,该页面返回一个 long/lats 数组以在地图上标记。

这正是我的做法,它最大限度地减少了您必须对 google api 执行的实际查询的数量,因为它对免费用户的请求有限。如果您想要实际代码,请告诉我,我可以从我的一个应用程序中复制和粘贴,这正是这样做的。

于 2013-03-21T07:57:35.813 回答
0

而不是使用str_replace()use urlencode()(请参阅urlencode()的文档)

此外,您在 URL 中包含位置坐标,请尝试使用:

<th width="446" class="entry" scope="col"><iframe width="441" height="243" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://maps.google.co.za/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=<?php echo $googlestr; ?>&amp;aq=&amp;ie=UTF8&amp;output=embed"></iframe><br />
于 2013-03-21T07:59:56.517 回答