天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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更新實現用戶自定義標注坐標,轉載需保留來源!

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

主站蜘蛛池模板: 亚洲视频在线观看不卡 | 国产精品高清免费网站 | 中文字幕在线视频在线看 | 91久久偷偷做嫩草影院免 | 亚洲成A人片在线观看中文不卡 | 欧美一区二区激情视频 | 男人插曲女人身体视频 | 亚洲欧美免费无码专区 | 双腿被绑成M型调教PLAY照片 | 国产亚洲欧美日韩综合综合二区 | 成人片在线播放 | 国产精品久久久久久久久免费下载 | 999久久久无码国产精蜜柚 | 越南女子杂交内射BBWXZ | 国产在线视频分类精品 | 一区二区乱子伦在线播放 | www免费看.男人的天堂 | 国产精品在线手机视频 | 甜性涩爱dvd| 国产视频www | 国产精品一区二区AV白丝在线 | 妇少水多18P蜜泬17P亚洲乱 | 欧美久久无码AV麻豆 | 日韩欧美一区二区三区免费看 | 蜜臀AV人妻久久无码精品麻豆 | 国产婷婷色综合AV蜜臀AV | 双性人皇上被c到哭 | 国产a级黄色毛片 | 97夜夜澡人人爽人人模人人喊 | 老板揉搓秘书丰满大乳 | 国产成人在线免费 | 亚洲黄色录像片 | 岛国大片在线观看完整版 | 差差差差差差差差免费观看 | 熟女久久久久久久久久久 | 亚洲大片免费看 | 神马伦理2019影院不卡片 | 成年私人影院网站在线看 | 香蕉精品国产自在现线拍 | 欧美色妞AV重囗味视频 | 久久国语露脸精品国产 |