2010-09-20 6 views
18

이것은 테스트 페이지에서 사용하는 간단한 코드입니다.하지만 주소를 찾는 데는 시간이 걸립니다. 어떻게 하죠? 내가 뭐 잘못하고있는거야?지리적 위치가 너무 느립니다! 내가 뭘 잘못하고있어?

<script src="http://maps.google.com/maps?hl=it&amp;file=api&amp;v=2&amp;sensor=true&amp;key=*xxxxxx*" type="text/javascript"></script> 
<script type="text/javascript"> 
    var map; 
    var geocoder; 

    function addAddressToMap(response) 
    { 
     if (!response || response.Status.code != 200) 
     { 
     alert("Sorry, we were unable to geocode that address"); 
     } 
     else 
     { 
     place = response.Placemark[0]; 
     point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]); 

     document.getElementById('address').innerHTML = place.address; 
     } 
    } 


    function searchGeolocation() 
    { 
     if (navigator.geolocation) 
     { 
      navigator.geolocation.getCurrentPosition(function(position) 
      { 
       geocoder = new GClientGeocoder(); 
       document.getElementById('latitude').innerHTML = position.coords.latitude; 
       document.getElementById('longitude').innerHTML = position.coords.longitude; 
       coordinates = position.coords.latitude+","+position.coords.longitude; 
       geocoder.getLocations(coordinates, addAddressToMap); 

      }); 
     }else 
     { 
      document.getElementById('latitude').innerHTML = "Unknown"; 
      document.getElementById('longitude').innerHTML = "Unknown"; 
      document.getElementById('address').innerHTML = "Unknown"; 
      alert("I'm sorry, but geolocation services are not supported by your browser.");  
     } 
    } 



</script> 


<br/> 
latitude = <div id="latitude">loading...</div> 
<br/> 
longitude = <div id="longitude">loading...</div> 
<br/> 
address = <div id="address">loading...</div> 
<br/> 


<script type="text/javascript"> 

    searchGeolocation(); 

</script> 
+5

어디 html5입니까? –

+0

복용 기간은 얼마나됩니까? 한 번에 많은 수의 조회를 수행하지 않는다고 가정합니다. – LarsH

+3

@Shawn :'navigator.geolocation.getCurrentPosition' 비트 : http://www.w3.org/TR/geolocation-API/ 예, 용어는 약간 부정확하지만 의미가 분명합니다. –

답변

6

나는 속도가 브라우저에 따라 많이 달라진다는 것을 발견했다. 내 지리적 위치를 크롬으로 테스트했습니다. 거의 순간적이기 때문입니다. 파이어 폭스는 지옥처럼 느리다 (많은 시간이 걸린다.), 사파리가 2 위다. 다행히 시간이 지나면 크롬의 구현을 수정하여

+0

정확히 동일한 결과가 있습니다. – Francesco

+0

나에게 getCurrentPosition은 firefox 11의 watchPosition보다 빠르다고 생각한다. – max4ever

+0

나는 약 5 분 후에 작동하지 않는다고 생각했다. – QuentinUK

0

두 통화가 완료되는 데 몇 초가 걸릴 수 있습니다. 예를 들어, navigator.geolocation.getCurrentPosition이 Safari에서 나를 위해 5 초 (작동 중) 걸립니다.

5

글쎄 - 실제로 지구 위치 측정 중입니다!

캐시 속도를 높이기 위해 여분의 매개 변수를 제공하고 시간 제한을 고려하십시오.

+0

이 질문에 대한 가장 실용적인 조언 – jpcamara

+0

https://developer.mozilla.org/en-US/docs/Web/API/PositionOptions에서 추가 매개 변수를 볼 수 있습니다. 제 경우에는 별 효과가 없었습니다. – Hendrik

2

휴대 기기의 위치 서비스 모드를 확인하십시오. 정확도가 당신의 편에서 높은 상태인지 확인하십시오. 고정밀 모드는 GPS, WIFI 또는 모바일 네트워크를 사용하여 위치를 찾습니다.

낮음 또는 GPS 전용 모드를 선택하면 영원히 걸립니다.

지리적 위치 옵션과 함께 플레이하고 시간 제한 및 캐시 옵션을 제공하십시오.

+0

다른 방법이 없습니까? 높은 정밀도가 낮은 정밀도보다 떨어지는 것이 맞습니까? – Alpha

+0

@Alpha - 고정밀도가 정확하고 모바일 장치에서 더 자주 업데이트 할 수 있습니다. 정밀도가 낮은 장점은 배터리 수명을 보존한다는 것입니다. 또한 삼성 S6과 같은 최신 안드로이드 폰에서 업데이트 속도는 약 1Hz입니다. 구형 전화에서는 덜 빈번합니다. – kashiraja

+0

@kashiraja GPS를 사용하는 게시물 클레임은 느리다. 또한 GPS + 모바일 네트워크 + WiFi를 사용하는 것이 빠르다고 주장합니다. 그 맞습니까? 그렇다면 WiFi + 모바일 네트워크가 부정확 한 결과를 제공하고 마침내 GPS가 업데이트된다고 생각합니다. 그렇지 않으면 더 많은 리소스를 사용하면 더 빠른 결과를 얻을 수있는 이유를 알 수 없습니다. – Alpha

관련 문제