Daum지도 클러스터러를 사용하려하는데 정상적으로 좌표 데이터를 못가져오는거 같습니다.

Daum지도 클러스터러를 사용하려하는데 정상적으로 좌표 데이터를 못가져오는거 같습니다.

QA

Daum지도 클러스터러를 사용하려하는데 정상적으로 좌표 데이터를 못가져오는거 같습니다.

본문

다음 지도에서 클러스터러를 사용하고자 합니다.

http://apis.map.daum.net/web/sample/basicClusterer/

 

다음 api에서 나온 예제 소스를 가지고하면 문제가 없습니다.

 

다만 제가 불러오는 파일은 json이 아닌 php 파일로 했을 경우에는 파일이 불러와 지지 않습니다.

 

제가 사용한 소스는 위 링크에서 아래와 같은 부분입니다.(원래는 json 파일인데 제가 php로 별도 제작했습니다.)

 

---------------------------------------------------------------------

지도 출력파일(Daum 예제)

$.get("./chicken.php", function(data) {
        // 데이터에서 좌표 값을 가지고 마커를 표시합니다
        // 마커 클러스터러로 관리할 마커 객체는 생성할 때 지도 객체를 설정하지 않습니다
        var markers = $(data.positions).map(function(i, position) {
            return new daum.maps.Marker({
                position : new daum.maps.LatLng(position.lat, position.lng)
            });
        });
        // 클러스터러에 마커들을 추가합니다
        clusterer.addMarkers(markers);
    });

 

---------------------------------------------------------------------

chicken.php

 

 $sql = " Select * From g5_write_daum_map";
  $result = sql_query($sql);
  $position = array();
  while($row = sql_fetch_array($result)){
    $lat = $row['wr_3'];
    $lng = $row['wr_4'];
    $item = array("lat"=> $lat, "lng"=>$lng]);
    array_push($position, $item);
  }
  $board = array();
  $board['positions'] = $position;
  echo json_encode($board);

---------------------------------------------------------------------

실제 파일을 출력해보면 daum에서 제공하는 json 형식과 동일하게 출력이 됩니다.(세부 좌표는 차이가 있지만요..)

 

제가 제작한 chicken.php 파일에 문제가 있나 확인해보고자 

---------------------------------------------------------------------

include 방식으로 클러스터러 구현

 

var data = <?php include "./chicken.php"?>;
var markers = data.positions.map(function(position, i) {
        return new daum.maps.Marker({
            position : new daum.maps.LatLng(position.lat, position.lng)
        });
    }); 
    clusterer.addMarkers(markers);

---------------------------------------------------------------------

이렇게 바로 include 시키면 정상적으로 클러스터러가 지도에 표현됩니다.

 

js의 인자? 값? 들을 php의 변수로 사용할 수 없어서 좌표의 범위를 줄이고자 chicken.php파일의 파라미터에 js 값?을 전송해서 chicken.php 파일속 쿼리문을 상황에 따라 변동되게 해야하는데 처음부터 막혀서 진도가 나가질 않네요... 

 

chicken.php 파일의 row가 2000개 정도 되는데 많은것 같아 limit 100으로 쿼리를 돌려도 동일합니다.

jquery는 jquery-1.11.1.min.js 버전을 이용했습니다.

 

쉽게 질문하는것도 어렵네요...

 

관건은 위 chicken.php 파일이 잘못 만들어 진것인지?? 궁금하고요

chicken.php 파일이 include 했을 때는 정상 동작하는데 jquery를 이용해서 파일을 가져올 때는 왜 정상 출력이 되지 않는지 궁금합니다. 5일간 끙끙 앓고 있습니다. ㅜㅜ

 

긴 질문 읽어주셔서 감사합니다.

이 질문에 댓글 쓰기 :

답변 3

$.get 으로 가져온 data 를 

console.log 로 찍어서

크롬 개발자모드의 consloe 에서 제대로 나오나 한번 확인해 보세요. 

 

안녕하세요~ 마스타 님과 콜라시러 님

저도 같은 문제로 씨름을 하고 있는중이어서 위처럼 문제 될 때 어떻게 처리하였는지
자세하게 설명 부탁드려도 될까요??

header 위치 문제였다고 하셨는데. 어떻게 처리 되었는지 초보여서 잘~ 모르겠네요~
부탁드립니다~~
감사합니다.~~~~

chicken.php 로 만들어진 json 파일을 열어서 한번 확인해 보세요. 

 

파일을 확인해봤는데 daum에서 제공하는 형식과 동일합니다.
이파일을 화면에서 출력되는 대로 그대로 카피해서 chicken.php을 덮어 써버리고 $.get(./chicken.php) 하게 되면 정상출력됩니다. ㅠ

안녕하세요~ 마스타 님과 콜라시러 님 

저도 같은 문제로 씨름을 하고 있는중이어서 위처럼 문제 될 때 어떻게 처리하였는지 
자세하게 설명 부탁드려도 될까요?? 

header 위치 문제였다고 하셨는데. 어떻게 처리 되었는지 초보여서 잘~ 모르겠네요~ 
부탁드립니다~~ 
감사합니다.~~~~

답변을 작성하시기 전에 로그인 해주세요.
전체 12
QA 내용 검색
filter #map ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT