클러스터 예제에 포함된 chicken.json 파일을 적용하면 이상없이 클러스터러가 적용된 지도를 볼 수 있습니다.
다만 제 서버에 있는 좌표를 가져와서 적용할 때 문제가 생기는데요
chicken.php파일 내용입니다.
header(‘Content-Type: application/json’);
$sql = " Select * From daum_map";
$result = mysql_query($sql);
$position = array();
while($row = mysql_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;
$output = json_encode($board);
echo urldecode($output);
이런식으로 php 파일을 만들어 chicken.php 파일만 화면에 띄우면 chicken.json 파일과 동일한 형식으로 출력되는 것을 확인하였는데 실제
$.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);
});
이렇게 적용을 하면 화면에 지도는 나오나 클러스터러가 되지 않습니다.
그래서
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 시켰더니 정상적으로 클러스터러가 적용됩니다.
url에 파라미터를 이용해야 하기 때문에 $.get("./chicken.php", function(data) { 이런 식으로 소스를 구성해야하는데
chicken.php파일 소스가 잘못 된건가요?
어디서 오류가 있는지 몇일째 고생중입니다.
도움 부탁드립니다.