Javascript 使用lat/lon反向地理定位以获取街道地址
我使用Google Geocoder API创建了一个函数来执行反向地理定位。它从浏览器的本机功能中提取lat/lon并将其发送到谷歌。该函数的目的是获取用户的大致街道地址(即,Javascript 使用lat/lon反向地理定位以获取街道地址,javascript,google-maps,geocoding,Javascript,Google Maps,Geocoding,我使用Google Geocoder API创建了一个函数来执行反向地理定位。它从浏览器的本机功能中提取lat/lon并将其发送到谷歌。该函数的目的是获取用户的大致街道地址(即,123假街道)。不需要城市/直辖市、省/州、国家和邮政编码,只需要街道地址 function geoSuccess(pos) { Geocoder = new google.maps.Geocoder; Geocoder.geocode({location: {lat:pos.coords.latitud
123假街道
)。不需要城市/直辖市、省/州、国家和邮政编码,只需要街道地址
function geoSuccess(pos) {
Geocoder = new google.maps.Geocoder;
Geocoder.geocode({location: {lat:pos.coords.latitude,lng:pos.coords.longitude}}, function(r, s) {
if (s === 'OK') {
var found = false,
x = 0;
do {
if (r[x].address_components[0].types.indexOf('route') !== -1) {
found = true;
}
x++;
} while(!found && x < r.length);
alert(r[x-1].address_components[0].long_name);
}
});
}
功能地理成功(pos){
Geocoder=新的google.maps.Geocoder;
地理编码({location:{lat:pos.coords.latitude,lng:pos.coords.longitude}}),函数(r,s){
如果(s==‘确定’){
var found=false,
x=0;
做{
if(r[x].地址\u组件[0].类型.indexOf('route')!=-1){
发现=真;
}
x++;
}而(!found&&x
根据函数的工作方式,它扫描生成的JSON以找到路由。但是,对于精度不同于台式机的移动设备,存在差异。尽管搜索了
路线
,但移动设备通常会返回错误的数据(最近的公路)。查看评论(并修改问题)后,该功能被重写。通过JSON进行嵌套循环,以汇总查询中的所有唯一数据。从他们的网站上,街道地址被手动重新创建,而不是依靠谷歌来提供想要的结果
function geoSuccess(pos) {
var Geocoder = new google.maps.Geocoder;
Geocoder.geocode({location: {lat:pos.coords.latitude,lng:pos.coords.longitude}}, function(r, s) {
if (s === 'OK') {
var addr = [];
r.each(function(o) {
o.address_components.each(function(a) {
addr[a.types.join('.')] = a.long_name
});
});
alert(addr['street_number']+' '+addr['route']);
}
});
}
到目前为止,这是我找到的获取所需数据的最佳方式。请提供一个例子来说明您的问题。如果您正在查找建筑物的街道地址,您可能不希望键入“route”[route表示命名的路线(如“US 101”)],您可能希望(或可能是前提)出于代码的目的,street_地址返回的数据太多,所以改用路由。