아시다시피 Mobiles 용 Google지도 프로그램에는 사용자 위치 (내 위치 서비스)를 찾는 기능이 있습니다. Google지도가 인터넷 모바일 (GPRS가 아닌)을 사용하여 사용자 위치를 감지하는 방법을 알고 싶습니다. 그리고 페이지를 열 때 사용자 위치를 감지 할 수있는 PHP 또는 다른 웹 기반 언어로 프로그램을 작성할 수 있습니까? 모바일 인터넷 IP를 사용하여 내 위치를 추측하려 할 때 잘못된 위치를 얻었 기 때문에 Google이 사용자 IP를 사용하여 위치를 파악하지 못했을 것으로 추측 할 수 있습니다.GPRS를 사용하여 모바일 위치를 찾는 방법은 무엇입니까?
답변
Google Geocoding API 및 W3 Geolocation API Specification을 살펴보십시오. 그런 다음 this이 도움이 될 것입니다.
GPS 수정 사항이없는 경우 위치 지정을 수행하는 일반적인 방법은 게재 셀 ID 또는 감지 된 Wi-Fi MAC 주소의 역방향 조회를 수행하는 것입니다. 서버 ID는 알려진 모든 셀 사이트 (셀 ID 또는 더 정확하게는 셀 글로벌 ID (CGI))와 알려진 모든 Wi-Fi AP의 위치에서 고유하게 식별되는 위치 기반 데이터베이스를 제공합니다. 따라서 CGI 나 MAC을 알고 있으면 GPRS와 같은 셀룰러 데이터 수집을 통해 데이터베이스에 침투하여 대략적인 ("거친") 위치를 결정할 수 있습니다. SkyHook (애플이 사용하곤했지만 더 이상 사용하지 않는) 같은 상용 서비스가 어떻게 작동하는지.
이 거친 위치는 신호 강도 또는 디지털 맵과 같은 추가 입력을 사용하여 다소 정밀하게 만들 수 있습니다.
일부 기기 (예 : iPhone)는 기기의 데이터베이스를 캐시하여 거친 해상도의 위치를 더 빠르게 만듭니다. 애플은 몇 달 전부터이 문제로 어려움을 겪었고 그 이후로이 방식이 바뀌었다.
웹 페이지가 장치의 위치를 알 수있게하려면 장치는 적절한 (장치 별) 위치 지정 API를 호출 한 다음 웹 서버에 제출해야합니다.이 코드는 분명히 일부 장치 측 코드를 필요로합니다. 그냥 브라우저).
감사합니다.하지만이 코드를 어떻게 찾을 수 있습니까? 휴대 전화 운영체제는 UIQ3이며 Google지도의 MyLocation 기능이 제대로 작동합니다. GoogleMaps와 같은 사용자 위치를 결정하는 프로그램을 작성하려면 어떻게해야합니까? 너 아이디어있어? –
브라우저에서 브라우저의 위치를 요청할 수있는 HTML5가 지원되는 것처럼 들립니다. (브라우저에는 OS 고유의 위치 API에 액세스하는 기능이 포함되어 있습니다.) 브라우저의 HTML5 지원은 http://www.html5test.com에서 확인할 수 있습니다. – boettger1
이렇게 작동합니다. Google지도는 브라우저 (또는 Google지도 코드를 사용하는 프로그램)가 지리 정보 인터페이스를 지원하고 구현하는지 여부에 따라 사용자에게 위치를 공유할지 여부를 묻습니다.이 위치 정보는 here에 대해 자세히 알아볼 수 있습니다. 사용자가 위치 공유를 동의하면 로컬 무선 액세스 지점에 대한 정보가 전달되어 Google지도 (또는 다른 서비스)가 사용자의 위치를 추정 할 수 있습니다. 이를 프로그램이나 웹 페이지에서 구현할 수 있습니다. 나는 프로그램 내에서 Google지도를 사용하는 방법에 대해 많이 알지 못한다. 그러나 웹 페이지는 여기에서 찾고있는 것을 수행 할 자바 스크립트로 작성된 예제이다. PHP에서도이 작업을 수행 할 수 있다고 확신합니다.
<!DOCTYPE html>
<html>
<head>
<title>Google Maps JavaScript API v3 Example: Map Geolocation</title>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="UTF-8">
<link href="http://code.google.com/apis/maps/documentation/javascript/examples/default.css"
rel="stylesheet" type="text/css">
<script type="text/javascript"
src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
var map;
function initialize() {
var myOptions = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'),
myOptions);
//this is the piece of code you are interested in!!
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
var infowindow = new google.maps.InfoWindow({
map: map,
position: pos,
content: 'Location found using HTML5.'
});
map.setCenter(pos);
}, function() {
handleNoGeolocation(true);
});
} else {
handleNoGeolocation(false);
}
}
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var content = 'Error: The Geolocation service failed.';
} else {
var content = 'Error: Your browser doesn\'t support geolocation.';
}
var options = {
map: map,
position: new google.maps.LatLng(60, 105),
content: content
};
var infowindow = new google.maps.InfoWindow(options);
map.setCenter(options.position);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map_canvas"></div>
</body>
</html>
은 당신이 사용할 수있는 방법의 수를 확인하기 위해 구글지도 API 참조
here를 참조하십시오. 또한 소스 참조가 "sensor = true"로 끝나는 것은 아닙니다. Geolocation을 사용하는 경우 소스에서이 값을 true로 설정하는 것이 중요합니다.
답변 해 주셔서 감사합니다. 그것은 또한 나를 돕는다. 당신은 생명의 은인입니다. :) –
@ Sajib Mahmood : 감사합니다.하지만이 방법은 간단한 휴대폰 브라우저에서 작동합니까? –
@ImanHejazi : Apple iPhone 및 Android 휴대 전화에는 Google Maps JS API가 지원됩니다. 다른 핸드폰 브라우저에 대해서는 당신을 확인할 수 없습니다. –