使用当前位置作为变量的地理位置

时间:2014-01-20 00:21:24

标签: javascript html variables geolocation currentlocation

我已经调整了这段代码,试图让它适用于我的情况。我尝试做的是找到访问者当前位置,并在加载时将指示映射到某个位置。

<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函数作为开始。

2 个答案:

答案 0 :(得分: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});

答案 1 :(得分:0)

您是否在询问如何从浏览器获取gelocation?如果是,请尝试this article

TL; DR

navigator.geolocation.getCurrentPosition(callback);

其中callback是在确定用户位置后调用的javascript函数。