【发布时间】:2013-11-18 17:31:20
【问题描述】:
我正在使用 google api 来获取用户位置并遇到一些问题。它给了我确切的位置,这是第一个问题,其次我无法让它自己写入输入区域。
我希望它只获取城镇/城市而不是门牌号码、街道和县等...一旦确定,就可以传播关键字输入。
谁能建议如何做到这一点?
这是脚本:
function displayLocation(latitude,longitude){
var request = new XMLHttpRequest();
var method = 'GET';
var url = 'http://maps.googleapis.com/maps/api/geocode/json?latlng='+latitude+','+longitude+'&sensor=true';
var async = true;
request.open(method, url, async);
request.onreadystatechange = function(){
if(request.readyState == 4 && request.status == 200){
var data = JSON.parse(request.responseText);
var address = data.results[0];
document.write(address.formatted_address);
}
};
request.send();
};
var successCallback = function(position){
var x = position.coords.latitude;
var y = position.coords.longitude;
displayLocation(x,y);
};
var errorCallback = function(error){
var errorMessage = 'Unknown error';
switch(error.code) {
case 1:
errorMessage = 'Permission denied';
break;
case 2:
errorMessage = 'Position unavailable';
break;
case 3:
errorMessage = 'Timeout';
break;
}
document.write(errorMessage);
};
var options = {
enableHighAccuracy: true,
timeout: 1000,
maximumAge: 0
};
navigator.geolocation.getCurrentPosition(successCallback,errorCallback,options);
我相信将其传播到输入的特定行将是这一行:
document.write(address.formatted_address);
我似乎无法让它工作:
document.getElementById('keyword').innerHTML=(address.formatted_address);
这里是Fiddle
【问题讨论】:
-
作为旁注,Google TOS 禁止使用未与地图一起使用的地理编码 API。
-
作为另一个旁注,HTML5 地理定位 API 和 Google 的 API 都是异步的,并且在文档加载足够奇怪之后调用 document.write 会覆盖整个文档。
-
它将与地图一起使用,它是地图搜索
标签: javascript jquery html geolocation geocoding