演示地址:http://www.yaohaixiao.com/effects/google-map.html 复制代码 代码如下: if(typeof GoogleMap === 'undefined'){ var GoogleMap = {}; } (function(){ if (!document.getElementById("fgmap")) { return false; } else { // 是否可创建Google地图控件 var isCompatible = new GBrowserIsCompatible(); if (isCompatible) { var mapContainer = document.getElementById("fgmap"); // 创建GoogleMAP地图实例 var map = new GMap2(mapContainer); // 地图默认的比例尺级别 var perviewLevel = 14; // 大的地图缩放级别控件 var largeMapControl = new GLargeMapControl(); // 地图缩略图控件 var overviewMapControl = new GOverviewMapControl(); // 比例尺控件 var scaleControl = new GScaleControl(); // 地图类形选择控件 var mapTypeControl = new GMapTypeControl(); // 地址-坐标转换器 var geocoder = new GClientGeocoder(); // 上一次的查询地址 var lastAddress = ''; // 上一次的查询坐标 var lastPoint = null; // 最后一个创建的标记控件 var lastMarker = null; // 用户标记的最后一个坐标点 var cusLastPoint = null;
GoogleMap.mapMsg = [];
// 创建地图 GoogleMap.Map = function(lat, lng){ var point = new GLatLng(lat, lng); map.addMapType(G_PHYSICAL_MAP); map.setCenter(point, perviewLevel);
// 创建标记 GoogleMap.createMarker = function(latlng, markerOptions){ var marker = markerOptions ? new GMarker(latlng, markerOptions) : new GMarker(latlng); lastMarker = marker; return marker; };
// 自定义标记选项
GoogleMap.setCustomIcon = function(IconOptions){ var myIcon = new GIcon(G_DEFAULT_ICON), i; for (i in IconOptions) { switch (i) { case 'iconSize': case 'shadowSize': case 'dragCrossSize': myIcon[i] = new GSize(IconOptions[i][0], IconOptions[i][1]); break; case 'iconAnchor': case 'infoWindowAnchor': case 'infoShadowAnchor': case 'dragCrossAnchor': myIcon.iconAnchor = new GPoint(IconOptions[i][0], IconOptions[i][1]); break; default: myIcon[i] = IconOptions[i]; break; }
} return myIcon; };
// 用户自定义标注 GoogleMap.customMarkPoint = function(){ var marker = null; var markPoint = cusLastPoint ? new GLatLng(cusLastPoint[0],cusLastPoint[1]) : new GLatLng(lastPoint[0],lastPoint[1]); var markOptions = { icon: GoogleMap.setCustomIcon({ image: 'http://www.yaohaixiao.com/effects/img/icon13.png' }), draggable: true };