谷歌地图 - 当前位置

4
我可以翻译。您想获取当前用户位置的地址字符串,这是否可能?
非常感谢。 问候
5个回答

2
用户的位置可在google.loader.ClientLocation中找到(如果IP地址已知,则会根据客户端IP地址猜测位置)。当应用程序使用AJAX API加载程序时,加载程序尝试根据其IP地址对客户端进行地理定位。如果此过程成功,则客户端的位置(限于城市级别)将在google.loader.ClientLocation属性中提供。如果此过程无法找到匹配项,则该属性设置为null。

http://code.google.com/apis/ajax/documentation/#ClientLocation


1

如果您正在尝试获取“街道地址”!

请同时包括JSMAP Api密钥,从向导中保持所有内容在一起

我的代码看起来像这样:(还使用了一点jQuery)

var geocoder = null;
var lat = null;
var lng = null;

$(function() {
   if (GBrowserIsCompatible()) {

 if (google.loader.ClientLocation &&
     // i used this here cause not always 
     //this retrieve the correct LAT & LON
     // so set it manually
      google.loader.ClientLocation.address.country_code == "IT" ) {
      lat = google.loader.ClientLocation.latitude;
      lng = google.loader.ClientLocation.longitude;
      } else {
      //alert( 'Insert Your Latitude & longitude manually!' );
      lat = '42.464826';
      lng = '14.214095';
      }
    //creat the full LAT + LON
    points = new GLatLng( lat , lng ); 
    //get the Street Address
    get_address(points);
    }
 });

    function get_address(latlng) {
      if (latlng) {
      geocoder = new GClientGeocoder();
        geocoder.getLocations(latlng, function(addresses) {
          if(addresses.Status.code != 200) {
            alert("reverse geocoder failed to find an address for " + latlng.toUrlValue());
          }
          else {
            address = addresses.Placemark[0];
            var myHtml = address.address;

            $('#address').text(myHtml);

          }
        });
      }
    };

也许阅读这个链接也会有所帮助:

获取经纬度对应的街道地址


1

是的,使用HTML5和Google API 3可以实现,您需要更改API密钥并将map-canvas作为HTML正文中的一个元素。

  <script type="text/javascript"
     src="https://maps.googleapis.com/maps/api/js?key=yourAPIKey&sensor=false"></script>
  <script type="text/javascript">
     var lat;
     var lng;

         function initialize() {
      if (navigator.geolocation)
        {
        navigator.geolocation.getCurrentPosition(showPosition);
        }       


         }
     function showPosition(position)
      {
      lat = position.coords.latitude; 
      lng = position.coords.longitude;
     var myLatlng = new google.maps.LatLng(lat, lng);

     var myTittle = "My Current Location! Lat: " + lat + "lng: " + lng;
     var marker = new google.maps.Marker({
         position: myLatlng,
         title: myTittle
     });

           var mapOptions = {
             center: myLatlng,
             zoom: 16,
             mapTypeId: google.maps.MapTypeId.ROADMAP
           };
           var map = new google.maps.Map(document.getElementById("map-canvas"),
               mapOptions);
     marker.setMap(map);    
      }
         google.maps.event.addDomListener(window, 'load', initialize);

  </script>

1
如果你需要比IP地理位置更精确的东西,可以在支持的浏览器中(尤其是Firefox 3.5和Mobile Safari)使用 W3C Geolocation API请求用户的纬度和经度,然后使用 Google的客户端反向地理编码服务猜测用户的大致街道地址。(这两个步骤的代码示例包含在我的测试页面中。)
如果你选择这条路线,请确保向用户事先解释为什么要请求他们的位置信息以及如何使用他们的信息(例如,只有在提交表格时才会存储它),因为这在技术上是API所要求的,并且有些用户可能会对你轻松猜到他们的街道地址感到不安。

0
我正在寻找如何映射当前位置和目的地位置。为了实现这一点,我做了以下工作:
注意*将YOUR_DESTINATION_ADDRESS替换为格式为“147+Wyndham+Street+N+,+Suite+206,+Guelph,+On,+N1H+4E9”的地址。
<div id="Map" style="width: 100%; height: 600px;"> </div>
<script type="text/javascript">
$(function(){
    var zoom = 11;
    function success(position) {

        var LAT = position.coords.latitude;
        var LONG = position.coords.longitude;
        $('#Map').append('<p>Current Latitude: ' + LAT + '<br/>Current Logitude: ' + LONG +'<br/><br/>Note* This may not display your exact location, but just your city. Works better on mobile devices</p>');


        var map  = '<iframe style="width: 100%; height: 600px;" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="http://maps.google.ca/maps?source=s_d&saddr=' + LAT +',+' + LONG +'&daddr=**YOUR_DESTINATION_ADDRESS**&ie=UTF8&t=hz=' + zoom + '&output=embed"></iframe>';

        $('#Map').append(map);

    }

    function error(){
        /*Error Code*/
    }

    function MakeMap(){
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(success, error);
        } 
    }

    MakeMap();
});
</script>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接