2014-01-20 60 views
-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功能开始使用它。

+0

欢迎来到Stack Overflow。当问一个问题时,你应该试着证明你已经做出了一些努力来解决问题并彻底研究它。你不能只转储大量的代码,并期望人们为你解决它。看到这里的指导方针提出良好的问题http://stackoverflow.com/questions/how-to-ask –

+0

不要在这里粗鲁,但我说我在第一行的所有.. “我已经适应此代码试着让它为我的情况工作“ 改编的意思,我已经改变/改变/试图让它的工作。另外,我已经尝试过研究这个,你觉得我是如何穿越这个网站的? – user3213379

+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}); 
0

你问如何从浏览器获取凝胶位置?如果是这样,尝试this article

TL; DR

navigator.geolocation.getCurrentPosition(callback); 

其中callback是一个JavaScript功能的用户的位置已被确定之后调用。

+0

我没有在代码中看到它的获取位置,我搜索了如何获取它们的示例,但我很难实现它们。我所做的每一项更改都会导致部分页面加载。这似乎是最简单的,但我不能实现它大声笑 var lat=pos.coords.latitude; var lng=pos.coords.longitude; @Mike – user3213379

相关问题