주소 표시 프로그램

안녕하세요 예전에 누가만들었는지 모를 지도 표시 프로그램을 사용하고 있었는데 이번에 1월 1일부터 앱키등 변화가 있어서 소수 수정을 했는데 동작이 되지 않습니다. 프로그램은 완전 초보라서 어디부분에서 잘못된 건지좀 알 수 있을까요? 수정은 카카오 개발자님께서 도움을 주셨습니다.
프로그램에 대해 설명하자면
캡처
예를 들어 다음과 같은 형식으로 엑셀에 입력후 실행하면

캡처1
아래와 같은 형태로 지도에 표시가 됩니다.
(엑셀 주소와 지도 주소가 매칭되지 않는점 양해 바랍니다.)
지도만들기.txt (5.5 KB)

  1. 서버를 띄우지 않으면… 해당 프로그램 같은 경우에는 사용 불가할거고요.
  2. 도메인 등록이 잘못된 경우가 있습니다.
  3. 첨부해 주신 코드상에 appkey= 다음에 ' ' 빈칸이 하나 있습니다. 이거 지워주셔야 합니다.
  4. 만약 모두 정상적으로 사용하고 있다면, IE가 구형인 경우(8버전 미만)에 동작하지 않을 수 있습니다.
  5. 한글 도메인인 경우 services 라이브러리가 정상 동작하지 않을 수 있습니다.
  6. 마이그레이션이 제대로 안되었을 수 있습니다. 아마 이것은 정상적으로 지도가 나오게 된다면 디버깅이 가능한 부분이라 생각됩니다.

실행 브라우저 환경
서버를 통해서 지도를 띄우는지, 도메인 등록을 하여 사용하고 있는지 여부
네트워크 통신 중, 제대로 응답받지 못한 리소스는 무엇이 있는지, 어떤 코드를 받고 어떤 에러메세지인지
스크립트 에러가 발생한다면 어떤 오류인지 알려주시면 자세하게 답변드릴게요.

2개의 좋아요

현재 시스템상 확인되는 로그는
@doji.doo 님이 말씀해주신 것 중,
2번 Domain mismatch 입니다.
사용하는 도메인과 앱정보에 등록된 도메인을 맞춰주셔야 합니다.

2개의 좋아요

1.로컬 pc에서 웹서버를 띄워서 html파일을 읽는데까지 성공했습니다. 하지만 active X 설치가 안되는데 이유를 알 수 있을까요?
캡처
(코드중에 “ActiveX Control가 설치 안됨. 설치하세요!” 라는 글씨가 웹페이지에서 깨져서 "Fail"로 수정하였습니다.)
2.앱정보에 등록된 도메인은 따로 도메인이 없기때문에 http://localhost 로 등록했습니다.
3.빈칸 지우고 수정했습니다.
4.IE는 10입니다.
5.DNS는 아직 공부중입니다. 제컴퓨터에서만 실행 되도 된다면 http://localhost 이어도 상관없나요?

로컬에서만 사용하시기 위함이라면
웹서버만 구동하시고 localhost 로 사용하셔도 됩니다.

ActiveX 는 지도 API 사용과는 무관한 것으로 보입니다.

감사합니다. 답변덕분에 ActiveX까지 해결해서 Excel 데이터까지 불러오는게 가능해졌습니다.
그런데 지도에 빨간색 상자와 빨간색 글씨가 표시가 되지 않습니다. 코드에서 잘못된 부분이 있는지 봐주시기를 부탁드립니다.캡처

지도 생성.txt (5.8 KB)

확실히 잘못되긴 했어요.
메인 코드에서 비동기 로직을 for문으로 실행하면
콜백 함수 내에서 참조하는 n값이 (RowsNum + 1)에 해당하는 값으로 나올겁니다.

for문을 쓰려면
IIFE를 사용하여 변수 스코프를 강제 하거나
콜백을 closure로 만들어서 변수값을 고정시켜야 하고,

간단하게는 for문을 쓰지 않고 대신 forEach를 써 주시면 해결됩니다.


참고해 주세요.

알려주신 forEach를 사용해보려고 예제를 참고했는데요 이상한게 있습니다.
daum 자체 sample인 ‘주소로 장소표시하기’ 에 알려주신데로 추가 입력하면 잘 되는데 웹서버에 html파일로 제작해서 실행하면 되지 않습니다.
1

2

여러개 마커 표시하기.txt (3.3 KB)

첨부해주신 소스 그대로 수정없이 실행해본 화면입니다.
제 PC에선 정상적으로 나오는데요.
실행 시 나오는 에러메시지가 있는지 확인해보세요.

주소로 장소 표시하기 2019-01-28 07-30-17

alert를 사용하여 값을 받아보니 주소로 좌표를 받는 geocoder를 인식하지 못하는것 같습니다.
주소로 장소표시하기 예제에 alert 3개를 입력하여 coords 값을 받아봤는데 위 현상과 마찬가지로
직접해보기에서는 좌표값이 출력되는데 웹서버에 올려서 실행하면 alert가 두번만 호출됩니다.
-예제 직접해보기
첫번째 이벤트 : 빈칸빈칸
두번째 이벤트 : .값 2번째
세번째 이벤트 : 빈칸빈칸

-웹서버에서 실행
첫번째 이벤트 : 빈칸
두번째 이벤트 : 호출안됨
세번째 이벤트 : 빈칸
(두번째, 세번째 중에 무엇이 호출안되는지는 정확하지 않습니다.)

무슨 문제가 있는걸까요?
geocoder 값 받아보기.txt (1.7 KB)

코드 파일에서 사용하신 텍스트 인코딩 때문인 것 같은데요

geocoder.addressSearch 에서 status 값을 찍어 보셨으면 해당 값이 ZERO_RESULT 인걸 확인할 수 있습니다.
그러니까 두 번째 이벤트까지는 들어가지 않은 것이구요.

정상적인 주소인데 주소검색결과 값이 없다… 한글인코딩을 의심해볼 수 있겠구요.

<meta charset="utf-8">
대신에
<meta charset="euc-kr">
로 해보니 되네요.

알려주신 euc-kr과 utf-8 모두 써보았는데 되지않습니다.
저번과 마찬가지로 sample 직접해보기에서는 정상 작동되네요…
한글이 깨졋는지 확인해보기위해 변수에 넣어서 출력해보니 한글은 제대로 출력이 됩니다.
다만 geocoder.addressSearch 안에 있는 jooso는 이벤트가 뜨지 않는데 무슨 이유일까요?

var jooso = "제주특별자치도 제주시 첨단로 242";
alert (jooso);
geocoder.addressSearch(jooso, function(result, status) {
alert (jooso);

정상적인 상황입니다.

콜백 안 쪽 구현은 비동기 로직이며 서버 요청 후 완료가 오는 시점에서 실행되기 때문에 콜백 밖의 메인 로직에서 수행하는 두 번의 alert이 빈값으로 나오고 그 이후에 콜백 안의 alert만이 제대로 값을 가진채 출력 됩니다.

비동기 프로그래밍을 이해하셔야 코드 흐름을 파악하실 수 있고, 원하는 코드를 어디에 작성해야 할 지 알 수 있어요.

바쁘신 와중에도 생초보자의 질문에 친절히 답변해주셔서 정말 감사합니다.
다른컴퓨터에서 실행해보니 잘 되네요…
기본 예제를 활용해서 원하는 것을 만들 수 있었습니다.
또 막히게 되면 질문드릴게요.
다시한번 감사의 말씀을 드립니다.

안녕하세요.
지도에 주소표시하기를 만들어서 잘 사용하고 있던중
회사컴퓨터에서 갑자기 지도표시가 되질 않습니다.
회사를 제외한 나머지 컴퓨터에서는 잘 되는데 문제가 무엇인지 알 수 있을까요?
도메인에 cheonanasan.ivyro.net 으로 들어가셔서 액티브엑스를 설치하시고 사진과같이 엑셀에 작성하신후 불러오시면 작동될 것입니다.지도캡쳐
오류는 아래와 같은 SCRIPT7002:XMLHttpRequest: 이런오류가 나옵니다.
오류

흐음… 회사에서 안된다면
회사 망에서 차단되었을 가능성이 있습니다.

일단 제가 확인할 수 있는 여러가지의 윈도우 환경에서는
아무리 확인 버튼을 눌러봐도
모두 액티브엑스 컨트롤이 설치가 되지 않아서
확인하기 힘드네요
image

1
2
3
인터넷 옵션을 이렇게 설정하시면 됩니다.

그런데 이상하게 회사 대다수의 컴퓨터는 안되는데
어떤 회사 컴퓨터는 되는게 이상합니다.

죄송하지만… 해당 문제는 잘 모르겠습니다.
인터넷 옵션 설정하는데서 “도메인 간의 데이터 원본 액세스” 항목을 [사용] 으로 바꿔 보시기 바랍니다.
해당 에러 코드로 구글 검색해서 나오는 해결책은 그것 밖에 안 보이네요.

답변해주셔서 감사합니다!