[google-maps] HTML5의 GeoLocation은 정확히 어떻게 작동합니까?
브라우저가 내 위치를 확인하기 위해 내 IP 주소와 주변 무선 네트워크의 세부 정보를 공유한다는 것을 알고 있지만 주변 Wi-Fi 네트워크에 대해 어떤 종류의 정보를 알고 있습니까?
예를 들어, 내가 살고있는 곳은 공용 무선 네트워크가없고 집에서 약 5 개의 개인 네트워크를 볼 수 있지만 내 위치는 20 미터 이내에서 결정됩니다. 근처에 개방 된 네트워크가없는 경우 Google은 내 위치를 어떻게 확인하나요? 제가 생각할 수있는 유일한 방법은 Google이 스트리트 뷰에 대한 거리를 매핑 할 때 모든 무선 네트워크의 위치를 매핑한다는 것입니다.
온라인에서 검색했지만 구체적인 세부 정보를 찾을 수 없습니다.
답변
Firefox에서 Google로 전송 한 데이터는 공개 또는 비공개로 보이는 모든 액세스 포인트에 대한 것 입니다. 감지 된 각 액세스 포인트에 대해 다음 데이터를 전송합니다 https://www.google.com/loc/json
.
"mac_address": "01-23-45-67-89-ab",
"signal_strength": 8,
"age": 0,
"SSID": "MyAccessPoint"
어디
mac_address
WiFi 노드의 MAC 주소입니다.signal_strength
dBm 단위로 측정 된 현재 신호 강도입니다.age
WiFi 노드가 감지 된 이후의 시간 (밀리 초)입니다.SSID
WiFi 노드 의 이름 또는 ESSID 입니다.
요청을 지오 코딩하는 데 사용 된 지리 참조 Wi-Fi 데이터는 Google이 스트리트 뷰용 사진을 찍을 때 수집되었습니다 .
그러나 이것이 Google의 Geolocation Services를 사용하여 Firefox에서 HTML5 Geolocation API가 단순화되는 방식이라는 점에 유의해야합니다. 이것은 사양이 아니라 구현입니다. 기기에 GPS가 내장되어있는 경우 위치 정보 서비스를 사용하는 대신 HTML5 구현에서 직접 GPS를 쿼리하는 것이 좋습니다.
파이어 폭스조차도이 기능을 Windows와 Linux에서 다르게 구현합니다. Windows에서 현재 Firefox를 사용하면 보이는 모든 WiFi 노드의 세부 정보가 Google로 전송됩니다. Linux에서 현재 Firefox를 사용하면 액세스 포인트 데이터 에libiw
대한 의존 으로 인해 현재 연결된 WiFi 노드의 세부 정보 만 전송 됩니다.
다른 응답자가 언급했듯이 Safari는 Google의 위치 서비스와 거의 동일한 작업을 수행 하는 Skyhook Wireless 의 서비스를 사용 합니다.
답변
데이터는 Skyhook Wireless (Wikipedia)에 의해 수집되며 공용 및 개인 Wi-Fi 포인트를 구분하지 않고 모든 위치를 기록합니다. Google 스트리트 뷰 밴이 액세스 포인트에 대한 위치 데이터도 기록해도 놀라지 않을 것입니다.