2010-05-07 72 views
0

我希望有人能幫助我,我覺得是一個簡單的答案,但我只是無法得到它的工作。javascript的地理位置和谷歌地圖

我想陷阱地理位置緯度和長,並將其放置到谷歌地圖API

到目前爲止,我有

var myOptions = { 
    zoom:7, 
    trips:1, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 

    var map = new google.maps.Map(document.getElementById("map"), myOptions); 
    directionsDisplay.setMap(map); 

    var request = { 
     origin: 'newyork' 
     destination: 'deleware', 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 

這工作得很好,因爲我想要的東西。不過,我希望能夠使用 google.maps.api中的以下腳本將origin更改爲lat長的用戶。

他們的代碼是:

if(navigator.geolocation) { 
    navigator.geolocation.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 
     var placeMarker = new google.maps.Marker({ 
     position: initialLocation, 
     map: map, 
     }); 
     map.setCenter(initialLocation); 
    }, function() { 
     handleNoGeolocation(browserSupportFlag); 
    }); 
    } else { 
    // Browser doesn't support Geolocation 
    handleNoGeolocation(); 
    } 

    function handleNoGeolocation() { 
    initialLocation = newyork; 
    map.setCenter(initialLocation); 
    } 

我想拔出

navigator.geolocation.getCurrentPosition(function(position) { 
     initialLocation = new google.maps.LatLng(position.coords.latitude,position.coords.longitude); 

,並給兩個2個變量,myLatmyLong。 然後我希望能夠從

var request = { 
     origin: 'newyork' 
     destination: 'deleware', 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 

改變我的一部開拓創新的腳本

var request = { 
     origin: myLat,myLong 
     destination: 'deleware', 
     travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 

這是否有道理..?

我目前正在與它有一頭豬和我不是一個JS開發它是什麼,我認爲應該是編碼的簡單一點的是我失去了戰鬥用..

任何想法。 。?

歡呼道格拉斯的及時回覆。

我發現這個示例網站來自以前提出的問題,哪些問題會流露出光芒。網站是http://npdoty.name/location/

他的榜樣去如下:

navigator.geolocation.getCurrentPosition(function(position){ 
    var lat = position.coords.latitude; 
    var lon = position.coords.longitude; 
    var marker = new GMarker(new GLatLng(lat, lon)); 

    var jsMap = new GMap2(document.getElementById("jsMap")); 
    jsMap.addOverlay(marker); 
},function(error){ 
//use error.code to determine what went wrong 
}); 

我能打破這個例子,做類似的東西:

var request = { 
navigator.geolocation.getCurrentPosition(function(position){ 
    var lat = position.coords.latitude; 
    var lon = position.coords.longitude; 
    var myOrigin = new Gorigin(new GLatLng(lat, lon)); 

    origin: myOrigin, 
    destination: 'deleware', 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 

};

千恩萬謝

+0

您需要移動'var request = {'_inside_ getCurrentPosition'回調。您可能需要了解回調是如何工作的,但基本上,您將完成您在其他測試代碼中所做的所有工作,作爲獲取用戶位置的響應。祝你好運! – npdoty 2010-05-07 18:21:27

回答

0

一個可能導致問題的事情是你試圖通過myLat和myLong變量的方法。

傳遞給原點的值需要是LatLng對象。

var myLat = "12.345"; 
var myLng = "54.321"; 
var myLatLng = new google.maps.LatLng(myLat, myLng); 

var request = { 
    origing: myLatLng, 
    desitination... 
    etc. 
} 

最大的問題是,爲了傳遞價值,你需要它被格式化爲這樣的:

var request = { 
    something: value, 
    somethingElse: anotherValue, 
    evenMore: bigValue 
} 

注意每行後的逗號。在你的例子中,這是因爲你放置在原始值的位置,從而混淆了屬性。

我會繼續看着它,但希望這有助於。