가입 및 인증
주소를 좌표로 변환
[map.html]
<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpClientId=YOUR_CLIENT_ID&submodules=geocoder"></script>
[map.js]
function getCoordinates(address) {
return new Promise((resolve, reject) => {
naver.maps.Service.geocode({
query: address
}, function(status, response) {
if (status !== naver.maps.Service.Status.OK) {
return reject(new Error('주소를 찾을 수 없거나 오류가 발생했습니다.'));
}
var result = response.v2;
var items = result.addresses;
if (items.length > 0) {
resolve({ latitude: items[0].y, longitude: items[0].x });
} else {
reject(new Error('주소에 해당하는 좌표 정보를 찾을 수 없습니다.'));
}
});
});
}
async function main () {
try {
const address = '불정로 6';
const coordinates = await getCoordinates(address);
console.log(coordinates); // { latitude: 위도, longitude: 경도 }
} catch (error) {
console.error(error.message);
}
}
main();
지도 생성
[map.html]
<div id="map"></div>
[map.css]
html, body {
margin: 0;
padding: 0;
}
#map {
width: 100%;
height: 100%;
}
[map.js]
const map = new naver.maps.Map(document.getElementById('map'), {
center: new naver.maps.LatLng(coordinates.latitude, coordinates.longitude)
});
지도 타입 컨트롤러 삽입
[map.js]
const map = new naver.maps.Map(document.getElementById('map'), {
mapTypeControl: true,
mapTypeControlOptions: {
style: naver.maps.MapTypeControlStyle.DROPDOWN
}
});
컨트롤러의 스타일을 드롭다운으로 설정했다.
지적도 추가, 제거
[map.html]
<button id="cadastralOn">지적도 켜기</button>
<button id="cadastralOff">지적도 끄기</button>
[map.js]
const cadastralOn = document.getElementById('cadastralOn');
const cadastralOff = document.getElementById('cadastralOff');
const cadastralLayer = new naver.maps.CadastralLayer();
cadastralOn.addEventListener('click', event => {
cadastralLayer.setMap(map);
});
cadastralOff.addEventListener('click', event => {
cadastralLayer.setMap(null);
});
zoom 설정
[map.js]
const map = new naver.maps.Map(document.getElementById('map'), {
zoom: 17
});
마커 표시
[map.js]
const marker = new naver.maps.Marker({
position: new naver.maps.LatLng(coordinates.latitude, coordinates.longitude),
map: map
});
'컴퓨터 > Javascript' 카테고리의 다른 글
Javascript window.open() (0) | 2024.02.01 |
---|---|
Javascript 동기와 비동기 (1) | 2023.06.17 |
Javascript filter (0) | 2023.05.01 |
Javascript 아라비아 숫자를 한글 표기법으로 변환하기 (0) | 2023.03.04 |
Javascript 기기 논리적 해상도 확인 (0) | 2022.12.29 |