google地图支持多个地址同时搜索么

194 views
Skip to first unread message

Kyomic

unread,
Oct 14, 2009, 3:45:14 AM10/14/09
to 谷歌地图 API 论坛
我想一次搜索多条地址记录,为什么有些返回的point为null,单独搜索是正常的。我用setTimeout异步搜索也不行。(注:假定
address是动态变化的)

function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
//看这里
for(var i=0;i<10;i++){
var geocoder = new GClientGeocoder();
geocoder.getLatLng(address,function(point){})
}
//
}
}


我的address是正常,单独是能搜索得到的

Fei Chen

unread,
Oct 14, 2009, 9:29:37 AM10/14/09
to google-map...@googlegroups.com
1、GClientGeocoder一次只能解析一个地址,不知道你是怎么解析多条地址的,把所有地址字符串直接串成一个?这样是不行的。
2、你说的setTimeout异步搜索是什么意思?GClientGeocoder的请求就是异步发送的,你是指定时发送getLatLng()请求吗,API对这样的行为是有限制的。简单的解决方法就是:你可以动态调整发送请求的时间间隔,简单说,就是如果接受到602的返回状态码后重设你的定时发送时间(设为更长时间间隔)

2009/10/14 Kyomic <qql...@gmail.com>

Kyomic

unread,
Oct 15, 2009, 1:14:19 AM10/15/09
to 谷歌地图 API 论坛
getLatLng是异步的,我同一时间创建多个GClientGeocoder对象,每个对象都执行getLatLng时会有功能上的限制?比如我一
秒钟创建1000个GClientGeocoder,它们不定时搜索(我会用setTimeout创建GClientGeocoder),这种操作会被
API阻止?(FAQ中所说的:”提交的地址解析请求次数是否有限制? “)

是这样的么!?

Fei Chen

unread,
Oct 15, 2009, 2:15:45 AM10/15/09
to google-map...@googlegroups.com
每个解析请求之间的时间间隔也是有限制的,不能过于频繁,所以你的方法是不行的,这也是我说动态调整你的请求发送间隔的目的

2009/10/15 Kyomic <qql...@gmail.com>

Kyomic

unread,
Oct 15, 2009, 3:19:03 AM10/15/09
to 谷歌地图 API 论坛
嗯,谢谢你!
Reply all
Reply to author
Forward
0 new messages