-1

我已经修改了这段代码,试图让它适合我的情况。我试图做的是找到访问者的当前位置,并在加载时将方向映射到某个位置。

<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false">  
</script>

<script>
  var directionsDisplay;
  var directionsService = new google.maps.DirectionsService();

  function initialize() {
    directionsDisplay = new google.maps.DirectionsRenderer();
    var mapOptions = {
        zoom: 7,
        center: new google.maps.LatLng(38.3094610,-85.5791560)
    };

    var map = new google.maps.Map(document.getElementById('map-canvas'),mapOptions);
    directionsDisplay.setMap(map);
    directionsDisplay.setPanel(document.getElementById('directions-panel'));
    var control = document.getElementById('control');
    control.style.display = 'block';
    map.controls[google.maps.ControlPosition.TOP_CENTER].push(control);
  }

  function calcRoute() {
    var start = 'current location';
    var end = ('38.3094610,-85.5791560');
    var request = {
        origin:start,
        destination:end,
        travelMode: google.maps.TravelMode.DRIVING
     };

    directionsService.route(request, function(result, status) {
       if (status == google.maps.DirectionsStatus.OK) {
           directionsDisplay.setDirections(result);
       }
    });
  }

  google.maps.event.addDomListener(window, 'load', initialize);

</script>

我需要的是将当前位置存储在一个变量中,这样我就可以在 calcRoute 函数中使用它作为开始。

4

2 回答 2

1

首先检测浏览器是否完全支持地理跟踪:

if (!window.navigator||
    !window.navigator.geolocation||
    !window.navigator.geolocation.watchPosition) return;

然后构建位置处理程序:

function geo_success(pos){
  var lat=pos.coords.latitude;
  var lng=pos.coords.longitude;

  //do your mapping magic here
}

function geo_error(pos){
  // do nothing
}

现在注册跟踪器:

navigator.geolocation.watchPosition(
    geo_success, geo_error, 
    {enableHighAccuracy:true, maximumAge:10000, timeout:10000});
于 2014-01-20T00:38:57.050 回答
0

您是否在问如何从浏览器获取地理位置?如果是这样,试试这篇文章

TL;博士

navigator.geolocation.getCurrentPosition(callback);

wherecallback是在确定用户位置后调用的 javascript 函数。

于 2014-01-20T00:40:38.847 回答