我正在尝试访问Google商家信息,以便在经度和经度周围返回50个餐馆名称,但在提出请求时,我遇到了一堵砖墙。我已经获得了确定用户纬度和经度的代码,并且我从谷歌获得了我的API密钥,我只是无法弄清楚如何通过URL提出请求,Google文档对于如何实际上没有提及获取数据。我相信我能够弄清楚如何解析JSON返回,但是获得数据已经证明比我想象的更困难/困惑。
如果重要,我正在使用MaxMind来获取用户的经纬度。这是我到目前为止的脚本:
<script type="text/javascript" src="https://www.google.com/jsapi?key=api_key"></script>
<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js"></script>
<script type="text/javascript">
latitude = geoip_latitude();
longitude = geoip_longitude();
</script>
答案 0 :(得分:2)
Google文档没有说明如何实际获取数据
实际上,Places Web Service API documentation没有示例 - 您使用适当的参数生成URL,然后返回您解析的JSON或XML。
如果您使用的是jQuery并且API支持JSONP,那么您可以这样做:
$.ajax({
url: 'https://maps.googleapis.com/maps/api/place/search/json',
data: {
location:"-33.8670522,151.1957362",
radius: 500,
types:'food',
name: 'harbour',
sensor: false,
key: 'AIzaSyAiFpFd85eMtfbvmVNEYuNds5TEF9FjIPI'
},
success: function(data){
//data will be a JSON object that you can iterate over
},
dataType: 'jsonp'
});
请注意,这不起作用,因为不支持JSONP,这只是为了说明可能在jQuery中发出请求的方式
但是,AFAIK,Web服务不支持JSONP,因此您将无法通过JavaScript发出请求。但是,您可以使用Google Maps JavaScript API并使用Places JavaScript library代替。同样,该页面有示例显示如何使用该库,基本用途将涉及启动服务和发出如下搜索请求(直接从文档复制):
service = new google.maps.places.PlacesService(map);
service.search(request, callback);