javascript - 如何在我的应用程序中获取放置在 Google map 上的 JSON 结果?

标签 javascript html ajax

我正在使用 html5 和 JavaScript 创建一个简单的应用程序。 我想显示任何一个城市最近的地方 所以我已经设置了一个国家的经纬度。

如果用户单击学校,我想显示所有最接近经度和纬度以及半径的学校名称。
如果用户单击教堂,我想显示所有最接近长和纬度半径的教堂名称。
如果用户单击医院,我想显示距离长和纬度最近的所有医院名称和半径。等

我只有这个链接和示例相关代码:

https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AIzaSyC1BIAzM34uk6SLY40s-nmXMivPJDfWgTc


$.getJSON("https://maps.googleapis.com/maps/api/place/search/json?",{
        location:"-33.8670522,151.1957362",
        radius: 500,
        types:'food',
        name: 'harbour',
        sensor: false,
        key: 'AIzaSyC1BIAzM34uk6SLY40s-nmXMivPJDfWgTc'
        format: "json"  
    },
    function(data) {
      $.each(data.results, function(i,item){
      $("<img/>").attr("src", results.name).appendTo("#images");
      if ( i == 3 ) return false;
    });
  }); 

所以我想更改位置以获得地名。 一开始我该怎么做?

最佳答案

Maps v3 目前不支持来自 jQuery get/getJSON 的回调/JSONP

http://www.quora.com/Why-doesnt-the-Google-Maps-API-support-JSONP

就是说——如果你有耐心试试看

http://code.google.com/intl/no-NO/apis/maps/documentation/javascript/services.html#Geocoding

要异步加载,你需要做这样的事情:

function loadScript() {
  var script = document.createElement("script");
  script.type = "text/javascript";
  script.src = "http://maps.googleapis.com/maps/api/js?sensor=false&callback=initialize";
  document.body.appendChild(script);
}

http://code.google.com/apis/maps/documentation/javascript/basics.html#Async


如果没有,这是我的建议。

使用代理:

除非有人能找到新的资源来展示如何使用 jsonp 执行此操作(我只能找到告诉我它不受支持的资源),否则一种方法是编写代理。

这在同一台服务器上工作

DEMO

HTML:

<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script>
$(document).ready(function() {
  $.getJSON("googleapijson.php?type=food",
    function(data, textStatus){
      $.each(data.results,function(i, item) {;
       $("#placenames").append(i+':'+item.vicinity+'<br/>');
    });
  });
});
</script>
</head>
<body> 
 <div id="placenames"></div>
</body>
</html>

PHP:

<?PHP

header("Content-type: application/json");

/** note you need to grab and clean the parameters from the   
 *  get/post request and build your querystring:   
 */

$type = $_GET["type"]; // this needs to be cleaned

$URL="https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&types=".$type."&name=harbour&sensor=false&key=AIzaSyC1BIAzM34uk6SLY40s-nmXMivPJDfWgTc"

$json = file_get_contents($URL);

echo $json;
?>

关于javascript - 如何在我的应用程序中获取放置在 Google map 上的 JSON 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8545125/

相关文章:

Javascript:Opera 在中键单击时打开新选项卡

javascript - 如何包含文件夹中的所有 .js 文件?

java - 对于我的案例,未找到具有 URI 的 HTTP 请求的映射

Javascript 根本无法与 HTML 页面一起使用

jquery - Google API 是否始终位于各自的 URL 上?

php - (Ajax + PHP)我的 Google map 消失了

javascript - 延迟以防止 map 拖动时多次调用 ajax

javascript - 显示/隐藏 js 中的目标 Div 状态

php - 如何用 PHP 接收 XMLHttpRequest?

javascript - 我可以通过客户端 JS 访问 Notes 文档/集合吗?