2010-05-07 3 views
0

나는 쉬운 대답이라고 생각하는 사람을 도울 수 있기를 바라고 있습니다. 그러나 나는 그것을 해결할 수 없습니다.javascript geolocation 및 googlemaps

내가 함정에 위치 정보 위도을 시도하고 길고 Google지도 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 
    }; 

이 내가 원하는 것을 잘 동작이있다. 그러나 나는 origin을 google.maps.api의 다음 스크립트를 사용하여 사용자 lat long으로 변경할 수 있기를 바랍니다.

자신의 코드는 다음과 같습니다 나는

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

을 끌어와이 개 두 변수 myLatmyLong에 할당 할

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

. 그때

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

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

에서 내 시킴으로 빨리 스크립트를 변경할 수 있도록하려면이 메이크업 감각을합니까 ..?

나는 현재 그것으로 돼지를 보내고있어하고 난 JS 개발자 아니에요로서 내가 ..

어떤 생각으로 전투를 잃고 코드의 간단한 비트이어야한다 생각합니다. .?

신속한 답변을 위해 더글러스가 환호합니다.

이전 질문에서이 예제 웹 사이트를 찾았습니까?

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

내가이 예를 탈옥과 비슷한 작업을 수행 할 수 있습니다 : 사이트는 다음과 같이 http://npdoty.name/location/

그분의 모범이 간다}

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

답변

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 
} 

참고 각 줄 끝에서 쉼표.이것은 당신이 원점 값에 당신의 위치를 ​​두었 기 때문에 귀하의 예에서 벗어나므로 부동산을 혼란스럽게합니다.

계속 살펴볼 것이지만 잘하면이 도움이됩니다.