google-maps-api-3 - 使用 Google Geocode API 限制结果
问题描述
我正在开发一个需要使用免费 Google Geocoding API 的项目。我需要使用 Geocoding API 查询的结果来验证查询本身并确保所有字段都正确。
我一直在尝试查看是否有与 Bing apimaxResults
参数平行的选项,但似乎在文档中找不到任何内容。该maxResults
参数限制了返回的地址数量,因此使作业花费的时间大大减少。
这是 Bing API 文档,其中包含有关 maxResults 参数的信息。(ctrl+f): https ://msdn.microsoft.com/en-us/library/ff701714.aspx
谷歌地理编码 API 的概述可以在这里找到: https ://developers.google.com/maps/documentation/geocoding/intro
解决方案
您的帖子非常令人困惑,因为您将其标记google-maps-api-3
为技术上适用于Google Maps Javascript API v3但您提供的文档适用于Web Services Geocoder API。
但要回答您的问题,目前此功能不适用于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 问题跟踪器中提交功能请求
希望这有帮助!
推荐阅读
- php - Laravel Scheduler 在不同时间触发 2 个命令
- javascript - npm:执行测试用例时在 gitlab-ci.yml 文件中未发现错误
- angular - Videogular2 获取视频时长返回 NaN
- ios - 如何以编程方式获取颜色资产目录中包含的所有颜色?
- image - 使用 CDN 托管的免费图像
- excel - VBA 按日期对行进行排序
- python - 杀死python后台进程gitlab-ci
- azure - Azure 服务总线 - messageSender.SendAsync 中的第 99 个百分位缓慢
- c# - ComboBox 首先显示 System.Data.DataRowView
- android - ADB:规范中缺少端口