我只有地址,我想在谷歌地图上突出显示该地址,并进行一些修改,如圆形示例
这是帮助获取 lat、lng 信息的资源在 Geocoder 中返回未定义的函数
$location
保存位置的地址
function getLatLng(callback){
var geocoder = new google.maps.Geocoder();
var latlng = new Array(2);
// get Lat, Lang
geocoder.geocode({'address': '<?php echo $location ?>', 'region': 'UK'}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
latlng[0] = results[0].geometry.location.lat();
latlng[1] = results[0].geometry.location.lng();
callback(latlng); // call the callback function here
} else {
console.log( "Unable to find address: " + status );
}
});
}
var citymap = {};
var CityCircle;
citymap['<?php echo $location ?>'] = {
center: getLatLng(function(latlng){ return latlng; }),
population: 2842518
};
但我无法将 lat、lng 信息发送到地图,并且出现错误
TypeError: c[tb] is not a function
我知道“geocode()”函数是异步的,有什么替代方法可以让我只用地址实现Circle Simple吗?
解决并更新了答案:
我已经解决了:
function getLatLng(location){
var geocoder = new google.maps.Geocoder();
var latlng = new Array(2);
// get Lat, Lang
geocoder.geocode({'address': location, 'region': 'UK'}, function(results, status){
if (status == google.maps.GeocoderStatus.OK) {
latlng[0] = results[0].geometry.location.lat();
latlng[1] = results[0].geometry.location.lng();
//callback(latlng); // call the callback function here
var citymap = {};
var CityCircle;
citymap['<?php echo $location ?>'] = {
center: new google.maps.LatLng(latlng[0], latlng[1]),
population: 2842518
};
// rest code here
function initialize(){ .... }
// initialized map function without onload
initialize();
} else {
console.log( "Unable to find address: " + status );
}
});
}
setTimeout(function(){ getLatLng('<?php echo $location ?>'); }, 1000);
希望这对某人有所帮助