我之前没有任何javascript经验。
我正在尝试实现以下函数,我希望用它来返回值lat和lng:
function get_address() {
var geocoder = new google.maps.Geocoder()
geocoder.geocode({ address: "SE-17270 Sverige"},
function(locResult) {
var lat = locResult[0].geometry.location.lat();
var lng = locResult[0].geometry.location.lng();
alert(lat);
alert(lng);
})
}
我该怎么做?
所以我想做的是这样的事情:
function get_address(postcode)
{
var geocoder = new google.maps.Geocoder()
var lat
var lng
geocoder.geocode({ address: "SE-"+postcode+"Sverige"},
function(locResult) {
lat = locResult[0].geometry.location.lat();
lng = locResult[0].geometry.location.lng();
})
return lat,lng
}
答案 0 :(得分:3)
使用回调来处理地理编码结果:
function myCallback(lat, lng) {
// Process lat and lng.
}
function get_address(callback) {
var geocoder = new google.maps.Geocoder()
geocoder.geocode({ address: "SE-17270 Sverige"},
function(locResult) {
var lat = locResult[0].geometry.location.lat();
var lng = locResult[0].geometry.location.lng();
callback(lat, lng);
}
);
}
....
get_address(myCallback);
答案 1 :(得分:1)
您可以使用全局变量或返回数组中的值,例如:
全局变量方法:
lat = "";
lng = "";
function get_address() {
var geocoder = new google.maps.Geocoder()
geocoder.geocode({ address: "SE-17270 Sverige"},
function(locResult) {
lat = locResult[0].geometry.location.lat();
lng = locResult[0].geometry.location.lng();
alert(lat);
alert(lng);
})
}
数组方法:
function get_address() {
var geocoder = new google.maps.Geocoder()
geocoder.geocode({ address: "SE-17270 Sverige"},
function(locResult) {
var lat = locResult[0].geometry.location.lat();
var lng = locResult[0].geometry.location.lng();
thearray = [];
thearray.push(lat);
thearray.push(lng);
return thearray;
})
}
答案 2 :(得分:1)
在标题部分添加Google库:
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script>
更正语法错误,然后启动函数:DEMO
CODE(使用jquery onload):
var lat = "";
var lng = "";
function getLatLng(callback) {
lat = callback.lat();
lng = callback.lng();
alert(lat +" "+lng);
}
$(function() {
var geocoder = new google.maps.Geocoder()
geocoder.geocode({
address: "SE-17270 Sverige"
}, function(locResult) {
getLatLng(locResult[0].geometry.location);
});
});
答案 3 :(得分:0)
在回调函数外声明变量lat
和lng
。