2
我正在嘗試編寫一個腳本,該腳本將獲取用戶的地理位置 - 如果他們啓用了該功能,並將路線繪製到預定義目的地。如果他們沒有啓用地理定位,則應該繪製預定義的位置。該腳本不起作用,但您應該能夠通過查看代碼來了解我正在嘗試做什麼。我在正確的軌道上嗎?任何人都可以發現它爲什麼不起作用嗎?谷歌地圖/ gmap3 - 繪製從用戶的地理位置到已知目的地的路線 - 需要幫助
<script type="text/javascript">
$(function(){
var dest = "Unit 20, Tallaght Business Centre, Whitestown Road, Tallaght Business Park, Ireland";
if(geolocEnabled()){
getLocation();
}else{
plotMarker(dest);
}
//check if geolocation enabled
function geolocEnabled(){
return navigator.geolocation;
}
//plot marker for VRF office
function plotMarker(dest){
$('#map').gmap3(
{ action: 'addMarker',
address: dest,
map:{
center: true,
zoom: 14
},
marker:{
options:{
draggable: false
}
}
}
);
}
//get user's location
function getLocation(){
$('#map').gmap3(
{ action : 'geoLatLng',
callback : function(latLng){
if (latLng){
plotRoute(latLng, dest);
return;
} else {
alert("Unable to determine your location. Enable geolocation services and try again, or consult the map for our location.");
plotMarker(dest);
}
}
});
}
//plot route
function plotRoute(latLng, dest){
$('#map').gmap3(
{ action:'getRoute',
options:{
origin: latLng,
destination: dest,
travelMode: google.maps.DirectionsTravelMode.DRIVING
},
callback: function(results){
if (!results) return;
$(this).gmap3(
{ action:'init',
zoom: 7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: true,
center: [53.337433,-6.2661]
},
{ action:'addDirectionsRenderer',
panelID: 'directions-panel',
options:{
preserveViewport: true,
draggable: false,
directions:results
}
}
);
}
}
);
}
});
</script>
都非常感謝。
編輯:我甚至沒有在瀏覽器中獲取地理位置警告,當我運行腳本。
編輯:我從getLocation中刪除了{timeout:10000},它現在進入警報狀態。腳本已更新。
謝謝,這幾乎是現在的工作。我編輯了這個問題並放入了工作版本。有一件事,getLocation()似乎默認爲都柏林的中心,而不是我工作的地方,這與'dest'相同。你有什麼想法爲什麼發生這種情況? – MattSull 2012-08-20 13:43:14
應該讀取我正在處理代碼的位置,這與'dest'相同。 – MattSull 2012-08-20 13:50:05