안녕하세요. 술도입니다.
https://youip.net 만들다가 카카오맵 API를 이용해서 현재위치를 지도로 표시해주는 기능을
넣는데 카카오에서 기본적으로 제공하는 예제에는 현재위치 + 커스텀마커 예제가 없어서
수정하여 적용해 보았습니다.
기본 사용법은 카카오 맵 API 사용하는거랑 똑같고 일부 스크립트 내용만 수정해 주면 됩니다.
우린 또 귀찮은거 싫어하니깐 바로 소스 알려드립니다..(대충 정리한 소스라 양해 바랍니다.)
<!-- Kakao Map Javscript API -->
<!--실제 지도를 그리는 Javascript API 및 API KEY -->
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=API KEY"></script>
<!-- 지도영역, id="map" 변경하면 지도표시 안됩니다. -->
<div id="map" style="width:100%;height:300px;"></div>
<div><h5>설명 안내 블라블라~</h5></div>
<!-- Kakao Map API 사용자적용(현재위치 + 커스텀이미지마커)-->
<script src="kakao_geomap.js"></script>
kakao_geomap.js 파일의 내용은 아래와 같습니다.
var mapContainer = document.getElementById('map'), // 지도를 표시할 div
mapOption = {
center: new kakao.maps.LatLng(33.450701, 126.570667), // 지도의 중심좌표
level: 6 // 지도의 확대 레벨
};
var map = new kakao.maps.Map(mapContainer, mapOption); // 지도를 생성합니다
// 마커 이미지를 생성합니다
var imageSrc = '/images/marker_kakao.png', // 마커이미지의 주소입니다
imageSize = new kakao.maps.Size(50, 65), // 마커이미지의 크기입니다
imageOption = {offset: new kakao.maps.Point(27, 69)}; // 마커이미지의 옵션입니다. 마커의 좌표와 일치시킬 이미지 안에서의 좌표를 설정합니다.
var markerImage = new kakao.maps.MarkerImage(imageSrc, imageSize, imageOption);
// 마커를 생성합니다
var marker = new kakao.maps.Marker({
position: mapOption.center,
image: markerImage // 마커이미지 설정
});
// 마커가 지도 위에 표시되도록 설정합니다
marker.setMap(map);
function getLocation() {
// HTML5의 geolocation으로 사용할 수 있는지 확인합니다
if (navigator.geolocation) {
// GeoLocation을 이용해서 접속 위치를 얻어옵니다
navigator.geolocation.getCurrentPosition(function(position) {
var lat = position.coords.latitude, // 위도
lon = position.coords.longitude; // 경도
var locPosition = new kakao.maps.LatLng(lat, lon); // 마커가 표시될 위치를 geolocation으로 얻어온 좌표로 생성합니다
// 마커 위치를 설정합니다
marker.setPosition(locPosition);
// 지도 중심좌표를 접속위치로 변경합니다
map.setCenter(locPosition);
});
} else {
// GeoLocation을 사용할 수 없을 때 기본 마커 위치를 설정합니다
// 이미 생성한 마커를 지도 위에 표시합니다
marker.setMap(map);
}
}
사용하는 방법은 우선 카카오 개발자페이지를 통해 앱키를 발급받습니다.
그리고 발급받은 API키를 첫번째 코드의 스크립트 뒷 부분 appkey= 다음에 넣습니다.
<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=asdlhbaVSDKLAHSFVD"></script>
뭐 이런식이 되겠죠.
앱키가 노출되면 어떻게 하냐..싶지만 앱키는 카카오 개발자페이지에서 애플리케이션
생성시 입력한 URL 에서만 동작이 되기 때문에 노출되어도 큰 문제는 없으니 안심하시기
바랍니다.
그리고 kakao_geomap.js 파일 을 다운로드 합니다.(ZIP으로 압축해서 등록해 놓았습니다.)
(2023.02.26 자바스크립트에 오류가 있어서 수정하였습니다.)
실제 사용시 js 파일에서 아래 부분만 커스텀마커에 맞게 적절하게 수정해서 사용하시면 됩니다.
(제가 직접 만든 커스텀 마커입니다.50*65)
var imageSrc = '/images/marker_kakao.png', // 마커이미지의 주소입니다
imageSize = new kakao.maps.Size(50, 65), // 마커이미지의 크기입니다
실제 적용된 사이트는 https://youip.net 에서 확인할 수 있습니다.
사이트 접속부터 GeoLocation 을 요청하면 좀 그럴수 있으니 권한요청 버튼 클릭시 GeoLocation 사용여부를 선택할 수 있게 되어 있습니다.
GeoLocation 차단 또는 사용불가시
GeoLocation 허용시
더 자세한건 아래 링크 가이드를 통해 참고바랍니다.
https://apis.map.kakao.com/web/guide/
'IT&모바일' 카테고리의 다른 글
현재 접속 내 아이피 및 VPN,PROXY,TOR,WARP 사용여부 체크하기 (0) | 2023.02.18 |
---|---|
ChatGPT랑 채팅을 해보았습니다. (0) | 2023.02.04 |
PC(WINDOWS)와 스마트폰을 USB로 연결하여 미러링하고 녹화하기 (0) | 2022.12.13 |