获取地理位置以传播输入

时间:2013-11-18 17:31:21

标签: javascript jquery html geolocation geocoding

我正在使用谷歌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

1 个答案:

答案 0 :(得分:0)

好的想通了。这条线是:

      document.getElementById("keyword").value = address.formatted_address;

继承完整的脚本FIDDLE