我已经调整了这段代码,试图让它适用于我的情况。我尝试做的是找到访问者当前位置,并在加载时将指示映射到某个位置。
<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 :(得分: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函数。