728x90
# 볼보 건설장비 위치 정보 종합 - 지도맵 만들기
다음과 같은 지도에 주소 정보를 매핑하는 방법을 소개 드립니다.
[첨부소스]
볼보 건설기계 정비센터와 부품 대리점 위치를 지도로 맵을 작성하는 것을 해 보았습니다.
요즘은 GPT(코파일럿, 재미나이, 퍼플렉시티, 챗GPT, 클로드 등) 어떤 것을 이용해도 아래와 같은 결과를 얻을수 있습니다.
(중요) GPT에게 일을 시키려면 다만 이런 지도에 맵핑하는 방법의 기본적인 작동 원리는 알아야 겠지요 ^^
0 단계 : 볼보 정비 센터의 주소 정보를 수집 합니다.
- (볼보건설기계 전국 영업 지사) https://www.volvoce.com/south-korea/ko-kr/contact-us/dealer/
- (볼보순정부품 대리점 현황 ) http://seannivy.com/volvo/site/volvocekr.html
- 위의 사이트에서 notepad 창을 열고 종류별 주소 목록을 복사합니다.
1 단계 : GPT를 통해 기본 소스 만들기
GPT의 도움으로 주소 목록을 올리고 지도에 마크를 해달라고 합니다.
아래 각 지역의 지점을 지도에 표시해줘
- "볼보"라는 지점은 빨간색, 나머지는 파란색,
- 범례에 빨강: 직영점, 파랑:대리점 으로 표기하고
- 지도 마크 기호는 동그라미로 만들어줘 (서울/경기도)
-------------------------------------------------------
삼방중기(주) 02 2677-4425 서울특별시 영등포구 버드나루로50(영등포동2가 -리버타워오피스텔102)
(주)삼성센타 02 2676-1181 서울특별시 영등포구 버드나루로 44 (영등포동 2가) 세원빌딩 1층
법운건설기계(주) 031 755-8900 경기도 성남시 수정구대왕판교로 982길7-20(고등동)
수원센타 031 238-9752 경기도 화성시 정조로 73-1(진안동)
삼성산업 031 234-2488 경기도 수원시 권선구 경수대로 370번길 7(권선동)
중부부품센타(주) 031 657-6426 경기도 안성시 만세로 1034 (원곡면 칠곡리 170-4)
볼보 직영 부품직판점 054 858-8900 경상북도 안동시 경북대로 551(송현동) 볼보 경북지사
... 이하 생략 ...
응답 소스
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Branches Map</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<style>
html, body, #map { height:100%; margin:0; }
.legend { background:white; padding:6px; line-height:1.5; }
.legend i { width:15px; height:15px; float:left; margin-right:8px; opacity:0.7; }
</style>
</head>
<body>
<div id="map"></div>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script>
// 지도 초기화
const map = L.map('map').setView([36.5, 127.8], 7);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
attribution: '© OpenStreetMap © CARTO',
subdomains: 'abcd',
maxZoom: 19
}).addTo(map);
// 지점 데이터 (일부 예시 좌표는 실제 주소 기반으로 변환 필요)
const locations = [
{ name:"삼방중기(주)", addr:"서울특별시 영등포구 버드나루로50", lat:37.518, lng:126.931, type:"dealer"},
{ name:"(주)삼성센타", addr:"서울특별시 영등포구 버드나루로 44", lat:37.517, lng:126.930, type:"dealer"},
{ name:"법운건설기계(주)", addr:"경기도 성남시 수정구 대왕판교로 982길7-20", lat:37.410, lng:127.120, type:"dealer"},
{ name:"수원센타", addr:"경기도 화성시 정조로 73-1", lat:37.217, lng:127.030, type:"dealer"},
{ name:"삼성산업", addr:"경기도 수원시 권선구 경수대로 370번길 7", lat:37.257, lng:127.017, type:"dealer"},
{ name:"중부부품센타(주)", addr:"경기도 안성시 만세로 1034", lat:37.006, lng:127.270, type:"dealer"},
{ name:"볼보북부센타", addr:"경기도 의정부시 금오로151", lat:37.739, lng:127.047, type:"direct"},
{ name:"신진상사", addr:"경기도 이천시 증신로218", lat:37.280, lng:127.442, type:"dealer"},
{ name:"(주)인천부품센타", addr:"인천광역시 남구 송림로327", lat:37.466, lng:126.680, type:"dealer"},
{ name:"제주센타", addr:"제주시 번영로 439", lat:33.498, lng:126.606, type:"dealer"}
// ... 나머지 지점도 동일하게 추가
];
// 지도에 원형 마커 추가
locations.forEach(loc => {
// const isVolvo = loc.name.includes("볼보");
// const color = isVolvo ? "red" : "blue";
const color = (loc.type === "direct") ? "red" : "blue";
L.circleMarker([loc.lat, loc.lng], {
radius: 8,
color: color,
fillColor: color,
fillOpacity: 0.8
}).addTo(map)
.bindPopup(`<b>${loc.name}</b><br>${loc.addr}`);
});
// 범례 추가
const legend = L.control({ position: "bottomright" });
legend.onAdd = function(map) {
const div = L.DomUtil.create("div", "legend");
div.innerHTML = `
<i style="background:red"></i> 직영점<br>
<i style="background:blue"></i> 대리점
`;
return div;
};
legend.addTo(map);
</script>
</body>
</html>
아래와 같은 지도가 만들어 집니다.(브라우저에 html을 로딩해봅니다.)

2 단계: 전체 주소를 좌표로 만들기
[질문]
전체 주소 .
..중략...
한진종합중기 055 943-8799 경상남도 거창군 거창읍 밤티재로 1321
(제주)
-------------------------------------------------------
제주센타 064 702-7800 제주특별자치도 제주시 번영로 439(봉개동)
위의 주소를 다음 형식으로 위치를 포함하여 작성해줘
{ name:"볼보 직영 부품직판점(김해)", addr:"경남 김해시 한림면 김해대로 1522", lat:35.272, lng:128.870 , type="direct"},
응답
const locations = [
{ name:"삼방중기(주)", addr:"서울특별시 영등포구 버드나루로50", lat:37.518, lng:126.931, type:"dealer"},
{ name:"(주)삼성센타", addr:"서울특별시 영등포구 버드나루로 44", lat:37.517, lng:126.930, type:"dealer"},
{ name:"법운건설기계(주)", addr:"경기도 성남시 수정구 대왕판교로 982길7-20", lat:37.410, lng:127.120, type:"dealer"},
{ name:"수원센타", addr:"경기도 화성시 정조로 73-1", lat:37.217, lng:127.030, type:"dealer"},
{ name:"삼성산업", addr:"경기도 수원시 권선구 경수대로 370번길 7", lat:37.257, lng:127.017, type:"dealer"},
{ name:"중부부품센타(주)", addr:"경기도 안성시 만세로 1034", lat:37.006, lng:127.270, type:"dealer"},
{ name:"볼보북부센타", addr:"경기도 의정부시 금오로151", lat:37.739, lng:127.047, type:"direct"},
{ name:"신진상사", addr:"경기도 이천시 증신로218", lat:37.280, lng:127.442, type:"dealer"},
{ name:"(주)인천부품센타", addr:"인천광역시 남구 송림로327", lat:37.466, lng:126.680, type:"dealer"},
{ name:"(주)동해센타", addr:"강원도 동해시 전천로157", lat:37.507, lng:129.124, type:"dealer"},
{ name:"(주)동해센타(강릉지점)", addr:"강원도 강릉시 옥가로 60", lat:37.751, lng:128.876, type:"dealer"},
{ name:"유진상사", addr:"강원도 원주시 흥업면 남원로 47", lat:37.307, lng:127.922, type:"dealer"},
{ name:"볼보 직영 부품직판점(대전)", addr:"대전광역시 대덕구 상서당1길12", lat:36.428, lng:127.434, type:"direct"},
{ name:"(주)태성물산", addr:"대전광역시 중구 충무로 154", lat:36.327, lng:127.423, type:"dealer"},
{ name:"주영상사", addr:"대전광역시 서구 동서대로1036", lat:36.351, lng:127.378, type:"dealer"},
{ name:"볼보 직영 부품직판점(아산)", addr:"충남 아산시 순천향로 612", lat:36.783, lng:127.003, type:"direct"},
{ name:"삼성중기부품상사", addr:"충남 천안시 서북구 두정공단2길43-2", lat:36.824, lng:127.152, type:"dealer"},
{ name:"한빛중기부품", addr:"충남 서산시 소탐1로 100", lat:36.784, lng:126.450, type:"dealer"},
{ name:"거성중기", addr:"충남 부여군 부여읍 계백로316-1", lat:36.275, lng:126.909, type:"dealer"},
{ name:"(주)대원상사", addr:"충북 청주시 청원구 무심동로596", lat:36.642, lng:127.489, type:"dealer"},
{ name:"태운상사", addr:"충북 청주시 청원구 충청대로229", lat:36.642, lng:127.489, type:"dealer"},
{ name:"동남중기", addr:"충북 충주시 봉방천변길 20", lat:36.970, lng:127.933, type:"dealer"},
{ name:"(주)한일중기", addr:"충북 제천시 바이오밸리로 52", lat:37.132, lng:128.190, type:"dealer"},
{ name:"볼보 직영 부품직판점(안동)", addr:"경북 안동시 경북대로 551", lat:36.565, lng:128.725, type:"direct"},
{ name:"삼성중기상사", addr:"경북 구미시 수출대로 1길 17", lat:36.119, lng:128.344, type:"dealer"},
{ name:"(주)삼성중기", addr:"경북 포항시 남구 연일읍 형산강남로 418번길 76", lat:35.995, lng:129.345, type:"dealer"},
{ name:"삼성중기부품센타", addr:"경북 문경시 신흥2길 3-13", lat:36.586, lng:128.187, type:"dealer"},
{ name:"한진중기상사", addr:"경북 경산시 진량읍 낙산길 55-4", lat:35.825, lng:128.741, type:"dealer"},
{ name:"현대사", addr:"대구광역시 중구 달성로22길 13", lat:35.870, lng:128.600, type:"dealer"},
{ name:"볼보 직영 부품직판점(김해)", addr:"경남 김해시 한림면 김해대로 1522", lat:35.272, lng:128.870, type:"direct"},
{ name:"(주)신화중기", addr:"부산광역시 사상구 광장로 20번길 36", lat:35.152, lng:128.990, type:"dealer"},
{ name:"신화중기", addr:"경남 창원시 마산회원구 봉암공단로6", lat:35.220, lng:128.580, type:"dealer"},
{ name:"삼성중기센타", addr:"경남 창원시 의창구 무역로 541", lat:35.250, lng:128.650, type:"dealer"},
{ name:"조일중기센타", addr:"울산광역시 남구 삼산로 169번길 9", lat:35.543, lng:129.338, type:"dealer"},
{ name:"울산건설기계", addr:"울산광역시 북구 효자로 7", lat:35.583, lng:129.361, type:"dealer"},
{ name:"삼성중기센타", addr:"경남 진주시 큰들로97", lat:35.180, lng:128.107, type:"dealer"},
{ name:"명문중기센타", addr:"경남 진주시 대신로 168", lat:35.180, lng:128.107, type:"dealer"},
{ name:"대영중기부품", addr:"경남 진주시 남강로 1049", lat:35.180, lng:128.107, type:"dealer"},
{ name:"한진종합중기", addr:"경남 거창군 거창읍 밤티재로 1321", lat:35.686, lng:127.909, type:"dealer"},
{ name:"제주센타", addr:"제주시 번영로 439", lat:33.498, lng:126.606, type:"dealer"}
];
3 단계: 코드의 색상이나 마크의 모양을 변형하기
- GPT를 통해 원하는 내용을 추가로 입력하여 수정 사항을 입력하면서 약간의 수정을 하면 됩니다.
질문
각 지점의 마크 는 센터지사는 중심반경 50km으로 밝은 빨강색으로 원을 그리고,
일반지사는 10km 반경으로 밝은 파란색으로 원을 그려서 작성해줘
응답
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Branches with Circles</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<style>html,body,#map{height:100%;margin:0}</style>
</head>
<body>
<div id="map"></div>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script>
// 지도 초기화
const map = L.map('map').setView([36.5, 127.8], 7);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
attribution: '© OpenStreetMap © CARTO',
subdomains: 'abcd',
maxZoom: 19
}).addTo(map);
// 커스텀 마커 아이콘 (빨강, 파랑)
const redIcon = new L.Icon({
iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-red.png',
shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
const blueIcon = new L.Icon({
iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png',
shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
// 지점 데이터
const locations = [
{ name: "직할영업팀(법인영업)", addr: "서울특별시 용산구 한남대로 130 5층", lat: 37.5345, lng: 127.0007, type: "branch" },
{ name: "서울지사", addr: "서울 마포구 서강로 82,1층", lat: 37.5466, lng: 126.9353, type: "branch" },
{ name: "의정부지점", addr: "경기 의정부시 충의로 73 산광빌딩 201호", lat: 37.7398, lng: 127.0471, type: "branch" },
{ name: "경기센터지사", addr: "경기도 화성시 봉담읍 최루백로 247", lat: 37.2177, lng: 126.9513, type: "center" },
{ name: "충청센터지사", addr: "충북 청주시 흥덕구 옥산면 호죽화산로 98", lat: 36.6295, lng: 127.3895, type: "center" },
{ name: "중부센터지사", addr: "대전광역시 대덕구 상서당1길 12", lat: 36.4285, lng: 127.4340, type: "center" },
{ name: "전남센터지사", addr: "광주광역시 광산구 송도로 124", lat: 35.1730, lng: 126.8110, type: "center" },
{ name: "대구경북센터지사", addr: "경북 칠곡군 동명면 경북대로 72", lat: 36.0610, lng: 128.4010, type: "center" },
{ name: "부산경남센터지사", addr: "경남 김해시 한림면 김해대로 1522", lat: 35.2720, lng: 128.8700, type: "center" },
{ name: "인천지점", addr: "인천광역시 서구 서곶로 341,301호", lat: 37.5475, lng: 126.6753, type: "branch" },
{ name: "강원지사", addr: "강원도 원주시 흥업면 남원로 47, 2층", lat: 37.3070, lng: 127.9225, type: "branch" },
{ name: "이천지점", addr: "경기도 이천시 증신로 218 (송정동)", lat: 37.2805, lng: 127.4421, type: "branch" },
{ name: "강릉지점", addr: "강원 강릉시 동해대로 3380, 2층", lat: 37.7519, lng: 128.8761, type: "branch" },
{ name: "춘천지점", addr: "강원특별자치도 춘천시 옛경춘로 483 YWCA, 1층", lat: 37.8747, lng: 127.7342, type: "branch" },
{ name: "아산지점", addr: "충남 아산시 순천향로 612, 2층", lat: 36.7836, lng: 127.0032, type: "branch" },
{ name: "충주지점", addr: "충북 충주시 연수동산로3길 15, 201호", lat: 36.9706, lng: 127.9330, type: "branch" },
{ name: "제천지점", addr: "충북 제천시 송학주천로 55", lat: 37.1326, lng: 128.1905, type: "branch" },
{ name: "서산지점", addr: "충남 서산시 수석순환로 228", lat: 36.7846, lng: 126.4505, type: "branch" },
{ name: "전북지점", addr: "전북 완주군 삼례읍 삼례나들목로 55, 2층", lat: 35.9132, lng: 127.1230, type: "branch" },
{ name: "군산지점", addr: "전북 군산시 미성로 475", lat: 35.9670, lng: 126.7365, type: "branch" },
{ name: "순천지점", addr: "전남 순천시 구암2길 3, 3층", lat: 34.9507, lng: 127.4870, type: "branch" },
{ name: "목포지점", addr: "전남 무안군 삼향읍 삼향로 127-39", lat: 34.8110, lng: 126.4340, type: "branch" },
{ name: "안동지점", addr: "경북 안동시 경북대로 652-2", lat: 36.5650, lng: 128.7250, type: "branch" },
{ name: "포항지점", addr: "경북 포항시 남구 연일읍 형산강남로 418번길 74 2층", lat: 35.9950, lng: 129.3450, type: "branch" },
{ name: "진주지점", addr: "경남 진주시 대신로 168 (상평동, 2층)", lat: 35.1800, lng: 128.1070, type: "branch" },
{ name: "거창지점", addr: "경남 거창군 거창읍 밤티재로 1321", lat: 35.6860, lng: 127.9090, type: "branch" },
{ name: "제주지점", addr: "제주 제주시 번영로 439 (봉개동, 2층)", lat: 33.4980, lng: 126.6060, type: "branch" },
{ name: "울산지점", addr: "울산광역시 북구 효자로 7", lat: 35.5830, lng: 129.3610, type: "branch" }
];
// 지도에 마커와 원 추가
locations.forEach(loc => {
const icon = (loc.type === "center") ? redIcon : blueIcon;
//const color = (loc.type === "center") ? "red" : "light-blue";
const color = (loc.type === "center") ? "#ff6666" : "#66b2ff";
const radius = (loc.type === "center") ? 70000 : 40000; // 센터=70km, 지점=40km
// 마커 추가
L.marker([loc.lat, loc.lng], { icon: icon }).addTo(map)
.bindPopup(`<b>${loc.name}</b><br>${loc.addr}`);
// 원 추가
L.circle([loc.lat, loc.lng], {
radius: radius,
color: color,
weight: 2,
fillColor: color,
fillOpacity: 0.2
}).addTo(map);
});
</script>
</body>
</html>


두 지도를 합쳐서 아래와 같이 만들어 봅니다.

4. 단계 : 볼보 영업 센터와 대리점 지도 합치기
위의 두 소스를 합쳐 달라고 하면 다음과 같이 합쳐 줍니다.
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>Unified Branches Map</title>
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" />
<style>
html, body, #map { height:100%; margin:0; }
.legend { background:white; padding:6px; line-height:1.5; }
.legend i { width:15px; height:15px; float:left; margin-right:8px; opacity:0.7; }
</style>
</head>
<body>
<div id="map"></div>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"></script>
<script>
// 지도 초기화
const map = L.map('map').setView([36.5, 127.8], 7);
L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', {
attribution: '© OpenStreetMap © CARTO',
subdomains: 'abcd',
maxZoom: 19
}).addTo(map);
// 커스텀 마커 아이콘 (센터/지사용)
const redIcon = new L.Icon({
iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-red.png',
shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
const blueIcon = new L.Icon({
iconUrl: 'https://raw.githubusercontent.com/pointhi/leaflet-color-markers/master/img/marker-icon-blue.png',
shadowUrl: 'https://unpkg.com/leaflet@1.9.4/dist/images/marker-shadow.png',
iconSize: [25, 41],
iconAnchor: [12, 41],
popupAnchor: [1, -34],
shadowSize: [41, 41]
});
// ----------------------
// 데이터 1: 직영점/대리점
// ----------------------
const dealerLocations = [
{ name:"삼방중기(주)", addr:"서울특별시 영등포구 버드나루로50", lat:37.518, lng:126.931, type:"dealer"},
{ name:"(주)삼성센타", addr:"서울특별시 영등포구 버드나루로 44", lat:37.517, lng:126.930, type:"dealer"},
{ name:"법운건설기계(주)", addr:"경기도 성남시 수정구 대왕판교로 982길7-20", lat:37.410, lng:127.120, type:"dealer"},
{ name:"수원센타", addr:"경기도 화성시 정조로 73-1", lat:37.217, lng:127.030, type:"dealer"},
{ name:"삼성산업", addr:"경기도 수원시 권선구 경수대로 370번길 7", lat:37.257, lng:127.017, type:"dealer"},
{ name:"중부부품센타(주)", addr:"경기도 안성시 만세로 1034", lat:37.006, lng:127.270, type:"dealer"},
{ name:"볼보북부센타", addr:"경기도 의정부시 금오로151", lat:37.739, lng:127.047, type:"direct"},
{ name:"신진상사", addr:"경기도 이천시 증신로218", lat:37.280, lng:127.442, type:"dealer"},
{ name:"(주)인천부품센타", addr:"인천광역시 남구 송림로327", lat:37.466, lng:126.680, type:"dealer"},
{ name:"(주)동해센타", addr:"강원도 동해시 전천로157", lat:37.507, lng:129.124, type:"dealer"},
{ name:"(주)동해센타(강릉지점)", addr:"강원도 강릉시 옥가로 60", lat:37.751, lng:128.876, type:"dealer"},
{ name:"유진상사", addr:"강원도 원주시 흥업면 남원로 47", lat:37.307, lng:127.922, type:"dealer"},
{ name:"볼보 직영 부품직판점(대전)", addr:"대전광역시 대덕구 상서당1길12", lat:36.428, lng:127.434, type:"direct"},
{ name:"(주)태성물산", addr:"대전광역시 중구 충무로 154", lat:36.327, lng:127.423, type:"dealer"},
{ name:"주영상사", addr:"대전광역시 서구 동서대로1036", lat:36.351, lng:127.378, type:"dealer"},
{ name:"볼보 직영 부품직판점(아산)", addr:"충남 아산시 순천향로 612", lat:36.783, lng:127.003, type:"direct"},
{ name:"삼성중기부품상사", addr:"충남 천안시 서북구 두정공단2길43-2", lat:36.824, lng:127.152, type:"dealer"},
{ name:"한빛중기부품", addr:"충남 서산시 소탐1로 100", lat:36.784, lng:126.450, type:"dealer"},
{ name:"거성중기", addr:"충남 부여군 부여읍 계백로316-1", lat:36.275, lng:126.909, type:"dealer"},
{ name:"(주)대원상사", addr:"충북 청주시 청원구 무심동로596", lat:36.642, lng:127.489, type:"dealer"},
{ name:"태운상사", addr:"충북 청주시 청원구 충청대로229", lat:36.642, lng:127.489, type:"dealer"},
{ name:"동남중기", addr:"충북 충주시 봉방천변길 20", lat:36.970, lng:127.933, type:"dealer"},
{ name:"(주)한일중기", addr:"충북 제천시 바이오밸리로 52", lat:37.132, lng:128.190, type:"dealer"},
{ name:"볼보 직영 부품직판점(안동)", addr:"경북 안동시 경북대로 551", lat:36.565, lng:128.725, type:"direct"},
{ name:"삼성중기상사", addr:"경북 구미시 수출대로 1길 17", lat:36.119, lng:128.344, type:"dealer"},
{ name:"(주)삼성중기", addr:"경북 포항시 남구 연일읍 형산강남로 418번길 76", lat:35.995, lng:129.345, type:"dealer"},
{ name:"삼성중기부품센타", addr:"경북 문경시 신흥2길 3-13", lat:36.586, lng:128.187, type:"dealer"},
{ name:"한진중기상사", addr:"경북 경산시 진량읍 낙산길 55-4", lat:35.825, lng:128.741, type:"dealer"},
{ name:"현대사", addr:"대구광역시 중구 달성로22길 13", lat:35.870, lng:128.600, type:"dealer"},
{ name:"볼보 직영 부품직판점(김해)", addr:"경남 김해시 한림면 김해대로 1522", lat:35.272, lng:128.870, type:"direct"},
{ name:"(주)신화중기", addr:"부산광역시 사상구 광장로 20번길 36", lat:35.152, lng:128.990, type:"dealer"},
{ name:"신화중기", addr:"경남 창원시 마산회원구 봉암공단로6", lat:35.220, lng:128.580, type:"dealer"},
{ name:"삼성중기센타", addr:"경남 창원시 의창구 무역로 541", lat:35.250, lng:128.650, type:"dealer"},
{ name:"조일중기센타", addr:"울산광역시 남구 삼산로 169번길 9", lat:35.543, lng:129.338, type:"dealer"},
{ name:"울산건설기계", addr:"울산광역시 북구 효자로 7", lat:35.583, lng:129.361, type:"dealer"},
{ name:"삼성중기센타", addr:"경남 진주시 큰들로97", lat:35.180, lng:128.107, type:"dealer"},
{ name:"명문중기센타", addr:"경남 진주시 대신로 168", lat:35.180, lng:128.107, type:"dealer"},
{ name:"대영중기부품", addr:"경남 진주시 남강로 1049", lat:35.180, lng:128.107, type:"dealer"},
{ name:"한진종합중기", addr:"경남 거창군 거창읍 밤티재로 1321", lat:35.686, lng:127.909, type:"dealer"},
{ name:"제주센타", addr:"제주시 번영로 439", lat:33.498, lng:126.606, type:"dealer"}
// ... 나머지 dealer 데이터도 동일하게 추가
];
// ----------------------
// 데이터 2: 센터/지사
// ----------------------
const centerLocations = [
{ name: "직할영업팀(법인영업)", addr: "서울특별시 용산구 한남대로 130 5층", lat: 37.5345, lng: 127.0007, type: "branch" },
{ name: "서울지사", addr: "서울 마포구 서강로 82,1층", lat: 37.5466, lng: 126.9353, type: "branch" },
{ name: "의정부지점", addr: "경기 의정부시 충의로 73 산광빌딩 201호", lat: 37.7398, lng: 127.0471, type: "branch" },
{ name: "경기센터지사", addr: "경기도 화성시 봉담읍 최루백로 247", lat: 37.2177, lng: 126.9513, type: "center" },
{ name: "충청센터지사", addr: "충북 청주시 흥덕구 옥산면 호죽화산로 98", lat: 36.6295, lng: 127.3895, type: "center" },
{ name: "중부센터지사", addr: "대전광역시 대덕구 상서당1길 12", lat: 36.4285, lng: 127.4340, type: "center" },
{ name: "전남센터지사", addr: "광주광역시 광산구 송도로 124", lat: 35.1730, lng: 126.8110, type: "center" },
{ name: "대구경북센터지사", addr: "경북 칠곡군 동명면 경북대로 72", lat: 36.0610, lng: 128.4010, type: "center" },
{ name: "부산경남센터지사", addr: "경남 김해시 한림면 김해대로 1522", lat: 35.2720, lng: 128.8700, type: "center" },
{ name: "인천지점", addr: "인천광역시 서구 서곶로 341,301호", lat: 37.5475, lng: 126.6753, type: "branch" },
{ name: "강원지사", addr: "강원도 원주시 흥업면 남원로 47, 2층", lat: 37.3070, lng: 127.9225, type: "branch" },
{ name: "이천지점", addr: "경기도 이천시 증신로 218 (송정동)", lat: 37.2805, lng: 127.4421, type: "branch" },
{ name: "강릉지점", addr: "강원 강릉시 동해대로 3380, 2층", lat: 37.7519, lng: 128.8761, type: "branch" },
{ name: "춘천지점", addr: "강원특별자치도 춘천시 옛경춘로 483 YWCA, 1층", lat: 37.8747, lng: 127.7342, type: "branch" },
{ name: "아산지점", addr: "충남 아산시 순천향로 612, 2층", lat: 36.7836, lng: 127.0032, type: "branch" },
{ name: "충주지점", addr: "충북 충주시 연수동산로3길 15, 201호", lat: 36.9706, lng: 127.9330, type: "branch" },
{ name: "제천지점", addr: "충북 제천시 송학주천로 55", lat: 37.1326, lng: 128.1905, type: "branch" },
{ name: "서산지점", addr: "충남 서산시 수석순환로 228", lat: 36.7846, lng: 126.4505, type: "branch" },
{ name: "전북지점", addr: "전북 완주군 삼례읍 삼례나들목로 55, 2층", lat: 35.9132, lng: 127.1230, type: "branch" },
{ name: "군산지점", addr: "전북 군산시 미성로 475", lat: 35.9670, lng: 126.7365, type: "branch" },
{ name: "순천지점", addr: "전남 순천시 구암2길 3, 3층", lat: 34.9507, lng: 127.4870, type: "branch" },
{ name: "목포지점", addr: "전남 무안군 삼향읍 삼향로 127-39", lat: 34.8110, lng: 126.4340, type: "branch" },
{ name: "안동지점", addr: "경북 안동시 경북대로 652-2", lat: 36.5650, lng: 128.7250, type: "branch" },
{ name: "포항지점", addr: "경북 포항시 남구 연일읍 형산강남로 418번길 74 2층", lat: 35.9950, lng: 129.3450, type: "branch" },
{ name: "진주지점", addr: "경남 진주시 대신로 168 (상평동, 2층)", lat: 35.1800, lng: 128.1070, type: "branch" },
{ name: "거창지점", addr: "경남 거창군 거창읍 밤티재로 1321", lat: 35.6860, lng: 127.9090, type: "branch" },
{ name: "제주지점", addr: "제주 제주시 번영로 439 (봉개동, 2층)", lat: 33.4980, lng: 126.6060, type: "branch" },
{ name: "울산지점", addr: "울산광역시 북구 효자로 7", lat: 35.5830, lng: 129.3610, type: "branch" }
// ... 나머지 center/branch 데이터도 동일하게 추가
];
// ----------------------
// 지도에 표시
// ----------------------
// 직영점/대리점 → 원형 마커
dealerLocations.forEach(loc => {
const color = (loc.type === "direct") ? "red" : "blue";
L.circleMarker([loc.lat, loc.lng], {
radius: 8,
color: color,
fillColor: color,
fillOpacity: 0.8
}).addTo(map)
.bindPopup(`<b>${loc.name}</b><br>${loc.addr}`);
});
// 센터/지사 → 마커 + 반경 원
centerLocations.forEach(loc => {
const icon = (loc.type === "center") ? redIcon : blueIcon;
const color = (loc.type === "center") ? "#ff6666" : "#66b2ff";
const radius = (loc.type === "center") ? 70000 : 40000;
L.marker([loc.lat, loc.lng], { icon: icon }).addTo(map)
.bindPopup(`<b>${loc.name}</b><br>${loc.addr}`);
L.circle([loc.lat, loc.lng], {
radius: radius,
color: color,
weight: 2,
fillColor: color,
fillOpacity: 0.2
}).addTo(map);
});
// ----------------------
// 범례 추가
// ----------------------
const legend = L.control({ position: "bottomright" });
legend.onAdd = function(map) {
const div = L.DomUtil.create("div", "legend");
div.innerHTML = `
<i style="background:red"></i> 직영점<br>
<i style="background:blue"></i> 대리점<br>
<i style="background:#ff6666"></i> 센터<br>
<i style="background:#66b2ff"></i> 지사
`;
return div;
};
legend.addTo(map);
</script>
</body>
</html>
이와 같이 GPT를 이용해서 쉽게 지도에 주소를 매핑하는 소스를 작성해 보았습니다.
728x90
반응형
'Programming' 카테고리의 다른 글
| 앙상블(Ensemble)은 (1) | 2025.09.18 |
|---|---|
| Java 암호화 확장(JCE) 무제한 강도 정책 (0) | 2025.08.11 |
| Local LLM을 이용한 Application 개발 예시 및 챗봇 활용 (0) | 2025.08.09 |
| 스태이시 복잡성 모형(Stacey Complexity Model)와 애자일 방법론 (2) | 2025.07.02 |
| Open Annotation을 이용한 주석 관리 방법 (3) | 2025.05.05 |
| Open annotation 렌더링 - JSON-LD 를 문서에 출력하는 방법 (0) | 2025.05.01 |
| (쿨팁) git 에서 https repository 연결시 SSL 인증서 오류 해결 설정 방법 http.sslVerify false (10) | 2025.04.28 |
