Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 谷歌地理编码API结果显示在地图上?_Php_Google Maps_Google Maps Api 3 - Fatal编程技术网

Php 谷歌地理编码API结果显示在地图上?

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

我正在阅读Google的API,但没有看到任何示例,我搜索的所有其他示例都有点旧(大约1-2年前,大多数都是基于API键的:s)

我想要一个文本输入。发送按钮。下面是我的框架

如何使用我自己的输入在地图上显示位置

此时,我的iframe看起来是这样的:

<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
                 }
);