Google Maps Api v3的地理代码地址,如何返回对象
Google Maps Api v3 geocode address, how to return the object
我试图通过google api v3地理编码功能返回地址的纬度和经度。地理编码工作得很好,我只是不能将结果设置为我的地理编码对象从函数返回。我怀疑这是一个作用域问题
function codeAddress(address) {
var geocoder = new google.maps.Geocoder();
//this is the container var which I will reurn
var geocode={};
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
geocode.success = true;
geocode.position= results[0].geometry.location;
//If I log geocode here I can see the position and success values in the object
} else {
geocode.success=false;
geocode.message="Geocode was not successful for the following reason: " + status;
}
});
//If I log geocode here it's empty
return geocode;
}
感谢任何建议。
这绝对是一个作用域问题。传递给geocode请求的回调函数是异步执行的。
来源访问地理编码服务是异步的,因为Google地图API需要调用外部服务器。因此,你需要传递回调方法以在完成时执行请求。这个回调方法处理结果。
这意味着您的codeAddress
函数将始终返回一个空对象。
相关文章:
- 节点导出返回一个空对象
- ES6构造函数返回基类的实例
- 监视函数从服务返回不起作用,但作用域函数起作用
- 控制台返回var不是't定义,但它是
- 从函数返回角度承诺
- Javascript返回值只在循环中返回一次
- 从控制器返回后Ajax启动事件激发
- CKFinder 3为所选文件返回错误的URL
- 如何在d3.js中返回路径的y坐标
- 如何从jquery函数返回变量
- Angular js-返回一个包含类似
- JSONP请求返回结果,但也触发error_callback
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 从HTTPGET返回一个自定义对象列表,以便在Angular 2应用程序中使用
- 带有护照的节点:比较密码抛出错误未定义不是一个函数,当它返回返回完成(null,用户);
- Meteor 方法在返回包装在回调中时不返回返回值
- 函数返回返回函数javascript的函数
- 如何循环浏览页面上的所有单选或复选框输入,并返回返回的值组合
- 应用程序不返回返回值
- Ajax返回返回整个html结构