안규 공부방

Javascript & JQuery & CSS > Google Maps API + 위치표시와 말풍선 띄우기.

등록일 : 2017-07-14 17:11 조회수 : 94,346



구글지도를 웹페이지에 적용했을 때의 모습이다.

방법은 굉장히 쉽다.

사실.. 처음에 아무것도 몰랐을 때는 좀 어려운데, 알고나면 별 거 아니다.

https://developers.google.com/maps/documentation/javascript/

아래 소스에 주석으로 설명을 달아놨으니 필요한 사람은 참고하길 바란다.

*** 먼저 독타입을 HTML5 형식으로 맞춰줄 것! "<!DOCTYPE html>"

<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

또는,

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>


그리고, 아래 소스를 추가해 주면 된다.
 
	//좌표 이미지를 표시하는 MarkerImage
	var GreenIcon = new google.maps.MarkerImage(
		"http://ankyu.entersoft.kr/images/choiankyu.jpg",
		new google.maps.Size(60, 60),
		new google.maps.Point(0, 0),
		new google.maps.Point(6, 20));

	//현재 위치에서 위도/경도 뽑기
	function getLocation_cord()
	{
		if (navigator.geolocation)
		{
			navigator.geolocation.getCurrentPosition(successCallback,errorCallback);
		} else
		{
			$("#map").html("Geolocation is not supported by this browser.");
			alert('단말기에서 현재 위치를 사용할 수 없습니다.');
		}
	}

	//위도/경도 성공시 호출 Callback 함수
	function successCallback(wp_position) 
	{
		//위도 경도 표시
		$("#setPosition").html("Latitude: " + wp_position.coords.latitude + ", Longitude: " + wp_position.coords.longitude);
		
		var wplatlng = new google.maps.LatLng(wp_position.coords.latitude, wp_position.coords.longitude); 
		var wpOptions = {
			zoom:19,				// 지도 zoom단계
			center:wplatlng,		//지도에서 가운데로 위치할 위도와 경도(변수) 
			mapTypeId:google.maps.MapTypeId.ROADMAP 
			};


		var wpmap = new google.maps.Map(document.getElementById("map"), wpOptions); 
		var marker = new google.maps.Marker({
			map: wpmap, 
			icon: GreenIcon,			// 마커로 사용할 이미지(변수)
			info: "말풍선",				// 말풍선 안에 들어갈 내용.
			title : "현재위치",			// 마커에 마우스 포인트를 갖다댔을 때 뜨는 타이틀.
			position: wplatlng			// 마커 표시 좌표.
			});

      
		var content = "이곳은 말풍선 테스트 하는 곳 입니다. ";		 // 말풍선 안에 들어갈 내용
        
		// 마커를 클릭했을 때의 이벤트. 말풍선 뿅~
		var infowindow = new google.maps.InfoWindow({ content: content});

		google.maps.event.addListener(marker, "click", function() {
        	infowindow.open(wpmap,marker);
        });


	}

	//위도 경도 실패시
	function errorCallback(wp_position_error) 
	{	
		// 실패 코드와 메세지 출력
		$("#map").html("error.code : "+ wp_position_error.code + " , error.message : " + wp_position_error.message);
	}

	google.maps.event.addDomListener(window, 'load', getLocation_cord);

※ 혹시 도움이 되셨다면 댓글에 한마디 남겨주세요!
작성자   비밀번호
자동글 방지     (자동글 방지 기능입니다.)
내용   댓글달기 
이메일 문의 : cak0280@nate.com  
Copyright 2000 By ENTERSOFT.KR All Rights Reserved.