DNA 포럼 API 서비스 모음 DNA Lens
API 서비스 전체 API 목록 | 개발자 포럼 | 예제 모음 | 개발자 행사 DevDay | DevNight | API 콘테스트 | 매쉬업경진대회@

주기적으로 Map을 호출할 때, 오류가 나는 현

 
   Daum DNA Forum -> 지도 API 글 쓰기   답변 달기
이전 주제 보기 :: 다음 주제 보기  
글쓴이 메시지
diffthink



가입: 2009년 10월 28일
올린 글: 2

올리기올려짐: 수 10월 28, 2009 2:52 pm    주제: 주기적으로 Map을 호출할 때, 오류가 나는 현 인용과 함께 답변

현재 이동 타겟을 매초(또는 2초)마다 지도상에서 위치 표시를 해 주는 웹코딩을 하고 있습니다. 처음에 약20여초 정도는 잘 작동하다가, 더 이상 javascirpt 에서
map = new DMap(...)과 같은 구문을 수행할 수 없습니다.
에러 number값은 -21472024809 값입니다.

혹시, 하나의 session이 계속 주기적으로 호출을 시도하면
map 객체 생성을 막도록 되어 있나요?

웹창을 다시 불러서 시도하면 똑같이 좀 되다가 안되는 현상을 반복하네요.
위로
사용자 정보 보기 비밀 메시지 보내기
tadoli
Site Admin


가입: 2008년 9월 4일
올린 글: 371

올리기올려짐: 금 10월 30, 2009 11:18 am    주제: 인용과 함께 답변

음.. 문제가 발생하는 소스코드를 보여주실 수 있으신가요?

직접 코드를 봐야 어떤 문제인지 알 수 있을 듯 하네요.
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
diffthink



가입: 2009년 10월 28일
올린 글: 2

올리기올려짐: 금 10월 30, 2009 12:05 pm    주제: 실행코드 및 지도 Level 3 미만 생성 시, 레벨3 인용과 함께 답변

아래 함수가 주기적으로 timer 이벤트에 의해 호출됩니다.
한 20여초 동안 20여회 잘 되다가, map = new DMAP(... ) 구문에서 튕겨나갑니다.
아랫쪽에 if(ex.number == -2147024809) 부분은 해당 에러에 대해서 에러 번호를 받아서 화면 전체를 PostBack 하도록 해 놓은 부분입니다. 이렇게 해야 해당 오류가 사라지기 때문입니다. (추측하건데, 하나의 세션에서 반복된 호출을 일정 횟수 이상은 막아 놓은 것이 아닌가 싶습니다.) 매번 이렇게 Page PostBack할 때마다 화면을 다시 다 그려서 매우 눈이 피곤하게 됩니다.

추가적으로,
일단, 맵 생성 시, 아래 코드에서는 레벨 0으로 생성하고자 하나, 레벨 0, 1, 2 모두 레벨 3으로 생성됩니다. 나중에 zoomIn()이나, setCenter()를 이용해 레벨을 0 ~2 로 하려고 해도 안됩니다. (<-- 이거 꼭 좀 고쳐주세요.)

function showMap(){
var map;
var refresh_interval;
try{


if(map == null)
{
map = new DMap("map", {point:new DLatLng(27.264621, 121.053045), level:0});

map.setMapType("TYPE_SKYVIEW");
//map.addControl(new DIndexMapControl());
map.addControl(new DZoomControl());

}
//-------- Draw Marker ----------
var trc = document.getElementById("maptrace");

if(trc != null)
{
var prevPoint = null;

for(var i = trc.childNodes.length - 2; i >= 0 ; i--)
{
var theDayString = trc.childNodes[i].getElementsByTagName("Date")[0].nextSibling.data;
var theDay = new Date(theDayString.substring(0,4),theDayString.substring(5,7),theDayString.substring(8,10));
var beganDay = new Date(2009,10,26);
if(theDay > beganDay)
{
var point = new DLatLng(parseFloat(trc.childNodes[i].getElementsByTagName("LAT")[0].nextSibling.data), parseFloat(trc.childNodes[i].getElementsByTagName("LNG")[0].nextSibling.data));
var messageInfo = trc.childNodes[i].getElementsByTagName("win")[0].nextSibling.firstChild.data + ": " + trc.childNodes[i].getElementsByTagName("Date")[0].nextSibling.data;
map.addOverlay(new DMark(point, { infowindow : new DInfoWindow(messageInfo), draggable:false }));
}
}
}

}
catch(ex)
{
if(ex.number == -2147024809)
{
StopTheClock();
self.location.reload(true);

}else{
alert("Daum map problem. Try to push \"show\" later.");
StopTheClock();
}
}
}
// -->
</script>
위로
사용자 정보 보기 비밀 메시지 보내기
tadoli
Site Admin


가입: 2008년 9월 4일
올린 글: 371

올리기올려짐: 목 11월 05, 2009 4:03 pm    주제: 인용과 함께 답변

new DMap() 해서 꼭 지도를 생성해야 하는 것인지요??

말씀하신 내용은 다음과 같은 방법으로도 구현가능할 것 같습니다.


코드:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>다음 지도API 테스트 페이지 </title>
<script type="text/javascript" src="http://apis.daum.net/maps/maps2.js?apikey=DAUM_MAPS_DEMO_APIKEY"></script>
<script type="text/javascript">

var points = new Array();

points[0] = new DLatLng(37.529196714213114, 126.92506196011036);
points[1] = new DLatLng(37.529136714213114, 126.92518196011036);
points[2] = new DLatLng(37.529186714213114, 126.92510196011036);
points[3] = new DLatLng(37.531196714213114, 126.92560196011036);
var N = 4;
var mark = new DMark(points[0], {label: "이동마커"} );
var i = 0;
function moveTarget()
{
   map.panTo(points[i%N]);
   mark.setPoint(points[i%N]);
   i++;
}
// -->
</script>
</head>
<body>
<div id="map" style="width:600px;height:400px;"></div>
<script type="text/javascript">
var loc = new DLatLng(37.529196714213114, 126.92506196011036);
map = new DMap("map");
map.setCenter(loc, 2);
map.addOverlay(mark);
//moveTarget();
setInterval("moveTarget()", 2000);
</script>
</body>
</html>
위로
사용자 정보 보기 비밀 메시지 보내기 글 올린이의 웹사이트 방문 MSN 메신저
이전 글 표시:   
글 쓰기   답변 달기    Daum DNA Forum -> 지도 API 시간대: GMT + 9 시간(한국)
페이지 11

 
건너뛰기:  
새로운 주제를 올릴 수 없습니다
답글을 올릴 수 없습니다
주제를 수정할 수 없습니다
올린 글을 삭제할 수 없습니다
투표를 할 수 없습니다


Powered by phpBB © 2001, 2005 phpBB Group
Translated by kss & drssay