OWN URL부분을 제가 따로 php를 만들어서 넣어봤는데 카메라상에 건물이 안뜨네요;
php파일 서버에 저장하고 폰에서 접속되는지 확인까지 했구요
MixListView에서 customizedURL에서 경로까지 바꿔주었고
했는데도 안되네요; 에러는 안나는데 그냥 마커라고 해야되나? 건물을 못잡습니다.
해서 mixare에서 제공하는 예제 php (mixare.org/geotest.php) 이 내용을 복사해서 php파일을 새로 만든후에
서버에 올리고 해봤는데 west, east,north이것들도 안뜨네요;; 그냥 mixare.org/geotest.php로 해서 돌리면 물론 나타나구요...
무었이 문제인지 아시는분 답견 좀 해주시면 감사하겠습니다. ^^
우선 답견 정말 감사드립니다 ^^!!
아 저는 http://mixare.org/getest.php 에 접속하여서 php파일 안에 내용이 어떤형식으로 들어가 있는지 확인하고. 그 후에 제가 따로 php파일을 만들어서 테스트 한겁니다. 파일로 받진 않았습니다. 말을 잘 못한것 같네요 죄송합니다 ㅠ;
{ "status": "OK", "num_results": 4, "results": [ { "id": "1", "lat": "0.01", "lng": "0", "elevation": "0", "title": "North", "has_detail_page": "0", "webpage": "" }, { "id": "2", "lat": "0", "lng": "0.01", "elevation": "0", "title": "East", "has_detail_page": "0", "webpage": "" }, { "id": "3", "lat": "-0.01", "lng": "0", "elevation": "0", "title": "South", "has_detail_page": "0", "webpage": "" }, { "id": "4", "lat": "0", "lng": "-0.01", "elevation": "0", "title": "West", "has_detail_page": "0" } ] }
이러한 내용을 고대로 복사해서 임의로 test.php파일을 만들어서 넣어주고, 제 서버에 올리고 돌렸더니 아무것도 안뜹니다.; 믹사리 에서
디폴트로 넣어논 페이지와 내용이 아예 같은데 왜 안되는지 모르겠습니다.; 같은 내용이므로 제 현재위치를 못받았을리는 없을것 같구요..
ㅠㅠ
해당과 같이 복사해서 test.php파일을 만드셨으면 안보이는게 맞습니다..^^;
위에서 설명드렸듯이 getest.php파일은 클라이언트의 위치정보값을 받아 JSON 형태의 데이터를 리턴해주는 역활을 해줍니다.
geotest.php의 URL은 http://mixare.org/geotest.php 가 끝이 아니라 클라이언트의 위치정보값이 더해져 사용되고 있습니다.
(소스상으로는 http://mixare.org/geotest.php + "?latitude=" + Double.toString(lat) + "&longitude=" + Double.toString(lon) + "&altitude=" + Double.toString(alt) + "&radius=" + Double.toString(radius); 입니다.)
그러면 getest.php에서는 전달받은 값들로 위치값이 셋팅된 JSON데이터를 리턴해주는것이죠.
님께서 만드신 test.php는 http://mixare.org/geotest.php 페이지를 때렸을때 나오는 아무값도 셋팅되지 않은 JSON데이터 형태를 그대로 복사해 붙여 만든것이므로 "lat"과 "lng"등의 위치값이 항상 0이어서 표시가 되지 않는것입니다.
요약하자면 test.php는 기기에서 전달해주는 좌표값에 따라 유동적으로 내부 attribute들의 값들이 설정되도록 작성되어야합니다.
제가 윗 댓글에서 로그찍어 확인해보라는 부분들에 실제 로그를 찍어 확인해보시면 이해가 쉬우실 듯 합니다.
답견 정말 감사드립니다.!!
그 부분은 제가 잘 못 생각한 것 같습니다. 단순히 http://mixare.org/geotest.php URL을 넘겨주는게 아니라
"?latitude=" + Double.toString(lat) +
"&longitude=" + Double.toString(lon) +
"&altitude=" + Double.toString(alt) +
"&radius=" + Double.toString(radius);
이런 일련의 소스(내 위치정보)를 붙여서 보내고 그 결과값을 띄우는건 이해를 하였습니다.
하지만 제가 머리가 나쁜건지;; 이해가 안가는 부분이 제가 test.php를 만들었다고 하지 않았습니까?? 그걸 OWNURL에 넣어주면
어짜피 소스상에서 처리하였으니깐 컴파일 시에 그 주소 뒤에 test.php?latitude = "~~"&longitude=" ~~" 이런식으로 붙어서 주소값이 넘어 가는거 아닌가요?
test.php에서는 위도 경도값을 설정해주지 않더라두 현재위치 정보값을 geotest.php처럼 뒤에 붙여서 보내면 결과로 받는 JSON데이터는 동일한거 아닌가요???
제가 이해를 못한것이라면 정말 죄송합니다 ㅠ;
결정적으로 geotest.php 의 소스로 test.php를 만드신것이 아닙니다..^^;
geotest.php의 결과값으로 test.php를 만드신것이지요.
복사해서 붙이신 geotest.php는 아무 value값도 삽입하지 않은상태에서 geotest.php를 때려 얻은 결과값을 복사하여 만든것입니다.
즉 geotest.php의 내부 코드는 따로 있다는것이지요.
php는 서버단에서 통신을 처리하기위한 스크립트입니다. html처럼 자체가 view가 아니라 제어문을 통해 데이터를 전달하거나 view를 조작하지요..
안드로이드에서 데이터는 처리하여 넘겼지만 test.php에서 해당 데이터를 처리하여 결과값을 만든것이 아니라 애초에 초기화된 결과값만 을 보여주기때문에 아무것도 안보이는것입니다.
인터넷을 통해 php 기초강좌를 확인해 보시면 이해가 쉬우실것입니다.
DataSource.java 파일에서 웹서버를 때리는 URL인 ret을 로그로 찍어보시면
http://mixare.org/geotest.php?latitude=37.480554150743444&longitude=126.88248753547668&altitude=300.0&radius=3.0399999618530273
과 같이 자신의 현재위치 정보를 넘겨보내고 있습니다. (제폰위치 기준입니다.)
그러면 geotest.php에서는 results값을
{ "id": "1", "lat": "37.4905541507", "lng": "126.882487535", "elevation": "300", "title": "North", "has_detail_page": "0", "webpage": ""}
와 같이 전달받은 위치정보를 기준으로 작성한 JSON형태의 결과값으로 리턴하는데요.
mixare에서 제공한다고 하신 예제 php(geotest.php)파일을 찾지 못해 로직 확인은 못하였으나 상기와 같은 형태로 리턴받으면 정상으로 보이게 됩니다.
에러는 안나는데 마커를 비롯해 아무것도 안뜬다고 하신걸로 봐서는 리턴받은 JSON데이터의 위치정보값등이 잘못들어가거나 안들어간것으로 보이는데요.
DownloadManager.java 의 processRequest() 함수내의 String tmp값을 로그로 찍어 만드신 php파일을 사용했을때와 mixare.org/geotest.php파일을 사용했을때의 리턴값을 비교하셔보시길 바랍니다.
ps. mixare.org/geotest.php 파일이 공개되어 있나요? 전 아무리 찾아도 없는것 같은데요..^^;