我正在开发一个需要使用免费的Google地理编码API的项目。我需要使用Geocoding API查询的结果来验证查询本身并确保所有字段都正确。
我一直在尝试查看是否有与Bing api maxResults
参数并行的选项,但似乎无法在文档中找到任何内容。 maxResults
参数限制了返回的地址数,因此可以缩短工作时间。
这是Bing API文档,其中包含有关maxResults参数的信息。 (CTRL + F): https://msdn.microsoft.com/en-us/library/ff701714.aspx
可以在此处找到Google地理编码API的概述: https://developers.google.com/maps/documentation/geocoding/intro
答案 0 :(得分:1)
您的帖子非常混乱,因为您将其标记为google-maps-api-3
,技术上是 Google Maps Javascript API v3 ,但您提供的文档是 Web Services Geocoder API < / strong>即可。
但是要回答您的问题,目前此功能不适用于 Web服务地理编码器API ,并且无法限制最大结果。
限制 Javascript API地理编码服务的返回结果也不可用,但有一个方法可以限制您将在客户端显示的结果数量(前端)。您只需通过不循环遍历每个结果,然后将循环限制为您想要的数字即可。
以下是我执行for-loop
示例代码的一部分,并设置变量len
(长度)。
var s_markers = [];
var map;
function initialize() {
var currentarea = { lat: 14.5393988, lng: 121.0521586};
map = new google.maps.Map(document.getElementById('map'), {
zoom: 2,
center: {lat:0,lng:0},
disableDefaultUI: true
});
var address = 'google maps'; // just used google maps since it returns multiple results
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address },function(results, status) {
// var len = results.length;
var len = 2; //declare here the number of wanted result
for (var x=0; x<len; x++){
var pos = results[x].geometry.location;
map.panTo(pos);
var s_mark = new google.maps.Marker({
position: pos,
title: results[x].formatted_address,
map: map
});
s_markers.push(s_mark);
}
});
}
最初我在这里使用var len = results.length
将所有结果显示为标记。但要限制显示的结果,您可以将其设置为var len = 2
或var len = 1
。此处的原始退货数为3
。
您可以在此处看到完整代码:http://jsbin.com/nagadis/edit?html,js,output
但是,如果您希望此功能可以限制结果数量,那么您可以做的最好的事情是在Google Issue tracker
中提交功能请求
希望这有帮助!