Php 谷歌地理编码API结果显示在地图上?
我正在阅读Google的API,但没有看到任何示例,我搜索的所有其他示例都有点旧(大约1-2年前,大多数都是基于API键的:s) 我想要一个文本输入。发送按钮。下面是我的框架 如何使用我自己的输入在地图上显示位置 此时,我的iframe看起来是这样的:Php 谷歌地理编码API结果显示在地图上?,php,google-maps,google-maps-api-3,Php,Google Maps,Google Maps Api 3,我正在阅读Google的API,但没有看到任何示例,我搜索的所有其他示例都有点旧(大约1-2年前,大多数都是基于API键的:s) 我想要一个文本输入。发送按钮。下面是我的框架 如何使用我自己的输入在地图上显示位置 此时,我的iframe看起来是这样的: <iframe width="230" height="180" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="<?php echo $src
<iframe width="230" height="180" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="<?php echo $src ?>">
您需要使用谷歌地理编码API对您的地址进行反向地理编码,以获得坐标,然后可以使用坐标在地图上显示结果。例如,对于我的地址,我发布到地址参数,如下url所示
http://maps.googleapis.com/maps/api/geocode/json?address=154+Metro+Central+Heights+London+UK&sensor=true
坐标可以从产生的JSON中获得,如下所示
"geometry": {
"location": {
"lat": 51.5001524,
"lng": -0.1262362
}
获取JSON的PHP代码
<?php
$address = $_GET['address'];
$address=str_replace(" ","+",$address);
if ($address) {
$json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address.
'&sensor=true');
echo $json;
}
?>
我已经为你的上一个问题建立了一个工作示例,它将帮助你理解如何在地图上生成标记。如果您需要进一步说明,请告诉我。我建议您看看JavaScript API,因为您希望在地图上显示结果。这里有一些地理编码的示例。您没有提到您需要什么类型的地图,但您可能会发现静态地图更易于使用:。您只需要几个基本工具:cURL和SimpleXML。不幸的是,我将显示动态地图(用户类型地址如“blabla,New York,NY”,它显示带有缩放选项的地图等。我真的需要使用外部脚本吗?;sOk,但如果我需要使用XML而不是JSON呢?此时,当我放置“?”anywhere Opera弹出下载窗口,询问从何处下载此“json”文件…每个浏览器都有不同的处理不同文件格式的方法。如果您想查看JSON格式,请尝试在firefox或chrome中打开它。如果您需要XML,则需要用XML替换JSON,如下所示http://maps.googleapis.com/maps/api/geocode/xml?address=your+address&sensor=true
。我向您展示了json格式,因为它是使用纯javascript或jQuery解析更容易。再次请注意,在Safari中,XML的呈现方式与IE不同。如果您需要在Safari中查看原始XML文档,则需要查看源代码。不知道Opera是如何处理的。谢谢,但正如我之前所说的,使用XML的vertyhing工作正常,但不知道如何解析:(我在这里写了一篇关于解析JSON的注释
"geometry": {
"location": {
"lat": 51.5001524,
"lng": -0.1262362
}
<?php
$address = $_GET['address'];
$address=str_replace(" ","+",$address);
if ($address) {
$json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.$address.
'&sensor=true');
echo $json;
}
?>
$.getJSON("getjson.php?address="+address,
function(data){
lat=data.results[0].geometry.location.lat;
lng=data.results[0].geometry.location.lng;
//.... more map initialization code
}
);