현재 위치의 위도와 경도를 php변수로 넣는 방법
본문
안녕하세요.
지오로케이션(geolocation)을 통해 받은 위도 경도의 값을 php변수로 만들기 위해
구글신의 도움을 요청 해봤지만 사용자 불량으로 인해 답이 보이질 않아서 ㅠ_ㅠ
SIR의 고수분들께 질문 좀 드립니다.
- 사용중인 도메인은 https 로 보안서버 적용했습니다.
제가 원하는 것은 메인페이지 (index.php)가 뜰때
사용자의 위치(경도 위도)가 자동으로 $latitude 와 $longitude 에 대입되길 바라고 있습니다.
아래와 같은 스크립트를 index.php 에 넣었습니다.
<script>
$(document).ready(function(){
navigator.geolocation.getCurrentPosition(function(pos) {
var latitude = pos.coords.latitude;
var longitude = pos.coords.longitude;
// alert("현재 위치는 : " + latitude + ", "+ longitude);
$.ajax({
type:'POST',
url:'GetLocation.php',
data:'latitude='+latitude+'&longitude='+longitude
});
});
});
</script>
위에서 앨럿창은 현재 위도/경도를 잘 표시해줍니다.
스크립트의 var latitude = pos.coords.latitude; 이나 var longitude = pos.coords.longitude; 는
php 변수가 될 수 없다고 하여 ajax를 이용해야 한다고 해서
GetLocation.php 파일을 아래처럼 만들었습니다.
<?php
if(!empty($_POST['latitude']) && !empty($_POST['longitude'])){
$lat = $_POST['latitude'];
$lng = $_POST['longitude'];
}
?>
이렇게 한 후에
echo $lat; 을 해보면.... 구글에서 본 여러가지 소스를 무작위로 조합한거라 ....
당연하듯이 아무값도 나오지 않습니다.
어떻게 해야 저 latitude 값을 $lat에 넣을 수 있을까요?
조언 좀 부탁드립니다.
감사합니다!.
답변 4
ALERT에서는 제대로 뿌리는거면 값은 제대로 가지고 있는거잖아요?
해당 경도와 위도를 가지고 맵을 뿌려주시는거면 아래 처럼 해보시는것도....
아래 document.getElementById("맵").innerHTML 에서 "맵"은 작성자님의 지도로
바꾸시면 될 듯합니다만....
<script>
$(document).ready(function(){
navigator.geolocation.getCurrentPosition(function(pos) {
var latlon = position.coords.latitude + "," + position.coords.longitude;
var img_url = "https://maps.googleapis.com/maps/api/staticmap?center=
"+latlon+"&zoom=14&size=400x300&sensor=false&key=YOUR_:KEY";
document.getElementById("맵").innerHTML = "<img src='"+img_url+"'>
});
});
});
</script>
테스트 해봤는데 잘 되는데요?
방법이야 여러가지가 있을수 있겠지만, 해당 값을 input으로 받아서 숨겨두고 넘기시면 되지 않을까요?
<input type="hidden" name="lng" value="">
<input type="hidden" name="lat" value="">
......
document.getElementById('lat').value = position.coords.latitude;
document.getElementById('lng').value = position.coords.longitude;
......
본문의 다음 내용이...
-----------------
스크립트의 var latitude = pos.coords.latitude; 이나 var longitude = pos.coords.longitude; 는
php 변수가 될 수 없다고 하여 ajax를 이용해야 한다고 해서
-------------------
javaScript의 변수를 php에서 받을 수 없다 라고 보입니다만...
일단 ajax에서 되려는지는 잘 모르겠지만...
기존의 방식으로는 javaScript의 변수를 php의 변수로 가져오는 방법은 없는걸로 알고 있었습니다만...
이게 가능 한건가요? 궁금하네요~~