我正在构建一个应用程序,我试图获取给定纬度和长度附近的位置列表。
我有一个api密钥并在我的浏览器url上输入这个,并给我一个带有位置数据的json文件。
https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=false&key=AIzaSyAImBQiqvaXOQtqeK8VC-9I96kMmB6Mz7I
但是当我尝试获取并解析它时,虽然j查询它没有给我任何东西。
$(document).ready(function(){
$.getJSON('https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=false&key=AIzaSyAImBQiqvaXOQtqeK8VC-9I96kMmB6Mz7I',
function(data) {
alert(data);
});
我在堆栈溢出时发现了以下问题,但是他们找到了答案。
parse google place json with javascript
How do I use Google Places to get an array of Place names?
修改
我试图通过
获取文件的内容echo file_get_contents("https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=false&key=AIzaSyAImBQiqvaXOQtqeK8VC-9I96kMmB6Mz7I");
并使用php获取文件内容。
但有没有办法用jquery或javascript解析它?
感谢您的帮助。
答案 0 :(得分:3)
不允许使用ajax(直接)跨域请求。我试过了:
echo file_get_contents("https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=false&key=AIzaSyAImBQiqvaXOQtqeK8VC-9I96kMmB6Mz7I");
它适用于我(wamp 2.0 openssl已启用)。
如果您成功完成此操作,则可以使用同一域中页面上的ajax脚本获取内容。
编辑:
这个想法是对你的php页面进行ajax调用,php页面从de google api获取数据并返回它。 jquery自动解析json:)
代码:
$.ajax({
url: 'url_to_your_php',
data: {
location:'-33.8670522,151.1957362',
radius:500,
sensor:false,
key:'AIzaSyAImBQiqvaXOQtqeK8VC-9I96kMmB6Mz7I'},
dataType: "json"
type: "GET", //or POST if you want => update your php in that case
success: function( data ) {
for(var i in data.results){
doSomthingWithYourLocation(data.results[i]);
}
},
error: function (request, status, error) {
//handle errors
}
});
你的php应该做这样的事情:
<?php
header('Content-type: application/json');
echo file_get_contents("https://maps.googleapis.com/maps/api/place/search/json?" .
"location=-" . $_GET['location'] .
"&radius=" . $_GET['radius'] .
"&sensor=" . $_GET['sensor'] .
"&key=" .$_GET['key']);
?>
最好检查php文件中的输入,但这应该有用。
答案 1 :(得分:2)
从一个域加载的脚本无法向另一个域发出ajax请求。使用Google Maps JavaScript API加载您的数据。
答案 2 :(得分:2)
可以在此处访问地点javascript API:http://code.google.com/apis/maps/documentation/javascript/places.html
答案 3 :(得分:1)
您可以通过以下方式解析对象数据:
$(document).ready(function(){
$.getJSON('https://maps.googleapis.com/maps/api/place/search/json?location=-33.8670522,151.1957362&radius=500&sensor=false&key=AIzaSyAImBQiqvaXOQtqeK8VC-9I96kMmB6Mz7I', function(data) {
$.each(data, function(index,place) {
alert(place.name);
});
});
});
希望它有所帮助。