我有一个基本上看起来像这样的功能(略微简化):
function drawCircle(address) {
geocoder.geocode( { 'address': address}, function(results, status){
if (status==google.maps.GeocoderStatus.OK){
var circ = new google.maps.Circle({
center:results[0].geometry.location,
clickable:false,
fillColor:colors[count],
fillOpacity:.3,
map:map,
radius:200,
strokeOpacity:.3,
zIndex:2
});
...
return circ;
}
else{
//geocode unsuccessful, alert user
alert("Could not find location");
}
});
}
它会在传入函数的地址周围的Google地图上绘制一个半径圆。然后它返回圆形对象。
但是,当我尝试使用此函数的结果时,即使圆圈已成功绘制,它也始终返回undefined。
var myCircle = drawCircle("someAddress");
当我单步执行此代码(使用Firebug)时,circ
变量已定义,并且在return语句时包含一个Google地图圈子对象。但是,另一方面,它被分配给myCircle undefined
。
我做错了什么?