前兩篇:
[javascript]google map api 與jquery結合使用(1)--控件,監聽器
[javascript]google map api 與jquery結合使用(2) --標注,浮窗
創建圖標
map.js
$(document).ready(function()


{

if (GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(36.94,106.08),4);
//創建小圖標
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);
//隨機的添加10個標記
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));
}

$(window).unload(function ()
{
$('.').unbind();
GUnload();
});
}else

{
alert('你使用的瀏覽器不支持 Google Map!');
}
});
使用小圖標的效果
使用更復雜圖標樣式
map.js
$(document).ready(function()


{

if (GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(36.94,106.08),4);
//創建一個圖標模板,指定陰影等
var baseIcon = new GIcon();
baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
//創建用指定字母作為前景圖的圖標

function createMarker(point, index)
{
// Create a lettered icon for this point using our icon class
var letter = String.fromCharCode("A".charCodeAt(0) + index);
var icon = new GIcon(baseIcon);
icon.image = "http://www.google.com/mapfiles/marker" + letter + ".png";
var marker = new GMarker(point, icon);

GEvent.addListener(marker, "click", function()
{
marker.openInfoWindowHtml("Marker <b>" + letter + "</b>");
});
return marker;
}
//隨機添加10個標記
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));
}

$(window).unload(function ()
{
$('.').unbind();
GUnload();
});
}else

{
alert('你使用的瀏覽器不支持 Google Map!');
}
});
用指定字母作為前景圖的圖標效果
在地圖上使用XML和異步請求(AJAX)
map.js
$(document).ready(function()


{

if (GBrowserIsCompatible())
{
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GOverviewMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(36.94,106.08),4);
//ajax請求

GDownloadUrl("locations.xml", function(data, responseCode)
{//回調函數
var xml = GXml.parse(data);
var markers = xml.documentElement.getElementsByTagName("marker");//解析xml,有多種方法

for (var i = 0; i < markers.length; i++)
{
var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
map.addOverlay(new GMarker(point));
}
});

$(window).unload(function ()
{
$('.').unbind();
GUnload();
});
}else

{
alert('你使用的瀏覽器不支持 Google Map!');
}
});
locations.xml
<markers>
<marker lat="39.98629852076348" lng="116.3574438359872"/>
<marker lat="29.94176113301537" lng="112.6857368551186"/>
</markers>
ajax的效果圖
對google map api的使用暫告一段落。
Let life be beautiful like summer flowers and death like autumn leaves.