一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

Google Map API更新實現用戶自定義標注坐標

演示地址: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);

map.enableDoubleClickZoom();
map.enableScrollWheelZoom();
map.enableContinuousZoom();

map.addControl(largeMapControl)
map.addControl(overviewMapControl);
map.addControl(mapTypeControl);
map.addControl(scaleControl);
};

// 創建標記
GoogleMap.createMarker = function(latlng, markerOptions){
var marker = markerOptions ? new GMarker(latlng, markerOptions) : new GMarker(latlng);
lastMarker = marker;
return marker;
};

// 自定義標記選項
/* =========================================================================================================================================================================================
參數說明:
常數:G_DEFAULT_ICON 標記使用的默認圖標。
image String 圖標的前景圖像 URL。
shadow String 圖標的陰影圖像 URL。
iconSize GSize 圖標前景圖像的像素大小。
shadowSize GSize 陰影圖像的像素大小。
iconAnchor GPoint 此圖標在地圖上的錨定點相對于圖標圖像左上角的像素坐標。
infoWindowAnchor GPoint 信息窗口在此圖標上的錨定點相對于圖標圖像左上角的像素坐標。
printImage String 打印地圖所用的前景圖標圖像的 URL。其大小必須與 image 提供的主圖標圖像的大小相同。
mozPrintImage String 用 Firefox/Mozilla 打印地圖時所用的前景圖標圖像的 URL。其大小必須與 image 提供的主圖標圖像的大小相同。
printShadow String 打印地圖時所用的陰影圖像的 URL。由于大多數瀏覽器都無法打印 PNG 圖像,所以圖像格式應該為 GIF。
transparent String 在 InterNET Explorer 中捕獲點擊事件時,所用的透明前景圖標圖像的 URL。此圖像應是具有 1% 不透明性的 24 位 PNG 格式的主圖標圖像,但其大小和形狀同主圖標相同。
imageMap Array of Number 表示圖像地圖 x/y 坐標的整數數組,用它指定瀏覽器(非 InterNET Explorer)中圖標圖像的可點擊部分。
maxHeight Integer 指定拖動標記時視覺上垂直“上升”的距離(以像素表示)。(自 2.79 開始)
dragCrossImage String 指定拖動圖標時十字交叉圖像的 URL。(自 2.79 開始)
dragCrossSize GSize 指定拖動圖標時十字交叉圖像的像素大小。(自 2.79 開始)
dragCrossAnchor GPoint 指定拖動圖標時十字交叉圖像的像素坐標偏移量(相對于 iconAnchor)。(自 2.79 開始)
========================================================================================================================================================================================= */
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
};

marker = GoogleMap.createMarker(markPoint, markOptions);
GEvent.addListener(marker, "dragstart", function(){
map.closeInfoWindow();
});
GEvent.addListener(marker, "dragend", function(){
var custPoint = marker.getPoint();
var markTip = '<div class="fgmap_markerMsg" id="cusMarkTip">';
markTip += '<h4>用戶地圖標注</h4>';
markTip += '<div id="mapTips"><p>當前經緯度:(' + custPoint.lat() + ',' + custPoint.lng() + ')<br />';
markTip += '是否將新位置設置為此商戶的默認位置?</p>';
markTip += '<div class="MDB" style="text-align:center;"><button id="MapOK" ';
marker.openInfoWindowHtml(markTip);
});
map.addOverlay(marker);
};

// 保存用戶自定義坐標
GoogleMap.MapOk = function(){
var savedPoint = lastMarker.getPoint();
var lat = savedPoint.lat(), lng = savedPoint.lng();
var markTip = document.getElementById('cusMarkTip');
markTip.innerHTML = '<h4>正在上傳您所保存的坐標信息...</h4>';
if (timer) {
clearTimeout(timer);
}
var timer = setTimeout(function(){
map.clearOverlays();
var marker = GoogleMap.createMarker(savedPoint);
if (GoogleMap.mapMsg) {
GEvent.addListener(marker, "click", function(){
var msg = '<span class="fgmap_markerMsg">', j;
msg += '<h4>' + GoogleMap.mapMsg[1][0] + '</h4>';
for (var j = 1; j < GoogleMap.mapMsg[1].length; j++) {
msg += GoogleMap.mapMsg[1][j] + "<br />";
}
msg += "</span>";
map.openInfoWindowHtml(savedPoint, msg);
});
}
map.addOverlay(marker);
map.setCenter(savedPoint);
cusLastPoint = [lat,lng];
}, 2000);
};

// 取消用戶自定義坐標操作
GoogleMap.MapCancel = function(){
map.removeOverlay(lastMarker);
map.closeInfoWindow();
};

// 通過地址獲得坐標
GoogleMap.getAddresslatlng = function(response){
var place = response.Placemark[0];
var point = new GLatLng(place.Point.coordinates[1], place.Point.coordinates[0]);
return [place.Point.coordinates[1], place.Point.coordinates[0], point, place];
};

// 標注坐標和相應的說明信息
GoogleMap.MarkerMap = function(lat, lng){
var marker = null;
var point = new GLatLng(lat, lng);
GoogleMap.Map(lat, lng);

marker = this.createMarker(point);
if (GoogleMap.mapMsg) {
GEvent.addListener(marker, "click", function(){
var msg = '<span class="fgmap_markerMsg">', j;
msg += '<h4>' + GoogleMap.mapMsg[1][0] + '</h4>';
for (var j = 1; j < GoogleMap.mapMsg[1].length; j++) {
msg += GoogleMap.mapMsg[1][j] + "<br />";
}
msg += "</span>";
map.openInfoWindowHtml(point, msg);
});
}
map.addOverlay(marker);
};

// 將查詢地址添加到地圖
GoogleMap.addAddressToMap = function(response){
map.clearOverlays();
if (!response || response.Status.code != 200) {
alert("對不起, 我們解析不到該地址的經緯度坐標!");
}
else {
var marker = null, point = GoogleMap.getAddresslatlng(response);
var address = point[3].address, lat = point[0], lng = point[1];
GoogleMap.mapMsg = (GoogleMap.mapMsg !== '' && (lastAddress === GoogleMap.mapMsg[0])) ? GoogleMap.mapMsg : [address, [point[3].address, ('經度:' + point[1]), ('緯度:' + point[0])]];
GoogleMap.MarkerMap(lat, lng);
lastPoint = [lat,lng];
}
};

// 將查詢坐標添加到地圖
GoogleMap.addPointToMap = function(cPoint){
map.clearOverlays();
var marker = null, lat = cPoint[0], lng = cPoint[1];
GoogleMap.MarkerMap(lat, lng);
lastPoint = [lat,lng];
};

// 通過地址/坐標將Marker顯示到地圖上
GoogleMap.showLocation = function(cPoint){
if (typeof cPoint === 'string') {
geocoder.getLocations(cPoint, this.addAddressToMap);
lastAddress = cPoint;
}
else{
GoogleMap.addPointToMap(cPoint);
}
};

GEvent.addListener(window, 'unload', GUnload);
}
else {
alert("對不起,您的瀏覽器不支持創建地圖!");
}
}
})();

JavaScript技術Google Map API更新實現用戶自定義標注坐標,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 人人狠狠综合久久亚洲88 | 一本久道久久综合婷婷 | 91精品国产人成网站 | 亚洲一区二区免费在线观看 | 色香影院 | www视频免费| 亚洲精品福利网站 | 亚洲免费视频网址 | 美女视频永久黄网站免费观看韩国 | 中文字幕天天躁日日躁狠狠躁97 | 伊人色综合久久成人 | 国产高清国内精品福利色噜噜 | 国产91视频免费 | 成人丝袜激情一区二区 | 久久精品国产自在一线 | 成人情趣视频无遮掩免费 | 97碰公开在线观看免费视频 | 高清视频 一区二区三区四区 | 久久成年片色大黄全免费网站 | 国产亚洲高清视频 | 久久中文网| 波多野结衣在线观看一区二区三区 | 亚洲人成伊人成综合网久久久 | 午夜大片网 | 免费的黄色片视频 | 美女视频黄是免费的 | 一区二区三区成人 | 日韩一区二区视频在线观看 | 拍真实国产伦偷精品 | 91手机在线| 色哟哟高清视频在线观看 | 色就操 | 欧美一欧美一区二三区性 | 狠狠干五月天 | 久久综合久综合久久鬼色 | 99爱视频99爱在线观看免费 | 在线观看亚洲精品国产 | 精品国产网 | 四虎永久在线精品视频免费观看 | 色婷婷色 | 国产观看精品一区二区三区 |