var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(37.4419, -122.1419), 13);

// Create our "tiny" marker icon
var icon = new GIcon();
icon.image = "http://labs.google.com/ridefinder/images/mm_20_red.png";
icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
icon.iconSize = new GSize(12, 20);
icon.shadowSize = new GSize(22, 20);
icon.iconAnchor = new GPoint(6, 20);
icon.infoWindowAnchor = new GPoint(5, 1);

// Add 10 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 10; i++) {
  var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                          southWest.lng() + lngSpan * Math.random());
  map.addOverlay(new GMarker(point, icon));

이 예제는 새로운타입의 아이콘을 생성한다. 사용자는 아이콘이미지, 그림자이미지, 아이콘의 포인트까지 일일이 열거해야된다.

블로그 이미지

2010년1월어느날..

,
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(37.4419, -122.1419), 13);

// Our info window content
var infoTabs = [
  new GInfoWindowTab("Tab #1", "This is tab #1 content"),
  new GInfoWindowTab("Tab #2", "This is tab #2 content")
];

// Place a marker in the center of the map and open the info window
// automatically
var marker = new GMarker(map.getCenter());
GEvent.addListener(marker, "click", function() {
  marker.openInfoWindowTabsHtml(infoTabs);
});
map.addOverlay(marker);
marker.openInfoWindowTabsHtml(infoTabs);


API 버전2는 멀티말풍선을 지원하는 openInfoWindowTabs()와 GInfoWindowTab 클래스를 포함한다. 이 예제는 마커위에 멀티말풍선을 보여주는 코드이다.

형식
GInfoWindowTab(label, content)
openInfoWindowTabs(tabs, opts?)


예제보기

블로그 이미지

2010년1월어느날..

,
var map = new GMap2(document.getElementById("map"));
map
.addControl(new GSmallMapControl());
map
.addControl(new GMapTypeControl());
map
.setCenter(new GLatLng(37.4419, -122.1419), 13);

// Creates a marker at the given point with the given number label
function createMarker(point, number) {
 
var marker = new GMarker(point);
 
GEvent.addListener(marker, "click", function() {
    marker
.openInfoWindowHtml("Marker #<b>" + number + "</b>");
 
});
 
return marker;
}

// Add 10 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 10; i++) {
 
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                          southWest
.lng() + lngSpan * Math.random());
  map
.addOverlay(createMarker(point, i + 1));
}

이 예제는 각각의 마커를 클릭할 때, 각 마커별 말풍선을 보여준다.


예제보기
블로그 이미지

2010년1월어느날..

,
var map = new GMap2(document.getElementById("map"));
map
.addControl(new GSmallMapControl());
map
.addControl(new GMapTypeControl());
map
.setCenter(new GLatLng(37.4419, -122.1419), 13);

GEvent.addListener(map, "click", function(marker, point) {
 
if (marker) {
    map
.removeOverlay(marker);
 
} else {
    map
.addOverlay(new GMarker(point));
 
}
});

클릭핸들링은 새로운 메소드가 아니라 addListener와 addOverlay를 조합한것이다.
클릭이벤트는 marker에만 해당되고 GPolyline에는 해당되지 않는다.

위 예제는 맵위에 클릭했을때 클릭한 위치에 마커가 생성되고, 만약 이미 그 위치에 마커가 있을경우 마커를 없애는 코드이다.

예제보기

블로그 이미지

2010년1월어느날..

,
var map = new GMap2(document.getElementById("map"));
map
.addControl(new GSmallMapControl());
map
.addControl(new GMapTypeControl());
map
.setCenter(new GLatLng(37.4419, -122.1419), 13);

// Add 10 markers in random locations on the map
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 10; i++) {
 
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
                          southWest
.lng() + lngSpan * Math.random());
  map
.addOverlay(new GMarker(point));
}

// Add a polyline with five random points. Sort the points by
// longitude so that the line does not intersect itself.
var points = [];
for (var i = 0; i < 5; i++) {
  points
.push(new GLatLng(southWest.lat() + latSpan * Math.random(),
                          southWest
.lng() + lngSpan * Math.random()));
}
points
.sort(function(p1, p2) {
 
return p1.lng() - p2.lng();
});
map
.addOverlay(new GPolyline(points));

  이 예제는 무작위로 선택된 10개의 마커와 무작위로 선택된 5개의포인트를 연결한 선을 보여준다. GMarker의 아이콘은 다른 아이콘을 설정하지 않을경우 기본적으로 구글맵아이콘이 사용된다.

익스플러에서 맵위에 오버레이된 선을 보려면 HTML문서에 VML namespace와 CSS를 포함해야한다.


Method 설명
getBounds() 맵의 가장자리 위치를 가져온다.
getSouthWest() getBounds()로 가져온 위치에서 왼쪽아래위치를 가져온다.
getNorthEast() getBounds()로 가져온 위치에서 오른쪽위위치를 가져온다.
lng() 위치정보중 경도정보를 가져온다.
lat() 위치정보중 위도정보를 가져온다.
GMarker(point, icon?, inert?) point에 마커를 표시한다.
GPolyline(points, color?, weight?, opacity?) points배열에 들어있는 위치를 서로 연결한다.


예제보기

블로그 이미지

2010년1월어느날..

,