2012-02-02 4 views
1

내가 여기 뭔가 잘못하고있을 것입니다.하지만 찾을 수 없습니다 ... 내 회사 웹 사이트의 페이지를 만들고 있습니다. 사용자의 현재 위치를 기반으로 작업 사이트에 대한 지침을 제공합니다. 위치를 얻으려면 Firefox에서 구현 된대로 Geolocation API을 사용하고 있습니다 (저는 FF9로 테스트 중이었고 현재 FF10으로 테스트 중이었습니다). 순간을 위해 나는에있는 샘플 코드를 테스트하고있어 Wikipedia article :Geolocation API가 작동하지 않거나 Google지도가 "내 위치"가 아닙니다.

<html> 
<head> 
<title>Geolocation Test</title> 
<script type='text/javascript'> 
var gl; 

function displayPosition(position) { 
    var p = document.getElementById("p"); 
    p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>" + position.timestamp + 
    "<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" + 
    "<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>"; 
} 

function displayError(positionError) { 
    alert("error " + positionError.code); 
} 

try { 
    if (typeof navigator.geolocation === 'undefined'){ 
    gl = google.gears.factory.create('beta.geolocation'); 
    } else { 
    gl = navigator.geolocation; 
    } 
} catch(e) {} 

if (gl) { 
    gl.getCurrentPosition(displayPosition, displayError); 
} else { 
    alert("Geolocation services are not supported by your web browser."); 
} 
</script> 

<body> 
<p id='p'></p> 
</body> 
</html> 

(복사/"whatever.html"다른 이름으로 저장, 텍스트 편집기에이 붙여에 브라우저에 파일을 드래그 그것을여십시오)

아주 간단한 부호 및 실제로 마지막 목요일, 01/26/12 잘 일했다. (나는 사람들이 "어제는 효과가있었습니다!"라고 말합니다. 실제로 맹세 했었지만, 정말 맹세했습니다.) 그 이후로, 오류 코드 2 인 "POSITION_UNAVAILABLE"이 나에게 주어졌습니다. 내 직장 네트워크에서 직장 컴퓨터로, 직장에서 집 컴퓨터로, 집에서 인터넷 연결로 직장에서 컴퓨터로, 직장에서 컴퓨터로 Wi-Fi 핫스팟으로 컴퓨터에서 시도했는데 매번 오류 코드 2가 표시됩니다.

나는 어떻게 든 내 브라우저 나 (I 무엇을 상상도 할 수 있지만) 내 네트워크 설정이나 뭐 뭔가를 놓 쳤어 거라고 생각 했을까, 그래서 모든 사람들이 할 수 있어야 다음 테스트, 시도 :

  1. maps.google.com으로 이동하십시오.
  2. "시애틀"(또는 다른 위치)을 검색하십시오.
  3. "길 찾기"버튼을 클릭하십시오.
  4. 왼쪽의 길 찾기 상자에서 "A"는 "내 위치"를, "B"는 "시애틀"을 말해야합니다. (A에 '내 위치'가 표시되지 않으면 상자에 'm'을 입력하고 첫 번째 옵션으로 자동 입력 메뉴에 '내 위치'가 표시됩니다.)
  5. '방향 가져 오기' 단추.
  6. maps.google.com이 내 위치를 알고 싶어한다는 메시지가 Firefox에 표시됩니다. "위치 공유"를 클릭하십시오.
  7. 몇 초 후에 시애틀에 도착하는 방향 (어디서든지 서버가 있다고 생각하는 곳)을 표시하거나 "A"상자가 비어 있어야하며 "내 위치를 찾을 수 없음"또는 이와 비슷한 메시지가 표시되어야합니다 지도의 맨 위로

다음은 이상한 점입니다. 아직 어떤 컴퓨터에서도 작동하지 않습니다. 내 작업 컴퓨터 (FF10과 Chrome 모두), 동료 컴퓨터, 집 컴퓨터 및 GF 작업 컴퓨터는 모두 동일한 작업을 수행합니다. 아무도 그 위치를 찾을 수 없다.

제 질문은 다음과 같습니다. 위치 API가 다운되었거나 무언가가 작동하지 않습니까? 나는 API 중단에 대한 온라인 표시를 찾을 수 없었습니다. 정전과 같은 것 같지만, 그렇다면 왜 어떤 컴퓨터에서 작동하지 않습니까? 다른 사람이이 발견 사항을 복제하거나 내가 뭘 잘못하고 있는지 알 수 있습니까?

감사합니다.

답변

1

스크립트가 잘 작동뿐만 아니라 Google지도에서 위치 기능 (FF9.0.1) 당신입니다

? (나는 육체적으로 말합니다) 당신이 멀리 떨어진 곳이라면 구글이 당신의 위치를 ​​아직 계산할 수 없을 수도 있습니다! 어떤 대도시에서 시도해보십시오.

다른 가능성은 ISP가 차단 한 것처럼 Google의 위치 서버에 액세스 할 수 없다는 것입니다.

+0

예, API가 실행 중입니다. 여러 사람이 컴퓨터를 사용하려고 했으므로 위치를 공유하지 않도록 브라우저를 설정하는 것도 배제해야합니다. 브라우징이 시도되고 있지만 실패 할 확률이 더 높습니다. 무언가가 방해 받고 있기 때문입니다. – miguev

+0

저는 오리건 주 포틀랜드에 있습니다. Google이 그 위치를 알고 있기를 바랍니다. :) 그리고 나는 그것을 막고있는 한 ISP를 볼 수 있었지만, 적어도 4 개의 별도 공급자가되어야하는 것으로부터 시도했습니다 : 실제로 동해안 어딘가에있는 외부 세계에 연결되는 인트라넷을 통해 이루어지는 내 작업 인터넷 액세스, 그리고 나서 내 집 인터넷 ISP, 내 Android 휴대 전화의 Wi-Fi 핫스팟 및 내 GF의 업무 연결. 각 부분을 공유하기를 원하는지 묻는 상자가 뜨면 부품이 잘 작동하지만 테스트 코드로 오류 코드 2가 반환되고 Google지도에서 "내 위치"를 찾을 수 없습니다. – Sam

0

스크립트가 Chrome에서는 작동하지만 FF에서는 작동하지 않는 것으로 보입니다. 내가 FF에 들어가는 오류는 위치를 사용할 수 없다는 것을 의미합니다. 즉, FF의 위치 서비스가 Wi-Fi 네트워크에 액세스하지 못했을 가능성이 있습니다. 경고에 오류 2가 표시된다고 가정합니다.

Firebug를 사용하는 경우 15 번째 줄에 정지 지점을 설정할 수 있습니다. 중지되면 오른쪽의 Watch 패널에서 positionError를 클릭하고 코드가 무엇인지 확인하십시오. 광산 : 코드 2는 사용할 수 없음으로 번역됩니다.

이 인스턴스를 처리 할 수있는 다른 코드를 제안합니다.

+0

positionError.code가 JS 경고 상자에 덤프됩니다. 매번 코드 2입니다. 내가 말할 수있는 한, Geolocation API는 인터넷 접속이 가능한 한 작동해야하며 Google이 여러 무선 랜 핫스팟의 위치를 ​​매핑 한 이후 실제로 많은 경우 Wi-Fi에서 더욱 정확해야합니다. 하지만 그 이유는 여러 컴퓨터와 연결 유형을 시도했습니다. 회사 인트라넷에있는 내 프로덕션 코드에는 위치를 찾을 수 없다는 처리 코드 (기본값 선택)가 있지만 위치를 찾지 못하면 훨씬 유용하지 않습니다. – Sam

+0

글쎄요, 3 점 : 1) Google은 내부 Wi-Fi 네트워크를 모두 매핑하지 않았을 수도 있고 실제로 어디에 있는지 알지 못할 수도 있습니다. 2) Chrome에서 FF가 위치를 인식하지 못하는 이유를 모르는 경우 동일한 위치 제공 업체를 사용해야합니다. 브라우저에 관계없이 동일한 결과를 얻고 있습니까? 3) 내부 전용 사이트입니까? 그렇다면 Google 엔터프라이즈 버전 인 Maps API for Business로 업그레이드해야 할 수도 있습니다. –

+0

Geolocation API가 Wi-Fi 지점이 어디인지 모르는 경우 IP 주소로 ISP의 위치를 ​​가져와야한다고 생각했습니다. 어쨌든, 내 게시물에 명시된 바와 같이 Chrome은 Google지도에서 위치 정보를 가져 오지 않습니다. 간단한 HTML 테스트 코드를 사용하면 "모든 사이트에서 내 실제 위치를 추적하도록 허용"옵션을 설정 한 후에도 위치 공유 여부를 묻는 메시지가 표시되지 않습니다. 테스트 코드는 "PERMISSION_DENIED"오류 코드 1을 제공합니다. – Sam

관련 문제