프로그램에 마커를 추가하는 것은 매우 쉽습니다. 이 코드를 추가 할 수 있습니다.
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
다음 필드는 특히 중요하며 마커를 만들 때 일반적으로 설정됩니다.
position
(필수)는 마커의 초기 위치를 식별하는 LatLng를 지정합니다. LatLng를 검색하는 한 가지 방법은 지오 코딩 서비스 를 사용하는 것 입니다.
map
(선택 사항) 마커를 배치 할지도를 지정합니다. 마커 생성시 맵을 지정하지 않으면 마커가 생성되지만 맵에 첨부되거나 표시되지 않습니다. 나중에 마커의 setMap()
메소드를 호출하여 마커를 추가 할 수 있습니다 .
참고 , 예에서, 제목 필드는 툴팁으로 표시됩니다 마커의 제목을 설정합니다.
여기 에서 Google API 문서를 참조 하십시오 .
이것은 하나의 마커를지도에 설정하는 완전한 예 입니다. 조심하십시오, 당신은 YOUR_API_KEY
당신의 구글 API 키로 교체해야합니다 :
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Simple markers</title>
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
function initMap() {
var myLatLng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: 'Hello World!'
});
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
이제지도에서 배열의 마커를 그리려면 다음과 같이해야합니다.
var locations = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
function initMap() {
var myLatLng = {lat: -33.90, lng: 151.16};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: myLatLng
});
var count;
for (count = 0; count < locations.length; count++) {
new google.maps.Marker({
position: new google.maps.LatLng(locations[count][1], locations[count][2]),
map: map,
title: locations[count][0]
});
}
}
이 예제는 다음과 같은 결과를 제공합니다.
핀에 infoWindow를 추가 할 수도 있습니다. 이 코드가 필요합니다.
var marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[count][1], locations[count][2]),
map: map
});
marker.info = new google.maps.InfoWindow({
content: 'Hello World!'
});
infoWindows에 대한 Google 문서를 여기 에서 가질 수 있습니다 .
이제 마커가 "clik"일 때 infoWindow를 열 수 있습니다.
var marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[count][1], locations[count][2]),
map: map
});
marker.info = new google.maps.InfoWindow({
content: locations [count][0]
});
google.maps.event.addListener(marker, 'click', function() {
// this = marker
var marker_map = this.getMap();
this.info.open(marker_map, this);
// Note: If you call open() without passing a marker, the InfoWindow will use the position specified upon construction through the InfoWindowOptions object literal.
});
참고로 , Google 개발자에서 Listener
여기 에 대한 문서를 가질 수 있습니다 .
마지막으로, 사용자가 정보창을 클릭하면 정보창을 표시 할 수 있습니다. 이것은 내 완전한 코드입니다.
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no">
<meta charset="utf-8">
<title>Info windows</title>
<style>
/* Always set the map height explicitly to define the size of the div
* element that contains the map. */
#map {
height: 100%;
}
/* Optional: Makes the sample page fill the window. */
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<div id="map"></div>
<script>
var locations = [
['Bondi Beach', -33.890542, 151.274856, 4],
['Coogee Beach', -33.923036, 151.259052, 5],
['Cronulla Beach', -34.028249, 151.157507, 3],
['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
['Maroubra Beach', -33.950198, 151.259302, 1]
];
// When the user clicks the marker, an info window opens.
function initMap() {
var myLatLng = {lat: -33.90, lng: 151.16};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center: myLatLng
});
var count=0;
for (count = 0; count < locations.length; count++) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(locations[count][1], locations[count][2]),
map: map
});
marker.info = new google.maps.InfoWindow({
content: locations [count][0]
});
google.maps.event.addListener(marker, 'click', function() {
// this = marker
var marker_map = this.getMap();
this.info.open(marker_map, this);
// Note: If you call open() without passing a marker, the InfoWindow will use the position specified upon construction through the InfoWindowOptions object literal.
});
}
}
</script>
<script async defer
src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=initMap">
</script>
</body>
</html>
일반적으로 다음과 같은 결과가 나타납니다.