`
jinxhj2003
  • 浏览: 144191 次
  • 性别: Icon_minigender_1
  • 来自: 南昌
社区版块
存档分类
最新评论

googleMap.js

阅读更多
/* 屏蔽js页面所有的错误
function killErrors() {
return true;
}
window.onerror = killErrors;
*/
window.jltourGoogleMapObject = function(){
var mapMeObj;
mapMeObj= this;
mapMeObj.map;//当前的地图地象
mapMeObj.showType ='city';//地图显示类型
mapMeObj.mapDiv='googleMap';//地图显示的div id 名字
mapMeObj.gecoder =null;//当前的地图查询对象
mapMeObj.cityName ='深圳';//当前城市的名字
mapMeObj.cityId = '70002';//城市id
mapMeObj.longtNo=114.123402;//默认显示的经度
mapMeObj.lattNo =22.542169;//默认显示的纬度
mapMeObj.baseIcon;//显示图片
mapMeObj.marker;//显示窗口对象
mapMeObj.arrayMarker;//页面上的Marker对象
mapMeObj.isAuth=false;//是否开启描点
mapMeObj.centerSize=16;//当前地图的缩放级别
mapMeObj.arrayPolygon;//页面上所有的polygon数组
mapMeObj.arrayCenterMarker;//页面上所有的polygon数组
mapMeObj.iconHere;//当前位置
mapMeObj.isClear = true;//是否清空
mapMeObj.markerMessage;//地图提示Marker对象
//初始化地图
mapMeObj.init = function (){
if (GBrowserIsCompatible()) {
mapMeObj.arrayMarker = new Array();
mapMeObj.arrayPolygon = new Array();
mapMeObj.arrayCenterMarker = new Array();
//longtNo = mapMeObj.longtNo;
        //lattNo = mapMeObj.lattNo;
        var mapElem = document.getElementById(mapMeObj.mapDiv);
mapMeObj.map = new GMap2(mapElem);
       // mapMeObj.map.addControl(new GSmallMapControl());//放大缩小  22.542089,114.1225 彭年酒店
        mapMeObj.map.addControl(new GMapTypeControl());//地图类型 地图 卫星
        mapMeObj.map.addControl(new GLargeMapControl());//放大缩小
        mapMeObj.map.addControl(new GScaleControl());//比例尺
        mapMeObj.map.enableScrollWheelZoom();  //设置地图可以由鼠标滚轮控制缩放(默认是不会)。  
        var geoPoint0= new GLatLng(mapMeObj.lattNo,mapMeObj.longtNo);//22.542169,114.123402
        //mapMeObj.map.setCenter(geoPoint0, mapMeObj.centerSize);
        mapMeObj.geocoder = new GClientGeocoder();
        mapMeObj.baseIcon = new GIcon();
mapMeObj.baseIcon.shadow = "http://www.google.com/mapfiles/shadow50.png";
mapMeObj.baseIcon.iconSize = new GSize(15, 15);
mapMeObj.baseIcon.shadowSize = new GSize(15, 15);
mapMeObj.baseIcon.iconAnchor = new GPoint(9, 34);
mapMeObj.baseIcon.infoWindowAnchor = new GPoint(9, 2);
mapMeObj.baseIcon.infoShadowAnchor = new GPoint(18, 25);
mapMeObj.iconHere = new GIcon(mapMeObj.baseIcon);
  mapMeObj.iconHere.image ="/images/googleImage/hereBg.gif";
  //var marker = new GMarker(geoPoint0,mapMeObj.iconHere);
//mapMeObj.marker =marker;
//mapMeObj.map.addOverlay(marker);//当前位置
mapMeObj.centerSize=16;//当前地图的缩放级别
//mapMeObj.putDragend(geoPoint0);//当前位置
//alert(geoPoint0.x);
}
}

mapMeObj.showAddress = function (adress){
if(isNullValue(adress)){
    return false;
    }
    mapMeObj.cityName =getCityNameByCityId(document.getElementById("city_id").value);
    if(isNullValue(mapMeObj.cityName)){
    alert("城市不能为空");
    return false;
    }
    var  adressInput =mapMeObj.cityName+"市 "+adress;
    if (mapMeObj.geocoder) {
    mapMeObj.geocoder.getLatLng(adressInput,function(point){
            if (!point) {
                alert("不能解析: " + adress);
            } else {
              mapMeObj.centerSize =13;
              mapMeObj.map.setCenter(point,mapMeObj.centerSize);
              var baseIconQuery = new GIcon();
  baseIconQuery.shadow = "http://www.google.com/mapfiles/shadow50.png";
  baseIconQuery.iconSize = new GSize(15, 15);
  baseIconQuery.shadowSize = new GSize(15, 15);
  baseIconQuery.iconAnchor = new GPoint(9, 34);
  baseIconQuery.infoWindowAnchor = new GPoint(9, 2);
  baseIconQuery.infoShadowAnchor = new GPoint(18, 25);
  baseIconQuery.dragCrossSize = new GSize(0, 0);
              var iconHere = new GIcon(baseIconQuery);
  iconHere.image ="/images/googleImage/hereSelect.gif";
  mapMeObj.clearMarker(mapMeObj.arrayMarker);
  mapMeObj.clearCenterMarker();//清除之前的Marker
              var marker = new GMarker(point,{icon: iconHere,draggable: true});
              GEvent.addListener(marker, "dragstart", function() {
            mapMeObj.map.closeInfoWindow();
        });
        GEvent.addListener(marker, "dragend", function() {
          var pointNew = marker.getPoint();
          mapMeObj.longtNo = pointNew.x;//默认显示的经度
  mapMeObj.lattNo  = pointNew.y;//默认显示的纬度
  mapMeObj.rimHotels();//查找该周边酒店
        });
              mapMeObj.map.addOverlay(marker);
              //mapMeObj.marker.openInfoWindowHtml(adress);
              mapMeObj.longtNo = point.x;//默认显示的经度
  mapMeObj.lattNo  = point.y;//默认显示的纬度
  document.getElementById('longLatId').value = point.x+","+point.y;
  mapMeObj.marker =marker;
            }
          });
      }
}

mapMeObj.putDragend = function(point){
  //alert("1");
              mapMeObj.map.setCenter(point,mapMeObj.centerSize);
              var baseIconQuery = new GIcon();
  baseIconQuery.shadow = "http://www.google.com/mapfiles/shadow50.png";
  baseIconQuery.iconSize = new GSize(15, 15);
  baseIconQuery.shadowSize = new GSize(15, 15);
  baseIconQuery.iconAnchor = new GPoint(9, 34);
  baseIconQuery.infoWindowAnchor = new GPoint(9, 2);
  baseIconQuery.infoShadowAnchor = new GPoint(18, 25);
  baseIconQuery.dragCrossSize = new GSize(0, 0);
              var iconHere = new GIcon(baseIconQuery);
  iconHere.image ="/images/googleImage/hereSelect.gif";
  mapMeObj.clearCenterMarker();//清除之前的Marker
              var marker = new GMarker(point,{icon: iconHere,draggable: true});
              GEvent.addListener(marker, "dragstart", function() {
            mapMeObj.map.closeInfoWindow();
        });
        GEvent.addListener(marker, "dragend", function() {
          var pointNew = marker.getPoint();
          mapMeObj.longtNo = pointNew.x;//默认显示的经度
  mapMeObj.lattNo  = pointNew.y;//默认显示的纬度
  mapMeObj.rimHotels();//查找该周边酒店
        });
              mapMeObj.map.addOverlay(marker);
              //mapMeObj.marker.openInfoWindowHtml(adress);
              mapMeObj.longtNo = point.x;//默认显示的经度
  mapMeObj.lattNo  = point.y;//默认显示的纬度
  document.getElementById('longLatId').value = point.x+","+point.y;
  mapMeObj.marker =marker;
}

//通过地名查找坐标
mapMeObj.getPointByAdress = function(adress){
if(isNullValue(adress)){
    return false;
    }
    mapMeObj.cityId=document.getElementById("city_id").value;
    mapMeObj.cityName =getCityNameByCityId(mapMeObj.cityId);
    if(isNullValue(mapMeObj.cityName)){
    alert("城市不能为空");
    return false;
    }
    var  adressInput =mapMeObj.cityName+"市 "+adress;
    if (mapMeObj.geocoder) {
    mapMeObj.geocoder.getLatLng(adressInput,function(point){
            if (!point) {
                alert("不能解析: " + adress);
            } else {
              mapMeObj.longtNo = point.x;//默认显示的经度
  mapMeObj.lattNo  = point.y;//默认显示的纬度
  var point = new GLatLng(point.y,point.x);
  mapMeObj.map.setCenter(point, mapMeObj.centerSize);
  mapMeObj.clearCenterMarker();//清除之前的Marker
  var marker = new GMarker(point,mapMeObj.iconHere);
  mapMeObj.map.closeInfoWindow();
              mapMeObj.map.addOverlay(marker);
              mapMeObj.marker = marker;
                }
                });
}
}
//生成marker
mapMeObj.createMarker = function(points, hnames,hotelid,ic) {
var icon = new GIcon();
    icon.image = "/images/googleImage/mm_20_yellow0.png";
    icon.shadow = "http://labs.google.com/ridefinder/images/mm_20_shadow.png";
        icon.iconSize = new GSize(15, 25);
    icon.shadowSize = new GSize(15, 25);
    icon.iconAnchor = new GPoint(15, 25);
    icon.infoWindowAnchor = new GPoint(15, 25);
//var icon = new GIcon(mapMeObj.baseIcon);
//icon.image ="/images/googleImage/lianzhong.gif";
//icon.alt=hnames;
var marker = new google.maps.LabelMarker(points,{icon: icon});
GEvent.addListener(marker, "click", function() {
mapMeObj.marker = marker;
//alert("点的酒店:"+hotelid);
if(mapMeObj.isAuth){
window.location.hash="hotel"+hotelid;
}
mapMeObj.getHotelInfoByBotelId(hotelid);//调用酒店信息方法 不弹出窗口
});
GEvent.addListener(marker, "mouseover", function() {
mapMeObj.markerMessage = new google.maps.MessagesMarker(points,{labelText:hnames});
mapMeObj.map.addOverlay(mapMeObj.markerMessage);
});
GEvent.addListener(marker, "mouseout", function() {
mapMeObj.map.removeOverlay(mapMeObj.markerMessage);//移除
//mapMeObj.map.removeControl(mapMeObj.markerMessage);
});
mapMeObj.arrayMarker.push(marker);//页面中所有的Marker
return marker;
}

//周边查找
mapMeObj.rimHotels= function(){
if(isNullValue(document.getElementById("city_id").value))
{
alert("城市为空");
return;
}
if(isNullValue(mapMeObj.longtNo) || isNullValue(mapMeObj.lattNo)){
alert("坐标为空");
return;
}
if(isNullValue(document.getElementById("range").value)){
alert("周边为空");
return;
}
commonDwrAction.getHotelsByLongLatAndLim(document.getElementById("city_id").value,mapMeObj.longtNo,mapMeObj.lattNo,document.getElementById("range").value,getHotelsByLongLatAndLimHander);
}
//请空地图上的所有的Marker
mapMeObj.clearMarker = function(arrayMarkers){
if(arrayMarkers){
var arrays = arrayMarkers;
var aLength = arrayMarkers.length;
for(var m=0;m<aLength;m++){
mapMeObj.map.removeOverlay(arrays[m]);//移除
mapMeObj.map.removeControl(arrays[m]);
}
}
}
//清除当前页面上的Marker
mapMeObj.clearCenterMarker = function (){
if(mapMeObj.marker){
mapMeObj.map.removeOverlay(mapMeObj.marker);//移除
mapMeObj.map.removeControl(mapMeObj.marker);
}
}

//放入地图中 周边
mapMeObj.inputMapLim = function(){
if(isNullValue(hotelsJosnStr)){
alert("当前暂无酒店");
return;
}
mapMeObj.clearMarker(mapMeObj.arrayMarker);//将地图上之前Marker的请空
var hotels = window.eval('('+hotelsJosnStr+')').hotels;
if(hotels){
mapMeObj.arrayMarkers = new Array();
for(var i=0;i<hotels.length;i++){
var points = new GLatLng(+hotels[i].latt,hotels[i].longt);
mapMeObj.map.addOverlay(mapMeObj.createMarker(points,hotels[i].hotelchn,hotels[i].hotelid,i+1));
}
}
}

mapMeObj.getHotelInfoByBotelId = function (hotelId){
if(isNullValue(hotelId)){
alert("酒店Id为空");
return;
}
commonDwrAction.GetHotelInfoByHotelId(hotelId,GetHotelInfoByHotelIdHander);
}

//查找该行政区的所有酒店
mapMeObj.getHotelsByZoneId = function(zoneId){
if(-1 == zoneId){
alert("请选择行政区");
return;
}
mapMeObj.centerSize = 12;//设置地图显示大小
mapMeObj.cityId=document.getElementById("city_id").value;
mapMeObj.clearMarker(mapMeObj.arrayMarker);//将地图上之前Marker的请空
//mapMeObj.clearMarker(mapMeObj.arrayCenterMarker);//请除所有的中心Marker
mapMeObj.arrayMarkers = new Array();
if(mapMeObj.isClear){
//mapMeObj.clearMarker(mapMeObj.arrayPolygon);//请除所有的及polygon;
}
//var zoneName = getZoneNameByCityIdAndZoneId(mapMeObj.cityId,zoneId);//由于要数据库中有中心,所以不用
//mapMeObj.getPointByAdress(zoneName);//查找对应的工业区及显示进地图中
  commonDwrAction.getHotelsByZoneIdAndCity(mapMeObj.cityId,zoneId,getHotelsByZoneIdHander);
}

//查找显示该商业区内的所有的酒店
mapMeObj.getHotelsByBizzId = function(bizzId){
if(-1 == bizzId){
alert("请选择行政区");
return;
}
mapMeObj.centerSize = 12;//设置地图显示大小
mapMeObj.cityId=document.getElementById("city_id").value;
mapMeObj.clearMarker(mapMeObj.arrayMarker);//将地图上之前Marker的请空
mapMeObj.clearMarker(mapMeObj.arrayCenterMarker);//请除所有的中心Marker
mapMeObj.arrayMarkers = new Array();
if(mapMeObj.isClear){
//mapMeObj.clearMarker(mapMeObj.arrayPolygon);//请除所有的及polygon;
}
//var bizName = getBizzonesByCityIdAndBizId(mapMeObj.cityId,bizzId);
//mapMeObj.getPointByAdress(bizName);//查找对应的工业区及显示进地图中
  commonDwrAction.getHotelsByBizIdAndCity(mapMeObj.cityId,bizzId,getHotelsByBizzIdHander);
}

//改变页面中的hotelid的值
mapMeObj.changHotelsInput = function (){
var hotels = window.eval('('+hotelsJosnStr+')').hotels;
var hotelids ="";
for(var i=0;i<hotels.length;i++){
hotelids = hotelids+hotels[i].hotelid+",";
}
if(!isNullValue(hotelids)){    
     hotelids=hotelids.substr(0,hotelids.length-1);
     document.getElementById('hotelkeyids').value=hotelids;   
    }
    //alert(hotelids);
}

//画圈对象
mapMeObj.polygon = function (){
var polygons = window.eval('('+zonesJosnStr+')').result;
if(polygons){
var centerZones = polygons.centerlonglat;
if(polygons.length>0){
mapMeObj.centerSize =12;
var arraysLangLat = polygons[0].longlatArray[0];
var point = new GLatLng(arraysLangLat.weidu,arraysLangLat.jingdu);
//mapMeObj.longtNo = point.x;//默认显示的经度
//mapMeObj.lattNo  = point.y;//默认显示的纬度
//mapMeObj.map.setCenter(point, mapMeObj.centerSize);
mapMeObj.clearCenterMarker();//清除之前的Marker
mapMeObj.clearMarker(mapMeObj.arrayCenterMarker);//请除所有的中心Marker
mapMeObj.clearMarker(mapMeObj.arrayPolygon);//请除所有的及polygon;
mapMeObj.arrayPolygon = new Array();
mapMeObj.putDragend(point);
//var marker = new GMarker(point,mapMeObj.iconHere);
//mapMeObj.map.closeInfoWindow();
       // mapMeObj.map.addOverlay(marker);
        //mapMeObj.marker = marker;

}
for(var zi=0;zi<polygons.length;zi++){
mapMeObj.polygonToMap(polygons[zi].longlatArray,polygons[zi].zoneid,polygons[zi].centerlonglat);
}
}
}
//按该点画图
mapMeObj.polygonToMap = function(longlatArray,zoneid,centerlonglat){
var gLatLngarray  = new Array();
var gLatLng;
//再中心点
if(centerlonglat && notEmpty(centerlonglat.weidu) && notEmpty(centerlonglat.jingdu)){
var zonesPolyMarker = new google.maps.ZonesMarker(new GLatLng(centerlonglat.weidu,centerlonglat.jingdu),{labelText:centerlonglat.zoneName});
mapMeObj.map.addOverlay(zonesPolyMarker);
mapMeObj.arrayCenterMarker.push(zonesPolyMarker);//中心点 Marker
}
for(var a=0;a<longlatArray.length;a++){
gLatLng = new GLatLng(longlatArray[a].weidu,longlatArray[a].jingdu);
gLatLngarray.push(gLatLng);
}
var polygon = new GPolygon(gLatLngarray, "#ff0000",2, 0.3, "#6666FF", 0.4);
GEvent.addListener(polygon, "mouseover", function() {
var GPolyStyleOptions = { opacity:1,color:"#CC3333",weight:2};//
polygon.setStrokeStyle(GPolyStyleOptions);
var GPolyStyleOptionss =  { opacity:0.1,color:"#CC0000",weight:2};
polygon.setFillStyle(GPolyStyleOptionss);
});
GEvent.addListener(polygon, "mouseout", function() {
var GPolyStyleOptions = { opacity:0.3,color:"#ff0000",weight:2};//
polygon.setStrokeStyle(GPolyStyleOptions);//线条
var GPolyStyleOptions =  { opacity:0.4,color:"#6666FF",weight:0.2};
polygon.setFillStyle(GPolyStyleOptions);//添充
//mapMeObj.clearMarker(mapMeObj.arrayMarker);//请除所有的及Marker;
});
GEvent.addListener(polygon, "click", function() {
mapMeObj.isClear = false;//不清空
mapMeObj.getHotelsByZoneId(zoneid);//查看该区内的所有的酒店
});
mapMeObj.arrayPolygon.push(polygon);//由于polygon 和 Marker通用,则放在一起
mapMeObj.map.addOverlay(polygon);
}
//选区域
mapMeObj.getCityPolygonLongtLatByCityIdAndType = function(cityId,types){
if(isNullValue(cityId) ||  isNullValue(types) || '-1' == cityId){
alert("城市信息和类型没有");
return;
}
commonDwrAction.getCityPolygonLongtLatByCityIdAndType(cityId,types,getCityPolygonLongtLatByCityIdAndTypeHander)
}

mapMeObj.setCenters = function (jin,wei){
if(notEmpty(jin) && notEmpty(wei)){
mapMeObj.longtNo=jin;//默认显示的经度
mapMeObj.lattNo =wei;//默认显示的纬度
mapMeObj.centerSize=15;
var geoPoint0= new GLatLng(mapMeObj.lattNo,mapMeObj.longtNo);//22.542169,114.123402
mapMeObj.map.setCenter(geoPoint0, mapMeObj.centerSize);
}
}

}

function getHotelsByBizzIdHander(resultrp){
if(isNullValue(resultrp)){
alert("暂无该酒店信息");
return;
}
hotelsJosnStr = resultrp;
//jltourGoogleMap.map.setCenter(new GLatLng(jltourGoogleMap.lattNo,jltourGoogleMap.longtNo),jltourGoogleMap.centerSize);
var centerLongLat = window.eval('('+hotelsJosnStr+')').centerLongLat;
if(centerLongLat && notEmpty(centerLongLat.latt) && notEmpty(centerLongLat.longt)){
jltourGoogleMap.lattNo = centerLongLat.latt;
jltourGoogleMap.longtNo=centerLongLat.longt;
var point  = new GLatLng(centerLongLat.latt,centerLongLat.longt);
jltourGoogleMap.map.setCenter(point,jltourGoogleMap.centerSize);
jltourGoogleMap.clearCenterMarker();//清除之前的Marker
var marker = new GMarker(point,jltourGoogleMap.iconHere);
jltourGoogleMap.map.closeInfoWindow();
jltourGoogleMap.map.addOverlay(marker);
jltourGoogleMap.marker = marker;
}
jltourGoogleMap.inputMapLim();
jltourGoogleMap.changHotelsInput();
}

function getHotelsByZoneIdHander(resultrp){
if(isNullValue(resultrp)){
alert("暂无该酒店信息");
return;
}
hotelsJosnStr = resultrp;
var centerLongLat = window.eval('('+hotelsJosnStr+')').centerLongLat;
if(centerLongLat && notEmpty(centerLongLat.latt) && notEmpty(centerLongLat.longt)){


//jltourGoogleMap.lattNo = centerLongLat.latt;
//jltourGoogleMap.longtNo=centerLongLat.longt;
var point  = new GLatLng(centerLongLat.latt,centerLongLat.longt);
//jltourGoogleMap.map.setCenter(point,jltourGoogleMap.centerSize);
jltourGoogleMap.clearCenterMarker();//清除之前的Marker
//var marker = new GMarker(point,jltourGoogleMap.iconHere);
//jltourGoogleMap.map.closeInfoWindow();
//jltourGoogleMap.map.addOverlay(marker);
//jltourGoogleMap.marker = marker;
jltourGoogleMap.putDragend(point);
}
jltourGoogleMap.inputMapLim();
jltourGoogleMap.changHotelsInput();
//document.getElementById('test').innerHTML = hotelsJosnStr;
}

function GetHotelInfoByHotelIdHander(resultrp){
if(isNullValue(resultrp)){
alert("暂无该酒店信息");
return;
}
//map.openInfoWindowHtml(point,"<span style='color:red'>这是定位的位置</span>"); 上面的文字气球形式也可以这样显示
jltourGoogleMap.marker.openInfoWindowHtml("<div style='width:350px;float:left;FONT-SIZE:13pt'>"+resultrp+"</div>");
}


function getHotelsByLongLatAndLimHander(resultrp){
if(isNullValue(resultrp)){
alert("暂无酒店");
return;
}
hotelsJosnStr = resultrp;
//document.getElementById('test').innerHTML = hotelsJosnStr;
jltourGoogleMap.centerSize = 13;
jltourGoogleMap.map.setCenter(new GLatLng(jltourGoogleMap.lattNo,jltourGoogleMap.longtNo),jltourGoogleMap.centerSize);
document.getElementById('longLatId').value = jltourGoogleMap.longtNo+","+jltourGoogleMap.lattNo;
        document.getElementById('adress').value='';
jltourGoogleMap.inputMapLim();
jltourGoogleMap.changHotelsInput();
}

function getCityPolygonLongtLatByCityIdAndTypeHander(resultrp){
if(isNullValue(resultrp)){
alert("暂无坐标信息");
return;
}
zonesJosnStr = resultrp;
jltourGoogleMap.polygon();//画图像
}


// Array的删除事件
Array.prototype.remove = function(obj) {
    for (var i = 0; i < this.length; ++i) {
        if (this[i] == obj) {
            if (i > this.length / 2) {
                for (var j = i; j < this.length - 1; ++j) {
                    this[j] = this[j + 1];
                }
                this.pop();
            }
            else {
                for (var j = i; j > 0; --j) {
                    this[j] = this[j - 1];
                }
                this.shift();
            }
            break;
        }
    }
};


google.maps.ZonesMarker = function(latlng, options){
    this.latlng = latlng;
    this.labelText = options.labelText || '';
    this.labelClass = options.labelClass || 'writeb';
    this.labelOffset = options.labelOffset || new google.maps.Size(8, -33);
    options.icon = options.icon || getTextIcon();
    google.maps.Marker.apply(this, arguments);
}

google.maps.ZonesMarker.prototype = new google.maps.Marker(new google.maps.LatLng(0, 0));
google.maps.ZonesMarker.prototype.initialize = function(map){
     google.maps.Marker.prototype.initialize.call(this, map);
     var label = document.createElement('div');
     label.className = this.labelClass;
     label.innerHTML = this.labelText;
     label.style.position = 'absolute';
     label.style.width = '40px';
     label.style.border="1px solid #6666FF";
label.style.background="#FFFFFF";
//label.style.color="#910044";
     map.getPane(G_MAP_MARKER_PANE).appendChild(label);
     this.map = map;
     this.label = label;
}

google.maps.ZonesMarker.prototype.redraw = function(force){
     google.maps.Marker.prototype.redraw.call(this, jltourGoogleMap.map);
     if(!force)
     {
         return;
     }
     var point = this.map.fromLatLngToDivPixel(this.latlng);
     var z = google.maps.Overlay.getZIndex(this.latlng.lat());
     this.label.style.left = (point.x + this.labelOffset.width-40) + 'px';
     this.label.style.top = (point.y + this.labelOffset.height-10) + 'px';
    // this.label.style.left = (point.x+ this.labelOffset.width)+ 'px';
     //this.label.style.top = (point.y+ this.labelOffset.height) + 'px';
     this.label.style.zIndex = z + 1;
}

google.maps.ZonesMarker.prototype.remove = function(){
     this.label.parentNode.removeChild(this.label);
     this.label = null;
     google.maps.Marker.prototype.remove.call(this);
}


google.maps.LabelMarker = function(latlng, options){
    this.latlng = latlng;
    this.labelText = options.labelText || '';
    this.labelClass = options.labelClass || 'writeb';
    this.labelOffset = options.labelOffset || new google.maps.Size(8, -33);
    options.icon = options.icon || getTextIcon();
    google.maps.Marker.apply(this, arguments);
}

google.maps.LabelMarker.prototype = new google.maps.Marker(new google.maps.LatLng(0, 0));
google.maps.LabelMarker.prototype.initialize = function(map){
     google.maps.Marker.prototype.initialize.call(this, map);
     var label = document.createElement('div');
     label.className = this.labelClass;
     label.innerHTML = this.labelText;
     label.style.position = 'absolute';
     label.style.width = '90px';
     //label.style.border="1px solid #FFF";
//label.style.background="#3399CC";
label.style.color="#910044";
     map.getPane(G_MAP_MARKER_PANE).appendChild(label);
     this.map = map;
     this.label = label;
}

google.maps.LabelMarker.prototype.redraw = function(force){
     google.maps.Marker.prototype.redraw.call(this, jltourGoogleMap.map);
     if(!force)
     {
         return;
     }
     var point = this.map.fromLatLngToDivPixel(this.latlng);
     var z = google.maps.Overlay.getZIndex(this.latlng.lat());
     this.label.style.left = (point.x + this.labelOffset.width-40) + 'px';
     this.label.style.top = (point.y + this.labelOffset.height-10) + 'px';
    // this.label.style.left = (point.x+ this.labelOffset.width)+ 'px';
     //this.label.style.top = (point.y+ this.labelOffset.height) + 'px';
     this.label.style.zIndex = z + 1;
}

google.maps.LabelMarker.prototype.remove = function(){
     this.label.parentNode.removeChild(this.label);
     this.label = null;
     google.maps.Marker.prototype.remove.call(this);
}

function getTextIcon(){
     var icon = new google.maps.Icon();
     //icon.image = "/images/googleImage/1.png";
     icon.iconSize = new GSize(48, 40);
     icon.iconAnchor = new GPoint(0, 40);
     icon.infoWindowAnchor = new GPoint(5, 1);
     return icon;
}



google.maps.MessagesMarker = function(latlng, options){
    this.latlng = latlng;
    this.labelText = options.labelText || '';
    this.labelClass = options.labelClass || 'writeb';
    this.labelOffset = options.labelOffset || new google.maps.Size(8, -33);
    options.icon = options.icon || getTextIcon();
    google.maps.Marker.apply(this, arguments);
}

google.maps.MessagesMarker.prototype = new google.maps.Marker(new google.maps.LatLng(0, 0));
google.maps.MessagesMarker.prototype.initialize = function(map){
     google.maps.Marker.prototype.initialize.call(this, map);
     var label = document.createElement('div');
     label.className = this.labelClass;
     label.innerHTML = this.labelText;
     label.style.position = 'absolute';
     label.style.width = '140px';
     label.style.textAlign="left";
     label.style.border="1px solid #FF9752";
label.style.background="#F8F6F3 ";
label.style.color="#910044";
     map.getPane(G_MAP_MARKER_PANE).appendChild(label);
     this.map = map;
     this.label = label;
}

google.maps.MessagesMarker.prototype.redraw = function(force){
     google.maps.Marker.prototype.redraw.call(this, jltourGoogleMap.map);
     if(!force)
     {
         return;
     }
     var point = this.map.fromLatLngToDivPixel(this.latlng);
     var z = google.maps.Overlay.getZIndex(this.latlng.lat());
     this.label.style.left = (point.x + this.labelOffset.width-8) + 'px';
     this.label.style.top = (point.y + this.labelOffset.height+10) + 'px';
    // this.label.style.left = (point.x+ this.labelOffset.width)+ 'px';
     //this.label.style.top = (point.y+ this.labelOffset.height) + 'px';
     this.label.style.zIndex = z + 1;
}

google.maps.MessagesMarker.prototype.remove = function(){
     this.label.parentNode.removeChild(this.label);
     this.label = null;
     google.maps.Marker.prototype.remove.call(this);
}
分享到:
评论
1 楼 a276664990 2011-02-21  
这玩意怎么使用?

相关推荐

    googlemap 地图功能

    地图功能 就是一个javascript的接口,他们网站上给出事例,你按照他们给出的方法引入js文件,再调用js函数就实现了,很简单的,一看就明白。 如果看不明白建议去javascript版块询问

    google_maps.js:一个使用 Google Maps API 的简单 JavaScript 库

    一个使用谷歌地图的简单 JavaScript 库。 特征 - Map - Geocoder - InfoWindow - Marker - Markers 版本 切换分支菜单以获取当前版本。 用 在您的 html 文件中加载脚本 google_maps.js 或 google_maps.min.js。 ...

    How To Feed Mysql Data Into Google Map.zip

    JavaScript

    editorjs-googlemap:Editor.js 谷歌地图内嵌工具

    editorjs-googlemap Editor.js 谷歌地图内嵌工具特征允许在您的文章中添加谷歌地图预览。安装通过 NPM 安装获取包裹npm i --save-dev editorjs-googlemap 在您的应用程序中包含模块 const GoogleMap = require ( '...

    googlemap 支持 vs2008 中文智能感知

    /// &lt;reference path="GoogleMap_AutoComplete.js" /&gt; 就可以智能感知了,具体效果图请参考我的博客 具体效果图请参考我的博客 妈的,公司领导他妈的变态,连csdn 的 blog 都封了,用代理上起也慢得要死,晚上再贴...

    Aspnet-ASP.NET-C-and-Google-Map.zip

    Aspnet-ASP.NET-C-and-Google-Map.zip,asp.net c和google map solved页未加载asp.net-c-and-google-map,asp.net是一个开源的web框架,用于使用.net构建现代web应用和服务。asp.net创建基于html5、css和javascript的...

    googlemap js v3 gmap

    写了很多关于googlemap js v3的示例,仅供参考

    3.(leaflet篇)leaflet接入高德、openstreetmap、google地图.zip

    下载如有问题,可私信博主。下载前建议先查看博客内容,其地址为:https://blog.csdn.net/QQ98281642/article/details/116912862

    mfc中嵌入google map

    mfc界面中嵌入google map.通过mfc调用javascript来对地图进行交互。

    google map研究要点.doc

    google map 研究要点 想要用Google地图,首先就是要研究Google map API。Google map API是以JavaScript 形式对外开发的,允许您在网页中嵌入 Google 地图。

    google map实例

    一个google map的js 介绍如何初始化google map

    map.js:轻松绘制谷歌地图

    #map.js 轻松绘制谷歌地图。 无需包含 Google Maps API,插件会自动包含它。 ##依赖 jQuery 1.4+ ##Functions drawMap : 在指定位置显示地址。 loadMarkers :显示地图中的标记列表。 getDirections :显示从一...

    Node.js-GoogleMapsAPIWeb服务的一个Node.js客户端库

    Google Maps API Web 服务的一个Node.js客户端库

    最实用的google map apiJavascript代码

    最简单也是最实用的google map 在页面中调用google map可以自己给定地址,并且含有放大、缩小控件

    google.rar_initmap.js

    一个简单的googlemap查询实例,很不错的,可以参考

    Js仿Google map

    使用Javascript编写的google map(IE下通过),图片是从google上提取的,提取程序在包里。

    Google map 轨迹回放

    利用google map实现轨迹回放利用google map实现轨迹回放

    ASP.NET页面中使用Google Map

    简介 &lt;br&gt;很多人都知道Google Map,其实,Google为我们自己开发应用程序提供了丰富的API,我们只要具备一些JavaScript的知识,就完全可以利用它们。但是,对于我来说,在ASP.NET页面中使用JavaScript来调用Google...

    google的压缩JS工具

    只有一个Jar包,然后敲命令,后来感觉敲命令比较麻烦,就用Ant构建了下,支持多个不同目录下的JS压缩到一个JS文件中,还支持批处理分别压缩,挺方便的。

Global site tag (gtag.js) - Google Analytics