window.DCI=new function(){this.applyStyles=function(c,e){for(var b in e){c.style[b]=e[b]}};this.imgAlpha=function(b,c){var e=DCI.browser.version;if(DCI.browser.msie&&(e>5.5&&e<7)){var c=c||(b.className.toLowerCase().indexOf("scale")>=0)?"scale":"image";b.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+b.src.replace("%23","%2523").replace("'","%27")+"', sizingMethod='"+c+"')";b.src=this.getDCILocation()+"DCI/images/blank.gif"}};this.getOffset=function(c){var b=y=0;while(c){b+=c.offsetLeft;y+=c.offsetTop;c=c.offsetParent}return new DPoint(b,y)};this.getQueryObject=function(e){var k={};if(!e){var g=location.search}else{var g=e}var b=g.indexOf("?");if(b>-1){g=g.substr(b+1);var c=g.split("&");for(var f=0;f<c.length;f++){var h=c[f];var j=h.split("=");if(j.length=2){k[j[0]]=j[1]}}}return k};this.check=function(f,h,c){c=this.extend({interval:100},c);var e=setInterval(b,c.interval);var g=1;function b(){if(typeof(f)!="undefined"){h();clearInterval(e);e=null}}return e};this.clearCheck=function(b){clearInterval(b);b=null};var a=navigator.userAgent.toLowerCase();this.browser={version:parseFloat((a.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[])[1]),safari:/webkit/.test(a),opera:/opera/.test(a),msie:/msie/.test(a)&&!/opera/.test(a),mozilla:/mozilla/.test(a)&&!/(compatible|webkit)/.test(a),chrome:/chrome/.test(a),unix:/x11/.test(a)||/unix/.test(a)};this.each=function(f,e){for(var b=0;b<f.length;b++){var c=e(f[b],b);if(c){return}else{continue}}};this.contains=function(g,e){var c=false;for(var b=0;b<g.length;b++){var f=g[b];if(f==e){c=true}}return c};this.diff=function(g,e){var b=new Array();for(var c=0;c<g.length;c++){var f=g[c];if(f!=e){b.push(f)}}return b};this.distinct=function(e){var c=this;var b=new Array();this.each(e,function(g,f){if(!c.contains(b,g)){b.push(g)}});return b};this.getDCILocation=function(){var f="";var j="DCI/dci.js";var c=document.getElementsByTagName("script");for(var g=0,b=c.length;g<b;g++){var k=c[g].getAttribute("src");if(k){var e=k.lastIndexOf(j);var h=k.lastIndexOf("?");if(h<0){h=k.length}if((e>-1)&&(e+j.length==h)){f=k.slice(0,h-j.length);break}}}return f};this.getUserLocation=function(b){var f=location.host;var e=location.protocol;var c=e+"//"+f;if(b){c+="/"+b}return c};this.getLength=function(e){var b=0;if(e==""){return 0}for(var c=0;c<e.length;c++){if(e.substr(c,1).charCodeAt(0)>255){b=b+2}else{b++}}return b};this.extend=function(b,g){b=b||{};if(g){for(var f in g){var e=g[f];if(e!==undefined){b[f]=e}}var c=typeof window.Event=="function"&&g instanceof window.Event;if(!c&&g.hasOwnProperty&&g.hasOwnProperty("toString")){b.toString=g.toString}}return b};this.addScript=function(j){var l=DCI.getDCILocation();var e=(DCI.browser.msie||DCI.browser.safari);var k=new Array();k=k.concat(j);var b=[];for(var c=0,g=k.length;c<g;c++){if(e){b[c]="<script src='"+l+k[c]+"' charset='UTF-8'><\/script>"}else{var m=document.createElement("script");m.src=l+k[c];m.setAttribute("charset","UTF-8");var f=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;f.appendChild(m)}}if(e){document.write(b.join(""))}};this.addCss=function(j){var k=DCI.getDCILocation();var e=(DCI.browser.msie||DCI.browser.safari);var l=new Array();l=l.concat(j);var b=[];for(var c=0,g=l.length;c<g;c++){if(e){b[c]="<link type='text/css' rel='stylesheet' href='"+k+l[c]+"' chatset='UTF-8'></link>"}else{var m=document.createElement("link");m.setAttribute("charset","UTF-8");m.setAttribute("type","text/css");m.setAttribute("rel","stylesheet");m.setAttribute("href",k+l[c]);var f=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;f.appendChild(m)}}if(e){document.write(b.join(""))}};this.encode=function(f,e){var k="";var h=new Object();for(var c in f){var b=true;for(var g in h){if(c==g&&(typeof h[g]=="function")){b=false;break}}if(b){var i=f[c]||f[c]==0?f[c]:"";i=e?encodeURI(i):i;var j=c;k+=j+"="+i+"&"}else{continue}}if(k.length>0){k=k.substring(0,k.length-1)}return k}};var fileMaps={"DCI.Service.Bus":["DCI/Service/Bus.js"],"DCI.Service.POI":["DCI/Service/POI.js"],"DCI.Service.Nav":["DCI/Service/Nav.js"],"DCI.Service":["DCI/Service/Bus.js","DCI/Service/POI.js","DCI/Service/Nav.js"],"DCI.Base":["DCI/config.js","DCI/Base/Types.js","DCI/Base/Ajax.js","DCI/Base/DOM.js","DCI/Base/Document.js","DCI/Base/Event.js","DCI/Base/DragObject.js"],"DCI.Maps":["DCI/Maps/Types.js","DCI/Maps/MapType.js","DCI/Maps/Overlay.js","DCI/Maps/Icon.js","DCI/Maps/Math.js","DCI/Maps/Graphic.js","DCI/Maps/Polyline.js","DCI/Maps/Polygon.js","DCI/Maps/Rect.js","DCI/Maps/Circle.js","DCI/Maps/Ellipse.js","DCI/Maps/Popup.js","DCI/Maps/Map.js","DCI/Maps/Control.js","DCI/Maps/PopMenu.js","DCI/Maps/Switcher.js","DCI/Maps/Title.js","DCI/Maps/LevelControl.js","DCI/Maps/CopyrightControl.js","DCI/Maps/ScaleControl.js","DCI/Maps/Eagleeye.js"]};window._import=function(a){if(!a){alert("参数错误：未填写需要导入的类名。")}var e=a.split(";");for(var b=0;b<e.length;b++){var c=fileMaps[e[b]];if(c){DCI.addScript(c)}}};window._package=function(path){var names=path.split(".");var parentName="window";var isQualified=true;for(var i=0;i<names.length;i++){if(!names[i]){isQualified=false}}if(!isQualified){throw new Error("调用_package时，包名不符合规范，未创建成功。");return}for(var i=0;i<names.length;i++){var name=names[i];parentName=parentName+"."+name;var stmt="if(!"+parentName+"){"+parentName+"=new Object();}";eval(stmt)}};(function(){_package("DCI.Service");_package("DCI.Pojo");_package("DCI.Maps");_package("DCI.Types");DCI.addCss(["DCI/css/maps.css"]);DCI.Service.Bus=function(){var flag_id=false;var segmentTags=["startName","endName","passDepotName","busName","driverLength","footLength","passDepotCount","coordinateList"];var defaultTags=["line_id","name","length","key_name","front_name","terminal_name","start_time","end_time","company","basic_price","total_price"];var processBusRouteXML=function(data,exts){var callback=exts[1];var params=exts[0];var routes=new Array();DCI.dom(data).find("bus").each(function(){var route=new DCI.Pojo.BusRoute();route.footEndLength=DCI.dom(this).find("footEndLength").text();route.bounds=DCI.dom(this).find("bounds").text();route.startLonLat=new DLonLat(params.x1,params.y1);route.endLonLat=new DLonLat(params.x2,params.y2);DCI.dom(this).find("segmentList").each(function(){route.segmentList=[];DCI.dom(this).find("segment").each(function(){var segment=new DCI.Pojo.BusSegment();for(var i=0;i<segmentTags.length;i++){var tagname=segmentTags[i];segment[tagname]=DCI.dom(this).find(tagname).text()}route.segmentList.push(segment)})});routes.push(route)});callback(routes,data)};var processXML=function(data,exts){var callback=exts[1];var tags=exts[2]||defaultTags;var buses=new Array();DCI.dom(data).find("bus").each(function(){var bus=new DCI.Pojo.Bus();for(var i=0;i<tags.length;i++){var tagName=tags[i];if(!tagName){continue}bus[tagName]=DCI.dom(this).find(tagName).text()}buses.push(bus)});if(flag_id&&buses.length>0){var b=buses[0]}else{var b=buses}flag_id=false;callback(b,data)};this.getBusRoutes=function(params,callback,tags){var url=DCI.config.BUS_Routes;var p={};if(!(params.x1)||!(params.y1)){alert("参数错误:params参数中必须包含x1属性和y1属性，此参数为必填参数，否则将不能进行查询。");return}if(!(params.x2)||!(params.y2)){alert("参数错误:params参数中必须包含x2属性和y2属性，此参数为必填参数，否则将不能进行查询。");return}p.x1=params.x1;p.y1=params.y1;p.x2=params.x2;p.y2=params.y2;p.routeType=params.routeType||0;DCI.ajax.get(url,p,processBusRouteXML,{dataType:"xml",exts:arguments})};this.getByName=function(params,callback,tags){var url=DCI.config.BUS_ByName;if(!(params.busName)){alert("参数错误:params参数中必须包含busname属性，此参数为必填参数，否则将不能进行查询。");return}var p=DCI.extend({resData:0,number:10},params);DCI.ajax.get(url,p,processXML,{dataType:"xml",exts:arguments})};this.getById=function(params,callback,tags){var url=DCI.config.BUS_ByID;var p={};if(!(params.ids)){alert("参数错误:params参数中必须包含ids属性，此参数为必填参数，否则将不能进行查询。");return}p.ids=params.ids;flag_id=true;DCI.ajax.get(url,p,processXML,{dataType:"xml",exts:arguments})};this.getByStation=function(params,callback,tags){var url=DCI.config.BUS_BySation;if(!(params.stationName)){alert("参数错误:params参数中必须包含stationName属性，此参数为必填参数，否则将不能进行查询。");return}var p=DCI.extend({resData:0,number:10},params);DCI.ajax.get(url,p,processXML,{dataType:"xml",exts:arguments})};this.ClassName="DCI.Service.Bus"};DBus=DCI.Service.Bus;DCI.Pojo.BusRoute=function(){this.startLonLat=null;this.endLonLat=null;this.getBusOfNames=function(){var bus_names=new Array();for(var i=0;i<this.segmentList.length;i++){var bs=this.segmentList[i].busName;bus_names.push(bs.substring(0,bs.indexOf("(")))}return bus_names};this.getCoordinateOfList=function(){var c_a=new Array();var pre_coord=this.startLonLat.toString();for(var i=0;i<this.segmentList.length;i++){var coord=this.segmentList[i].coordinateList;var t_coords=coord.split(",");var footLength=new Number(this.segmentList[i].footLength);var foot_coord="";if(footLength>0){foot_coord=pre_coord+","+t_coords[0]+","+t_coords[1]}pre_coord=t_coords[t_coords.length-2]+","+t_coords[t_coords.length-1];if(foot_coord){c_a.push({coordinate:foot_coord,isWalk:true})}c_a.push({coordinate:coord,isBus:true})}c_a.push({coordinate:pre_coord+","+this.endLonLat.toString(),isWalk:true});return c_a};this.getTotalLength=function(unit){var totalLength=0;for(var i=0;i<this.segmentList.length;i++){totalLength+=Number(this.segmentList[i].driverLength)+Number(this.segmentList[i].footLength)}totalLength=parseInt(totalLength)+parseInt(this.footEndLength);totalLength=unit=="k"?(totalLength/1000):totalLength;return totalLength};this.ClassName="DCI.Pojo.BusRoute"};DCI.Pojo.BusSegment=function(){this.getPassStation=function(){var stations=[];var pn=this.passDepotName;if(pn){stations=pn.split(" ")}return stations};this.getCoordinateListOfLonLats=function(){var array=new Array();var coord=this.coordinateList;var coords=coord.split(",");if(coords.length%2!=0){return array}for(var i=0;i<coords.length;i+=2){array.push(new DLonLat(coords[i],coords[i+1]))}return array};this.ClassName="DCI.Pojo.BusSegment"};DCI.Pojo.Bus=function(){this.footEndLength;this.bounds;this.getStation=function(attributeNames){var stationArray=void (0);if(this.stationdes){stationArray=processXML(this.stationdes,attributeNames)}return stationArray};this.getTime=function(){var st=this.start_time;var se=this.end_time;if(st){var st_h=st.substr(0,2);var st_m=st.substr(2,2);var st_str=st_h+":"+st_m}else{var st_str=""}if(se){var se_h=se.substr(0,2);var se_m=se.substr(2,2);var se_str=se_h+":"+se_m}else{var se_str=""}var t=st_str+"-"+se_str;return t};var processXML=function(xmldata,attributeNames){var stationArray=new Array();DCI.dom(xmldata).find("STATION").each(function(){var station=new DCI.Pojo.Station();DCI.dom(this).find("DATA").each(function(){for(var i=0;i<attributeNames.length;i++){if(DCI.dom(this).attribute("NAME")==attributeNames[i]){station[attributeNames[i]]=DCI.dom(this).text()}}});stationArray.push(station)});return stationArray};this.ClassName="DCI.Pojo.Bus"};DCI.Pojo.Station=function(){this.ClassName="DCI.Pojo.Station"};DCI.Service.POI=function(m){var model=m||void (0);var $this=this;var defaultTags=["address","name","type","timestamp","match","url","citycode","x","y","xml","distance","pguid","srctype","gridcode","tel","buscode","imageid","linkid","drivedistance"];var rootTags=["count","total"];var processXML=function(data,exts){var tags=exts?exts[2]:defaultTags;var callback=exts[1];var p=new Object();var pa=new Array();var cenpoi=new DCI.Pojo.POI();var d=DCI.dom(data);for(var i=0;i<rootTags.length;i++){var t=rootTags[i];p[t]=d.find(t).text()}d.find("poi").each(function(){var poi=new DCI.Pojo.POI();for(var i=0;i<tags.length;i++){var tagName=tags[i];poi[tagName]=DCI.dom(this).find(tagName).text()}pa.push(poi)});var dom=d.find("cenpoi").dom;if(dom&&dom.xml!=""){d.find("cenpoi").each(function(){for(var i=0;i<tags.length;i++){var tagName=tags[i];cenpoi[tagName]=DCI.dom(this).find(tagName).text()}});p.cenpoi=cenpoi}p.pois=pa;callback(p,data)};var processTip=function(data,callback){var pa=new Array();pa=data.split(",");pa.splice(pa.length-1,1);callback(pa,data)};this.getByName=function(params,callback,tags){var url=model?DCI.config.ABC_ByName:DCI.config.POI_ByName;if((!(params.searchName)&&params.searchName!=0)&&!(params.searchType)){alert("参数错误:params参数中必须包含searchName属性，此参数为必填参数，否则将不能进行查询。");return}if(!callback){alert("参数错误:callback参数没有设置，此参数为必填参数，否则将不能进行查询。")}if(!(typeof callback=="function")){alert("参数错误:callback必须是回调函数。")}var pms={number:10,pageNum:1};DCI.extend(pms,params);if(model){pms.batch=params.pageNum;pms.pageNum=1}DCI.ajax.get(url,pms,processXML,{dataType:"xml",exts:arguments})};this.getByPoint=function(params,callback,tags){var url=model?DCI.config.ABC_ByPoint:DCI.config.POI_ByPoint;if(!(params.x)||!(params.y)){alert("参数错误:params参数中必须包含x属性和y属性，此参数为必填参数，否则将不能进行查询。");return}if(!(params.range)&&params.range!=0){alert("参数错误:params参数中必须包含range属性,此参数为必填参数，否则将不能进行查询。");return}if(!callback){alert("参数错误:callback参数没有设置，此参数为必填参数。")}if(!(typeof callback=="function")){alert("参数错误:callback必须是回调函数。")}var pms={number:10,pageNum:1,batch:1};DCI.extend(pms,params);if(model){pms.cenX=params.x;pms.cenY=params.y;pms.batch=params.pageNum;pms.pageNum=1;delete pms.x;delete pms.y}DCI.ajax.get(url,pms,processXML,{dataType:"xml",exts:arguments})};this.getByCenName=function(params,callback,tags){var url=model?DCI.config.ABC_ByCenName:DCI.config.POI_ByCenName;if(!(params.cenName)&&params.cenName!=0){alert("参数错误:params参数中必须包含cenname属性，此参数为必填参数，否则将不能进行查询。");return}if(!(params.range)&&params.range!=0){alert("参数错误:params参数中必须包含range属性，此参数为必填参数需正确填写，否则将不能进行查询。");return}if(!callback){alert("参数错误:callback参数没有设置，此参数为必填参数。")}if(!(typeof callback=="function")){alert("参数错误:callback必须是回调函数。")}var pms={number:10,pageNum:1,batch:1};DCI.extend(pms,params);if(model){pms.batch=params.pageNum;pms.pageNum=1}DCI.ajax.get(url,pms,processXML,{dataType:"xml",exts:arguments})};this.getTip=function(params,callback){var url=model?DCI.config.ABC_Tip:DCI.config.POI_Tip;if(!(params.name)&&params.name!=0){alert("参数错误:params参数中必须包含name属性，此参数为必填参数，否则将不能进行查询。");return}if(!callback){alert("参数错误:callback参数没有设置，此参数为必填参数。")}if(!(typeof callback=="function")){alert("参数错误:callback必须是回调函数。")}var pms={type:1};DCI.extend(pms,params);DCI.ajax.get(url,pms,processTip,{dataType:"text",exts:callback})};this.getDirectory=function(callback){var url=DCI.config.POI_Direcotry;DCI.ajax.get(url,processPopRouteXML,{dataType:"xml",exts:callback})};var processPopRouteXML=function(data,callback){var root=new DCI.Pojo.Catalog("全部",void (0),0);var firstNodes=DCI.dom(data).getChildNodes();DCI.each(firstNodes,function(f_node,i){var f_catalog=new DCI.Pojo.Catalog(f_node.attribute("name"),root,1);root.append(f_catalog);var secondNodes=DCI.dom(f_node.dom).getsecondNodes();DCI.each(secondNodes,function(s_node,i){var s_catalog=new DCI.Pojo.Catalog(s_node.attribute("name"),f_catalog,2);f_catalog.append(s_catalog);var threeNodes=DCI.dom(s_node.dom).getsecondNodes();DCI.each(threeNodes,function(t_node,i){var t_catalog=new DCI.Pojo.Catalog(t_node.attribute("name"),s_catalog,3);s_catalog.append(t_catalog)})})});callback(root,data)};this.ClassName="DCI.Service.POI"};DPOI=DCI.Service.POI;DCI.Pojo.Catalog=function(name,parentCatalog,depth,array){this.depth=depth||0;this.name=name||"";this.parentCatalog=parentCatalog||void (0);this.catalogs=array||new Array();var keyMap={};this.append=function(catalog){if(!catalog){return}keyMap[catalog.name]=catalog;this.catalogs.push(catalog)};this.find=function(name){return keyMap[name]}};DCI.Pojo.POI=function(){this.x="";this.y="";this.name="";this.address="";this.clone=function(){var p=new DCI.Pojo.POI();DCI.extend(p,this);return p};this.ClassName="DCI.Pojo.POI"};DCI.Service.Nav=function(){var segmentTags=["roadLength","grade","direction","roadName","driveTime","action","accessorialInfo","textInfo","coor"];var routeTags=["bounds","coors","count"];var processNavRouteXML=function(data,exts){var callback=exts[1];var route=new DCI.Pojo.NavRoute();for(var i=0;i<routeTags.length;i++){var tagName=routeTags[i];route[tagName]=DCI.dom(data).find(tagName).text()}DCI.dom(data).find("segmengList").each(function(){DCI.dom(this).find("segment").each(function(){var segment=new DCI.Pojo.NavSegment();for(var i=0;i<segmentTags.length;i++){var tagname=segmentTags[i];segment[tagname]=DCI.dom(this).find(tagname).text()}route.segmentList.push(segment)})});callback(route,data)};this.getNavRoute=function(params,callback,tags){var url=DCI.config.NAV_Route;var p={};if(!(params.x1)||!(params.y1)){alert("参数错误:params参数中必须包含x1属性和y1属性，此参数为必填参数，否则将不能进行查询。");return}if(!(params.x2)||!(params.y2)){alert("参数错误:params参数中必须包含x2属性和y2属性，此参数为必填参数，否则将不能进行查询。");return}p.x1=params.x1;p.y1=params.y1;p.x2=params.x2;p.y2=params.y2;p.routeType=params.routeType||0;DCI.ajax.get(url,p,processNavRouteXML,{dataType:"xml",exts:arguments})};this.ClassName="DCI.Service.Nav"};DNav=DCI.Service.Nav;DCI.Pojo.NavRoute=function(){this.bounds;this.coors;this.segmentList=new Array();this.getTotalLength=function(){var totalLength=0;for(var i=0;i<this.segmentList.length;i++){totalLength+=parseInt(this.segmentList[i].roadLength)}return totalLength};this.getTotalTime=function(){var totalTime=0;for(var i=0;i<this.segmentList.length;i++){totalTime+=parseInt(this.segmentList[i].driveTime)}return totalTime};this.ClassName="DCI.Pojo.NavRoute"};DCI.Pojo.NavSegment=function(){this.ClassName="DCI.Pojo.NavSegment"};_package("DCI.config");try{DCI.ApplicationName=_applicationName;}catch(e){DCI.ApplicationName="";}DCI.UserLocationURL=DCI.getUserLocation(DCI.ApplicationName);DCI.config.POI_ByName=DCI.UserLocationURL+"/poi?request=getPoiByKeyword";DCI.config.POI_ByPoint=DCI.UserLocationURL+"/poi?request=getNearPoiXY";DCI.config.POI_ByCenName=DCI.UserLocationURL+"/poi?request=getNearPoi";DCI.config.POI_Tip=DCI.UserLocationURL+"/poi?config=TIP";DCI.config.POI_Direcotry=DCI.UserLocationURL+"/poi?request=getPOISearchType";DCI.config.ABC_ByName=DCI.UserLocationURL+"/abc?config=BPSN";DCI.config.ABC_ByPoint=DCI.UserLocationURL+"/abc?config=BPLSBXY";DCI.config.ABC_ByCenName=DCI.UserLocationURL+"/abc?config=BPLSBN";DCI.config.ABC_Tip=DCI.UserLocationURL+"/abc?config=TIP";DCI.config.BUS_Routes=DCI.UserLocationURL+"/bus?config=BR&ver=2.0&cityCode=010";DCI.config.BUS_ByName=DCI.UserLocationURL+"/bus?config=BusLine&cityCode=010";DCI.config.BUS_ByID=DCI.UserLocationURL+"/bus?config=BusLine&cityCode=010";DCI.config.BUS_BySation=DCI.UserLocationURL+"/bus?config=BusLine&cityCode=010";DCI.config.NAV_Route=DCI.UserLocationURL+"/nav?config=R&ver=2.0";DCI.Types.Size=function(width,height){this.width=width?parseInt(width):0;this.height=height?parseInt(height):0;this.toString=function(){return this.width+","+this.height};this.getWidth=function(unit){unit=unit||"";return unit?this.width+unit:this.width};this.getHeight=function(unit){unit=unit||"";return unit?this.height+unit:this.height};this.clone=function(){return new DSize(this.width,this.height)};this.ClassName="DCI.Types.Size"};DSize=DCI.Types.Size;DCI.Types.Point=function(x,y){this.x=x||0;this.y=y||0;this.toString=function(){return this.x+","+this.y};this.ClassName="DCI.Types.Point"};DPoint=DCI.Types.Point;DCI.Types.Point.getDistanceOfTwo=function(pt1,pt2){return Math.sqrt((Number(pt1.x)-Number(pt2.x))*(Number(pt1.x)-Number(pt2.x))+(Number(pt1.y)-Number(pt2.y))*(Number(pt1.y)-Number(pt2.y)))};D_DEFAULT_SIZE=new DSize();D_DEFAULT_POINT=new DPoint();DCI.ajax=new function(){this.get=function(url,params,callback,options){var argsLength=arguments.length;options=options||{};if(typeof params=="function"){options=callback;callback=params}else{var strparams="";if(!(typeof params=="string")){strparams=DCI.encode(params)}else{strparams=params}if(url.charAt(url.length-1)=="?"){url+=strparams}else{if(url.indexOf("?")==-1){url+="?"+strparams}else{if(url.charAt(url.length-1)=="&"){url+=strparams}else{url+="&"+strparams}}}}var dataType=options.dataType||"text";var sync=options.sync||true;var exts=options.exts||void (0);var xmlHttp=this.create();xmlHttp.open("GET",url,sync);xmlHttp.setRequestHeader("Content-type","application/x-www-form-urlencoded;charset=UTF-8");xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){if(!(dataType=="text")){callback(xmlHttp.responseText,exts)}else{callback(xmlHttp.responseXML,exts)}}else{var message="DCI.Ajax.get方法Ajax请求失败。\n";message+="Http Status "+xmlHttp.status+" "+xmlHttp.statusText;message+="  \n URL:"+url;alert(message)}}};xmlHttp.send(null)};this.post=function(url,params,callback,options){var dataType=options.dataType||"text";var sync=options.sync||true;var strparams="";try{for(var p in params){strparams+=p+"="+params[p]+"&"}}catch(e){strparams+="&"}if(url.charAt(url.length-1)=="&"){url=url.substring(0,url.length-1)}strparams=strparams.substring(0,strparams.length-1);var tarpostUrl=url;var xmlHttp=DCI.Ajax.create();var ajaxcallback=callback;xmlHttp.open("POST",tarpostUrl,true);xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){if(xmlHttp.status==200){if(dataType=="text"){ajaxcallback(xmlHttp.responseText)}else{ajaxcallback(xmlHttp.responseXML)}}else{alert("xmlHttp is denied")}}};xmlHttp.send(strparams)};this.create=function(){var xmlHttp=window.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest();if(xmlHttp.overrideMimeType){xmlHttp.overrideMimeType("text/xml")}if(DCI.firefox){try{netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead")}catch(e){alert("对不起，，请在地址栏内输入 about:config,然后将项 signed.applets.codebase_principal_support 值该为true")}}if(!xmlHttp){alert("对不起，您的浏览器不支持XMLHttpRequest对象，不能正常使用本网站！");window.opener="ParentWindow";window.close();return xmlHttp}else{return xmlHttp}}};DCI.send=function(method,url,params,callback,options){if(method.toUpperCase()=="GET"){DCI.ajax.get(url,params,callback,options)}else{if(method.toUpperCase()=="POST"){DCI.ajax.post(url,params,callback,options)}else{throw new Error("调用send时，method参数的值不支持。")}}};DCI.DOM=function(xmlData){this.dom=DCI.DOM.create(xmlData);this.getTagName=function(){var tagName=this.dom.tagName;return tagName||""};this.getSiblings=function(){var nodes=[];var recursion=function(n){nodes.push(new DCI.DOM(n));if(n.nextSibling){recursion(n.nextSibling)}};recursion(this.dom);return nodes};this.getChildNodes=function(){var nodes=[];var recursion=function(n){nodes.push(new DCI.DOM(n));if(n.nextSibling){recursion(n.nextSibling)}};if(DCI.browser.msie){if(this.dom.firstChild){recursion(this.dom.childNodes[1].firstChild)}}else{if(this.dom.childNodes[0]){recursion(this.dom.childNodes[1].childNodes[0])}}return nodes};this.getsecondNodes=function(){var nodes=[];var recursion=function(n){nodes.push(new DCI.DOM(n));if(n.nextSibling){recursion(n.nextSibling)}};if(DCI.browser.msie){if(this.dom.firstChild){recursion(this.dom.firstChild)}}else{if(this.dom.childNodes[0]){recursion(this.dom.childNodes[0])}}return nodes};var getSameSiblings=function(){var nodes=[];var tagName=this.dom.tagName;if(tagName){var elements=this.dom.parentNode.getElementsByTagName(tagName);for(var i=0;i<elements.length;i++){nodes.push(elements[i])}}else{nodes.push(this.dom)}return nodes};this.find=function(nodeName){if(!nodeName){return}var node=void (0);var nodes=this.dom.getElementsByTagName(nodeName);if(nodes.length>0){node=nodes[0]}return new DCI.DOM(node)};this.each=function(callback){var siblings=getSameSiblings.call(this);if(DCI.browser.mozilla&&siblings[0].textContent!=""){for(var i=0;i<siblings.length;i++){var sibling=siblings[i];callback.call(sibling)}}else{if(siblings[0].text!=""){for(var i=0;i<siblings.length;i++){var sibling=siblings[i];callback.call(sibling)}}}};this.text=function(){if(DCI.browser.mozilla){return this.dom.textContent}else{return this.dom.text}};this.attribute=function(name){return this.dom.getAttribute(name)};this.ClassName="DCI.DOM"};DCI.DOM.create=function(xmldata){if(typeof xmldata=="object"){return xmldata}var XmlDOMVersions=["MSXML2.DOMDocument.6.0","MSXML2.DOMDocument.3.0","Microsoft.XMLDOM"];if(!window.DOMParser&&window.ActiveXObject){for(var i=0;i<XmlDOMVersions.length;i++){try{var xmlDoc=new ActiveXObject(XmlDOMVersions[i]);break}catch(e){continue}}xmlDoc.async=false;xmlDoc.loadXML(xmldata);return xmlDoc}else{var oParser=new DOMParser();var xmlDoc=oParser.parseFromString(xmldata,"text/xml");return xmlDoc}};DCI.dom=function(xmlData){return new DCI.DOM(xmlData)};DCI.document=new function(){this.getHeight=function(){return document.body.clientHeight};this.getWidth=function(){return document.body.clientWidth};this.getOffsetHeight=function(){return document.body.offsetHeight};this.getOffsetWidth=function(){return document.body.offsetWidth};this.getViewSize=function(){var width=document.body.clientWidth;var height=document.body.clientHeight;return new DSize(width,height)};this.setCursor=function(target,cusor){try{target.style.cursor=cusor}catch(e){if(cusor=="pointer"){this.setCursor(target,"hand")}}};this.get=function(id){return document.getElementById(id)};this.addClass=function(element,class_name){var has=false;var cn=element.className||"";var cna=cn.split(" ");for(var i=0;i<cna.length;i++){var cn_t=cna[i];if(cn_t==class_name){has=true;break}}if(!has){cna.push(class_name)}cn=cna.join(" ");element.className=cn};this.hasClass=function(element,class_name){var has=false;var cn=element.className;var cna=cn.split(" ");for(var i=0;i<cna.length;i++){var cn_t=cna[i];if(cn_t==class_name){has=true;break}}return has};this.removeClass=function(element,class_name){var cn=element.className;var cna=cn.split(" ");var cna_t=new Array();for(var i=0;i<cna.length;i++){var cn_t=cna[i];if(cn_t==class_name){continue}cna_t.push(cn_t)}cn=cna_t.join(" ");element.className=cn};this.ClassName="DCI.document"};DCI.getViewSize=function(){return DCI.document.getViewSize()};DCI.get=DCI.document.get;DCI.addClass=DCI.document.addClass;DCI.removeClass=DCI.document.removeClass;DCI.hasClass=DCI.document.hasClass;DCI.event=new function(){var listeners=new Array();var domlisteners=new Array();var callbacks=new Array();this.bindDom=function(element,type,func,scope,args){var al=arguments.length;function fn(event){event=event||window.event;if(al==3){return func(event)}else{if(al==4){return func.apply(scope,[event])}else{if(al>4){var targs=new Array(event);for(var i=0;i<args.length;i++){targs.push(args[i])}return func.apply(scope,targs)}}}}if(!DCI.browser.msie){element.addEventListener(type,fn,false);domlisteners.push({element:element,type:type,func:func,fn:fn});return true}else{element.attachEvent("on"+type,fn);domlisteners.push({element:element,type:type,func:func,fn:fn});return true}return false};this.unbindDom=function(element,type,func){for(var i=domlisteners.length-1;i>-1;i--){var e=domlisteners[i];if(element==e.element&&type==e.type&&func==e.func){if(!DCI.browser.msie){element.removeEventListener(e.type,e.fn,false)}else{if(DCI.browser.msie&&element.detachEvent){element.detachEvent("on"+e.type,e.fn)}else{element["on"+e.type]=null}}domlisteners.splice(i,1);break}}};this.bind=function(object,type,func){if(object&&object.addListener){object.addListener(type,func);listeners.push({object:object,type:type,func:func});return true}return false};this.unbind=function(object,type,func){if(object&&object.removeListener){for(var i=0;i<listeners.length;i++){var e=listeners[i];if(object==e.object&&type==e.type&&func==e.func){object.removeListener(type,func);listeners.splice(i,1);return true}}}return false};this.clearAll=function(){for(var i=0;i<domlisteners.length;i++){with(domlisteners[i]){if(!DCI.browser.msie){element.removeEventListener(type,func,useCapture)}else{if(DCI.browser.msie&&element.detachEvent){element.detachEvent("on"+type,func)}else{element["on"+type]=null}}}domlisteners.splice(i,1)}for(var i=0;i<listeners.length;i++){with(listeners[i]){if(object.removeListener){object.removeListener(type,func)}}listeners.splice(i,1)}};this.clearEvent=function(element){for(var i=listeners.length-1;i>-1;i--){var pEvent=listeners[i];if(element==pEvent.element){listeners.splice(i,1);if(!DCI.browser.msie){pEvent.object.removeListener(pEvent.type,pEvent.func,pEvent.useCapture)}else{if(DCI.browser.msie&&element.detachEvent){pEvent.object.detachEvent("on"+pEvent.type,pEvent.func)}else{pEvent.object["on"+pEvent.type]=null}}}}};this.handler=function(c,src){var ps=arguments;if(ps.length==1){return function(event){event=event||window.event;c(event)}}else{if(ps.length==2){return function(event){event=event||window.event;c.call(src,event)}}else{if(ps.length>2){return function(event){event=event||window.event;var p=new Array(event);for(var i=2;i<ps.length;i++){p.push(ps[i])}c.apply(src,p)}}}}};this.stop=function(event){if(DCI.browser.msie){window.event.cancelBubble=true}else{event.stopPropagation();event.cancelBubble=true;event.preventDefault()}};this.fire=function(element,eventName){if(DCI.browser.msie){switch(eventName){case"click":element.click()}}else{var evt=document.createEvent("MouseEvents");evt.initEvent(eventName,true,true);element.dispatchEvent(evt)}};this.noAction=function(){return false};this.ClassName="DCI.event"};DCI.handler=DCI.event.handler;_package("DCI.Base");DCI.Base.DragObject=function(target,options){this.moveTo=function(left,top){if(this.left!=left||this.top!=top){this.left=left;this.top=top;target.style.left=left?left+"px":"0px";target.style.top=top?top+"px":"0px";on.call(this,"ondraging")}};var onMouseDown=function(event){isMouseDown=true;startPoint.x=event.clientX;startPoint.y=event.clientY;DCI.event.bindDom(target,"mousemove",onMouseMove);DCI.event.bindDom(target,"mouseup",onMouseUp);if(target.setCapture){target.setCapture()}on.call($this,"ondragstart",event);originalCursor=target.style.cursor;DCI.document.setCursor(target,"move");DCI.event.stop(event)};var onMouseMove=function(event){var offsetx=$this.left+(event.clientX-startPoint.x);var offsety=$this.top+(event.clientY-startPoint.y);var Da=0;var Ha=0;$this.moveTo(offsetx,offsety);startPoint.x=event.clientX+Da;startPoint.y=event.clientY+Ha;on.call($this,"ondraging",event)};var onMouseUp=function(event){isMouseDown=false;DCI.event.unbindDom(target,"mousemove",onMouseMove);DCI.event.unbindDom(target,"mouseup",onMouseUp);DCI.document.setCursor(target,originalCursor);if(document.releaseCapture){document.releaseCapture()}on.call($this,"ondragend",event)};var onWindowMouseOut=function(event){if(!event.relatedTarget){onMouseUp(event)}};var on=function(eventName,event){var ltrs=listeners[eventName];if(!ltrs){return}for(var i=0;i<ltrs.length;i++){var ltr=ltrs[i];ltr.func.call(ltr.object,this,event)}};this.addListener=function(type,func,object){var ltrs=listeners["on"+type];if(ltrs){ltrs.push({func:func,object:object})}else{throw Error("调用addListener时,type所指定的事件不存在。")}};this.enabled=function(){DCI.event.bindDom(target,"mousedown",onMouseDown);if(DCI.browser.mozilla){DCI.event.bindDom(window,"mouseout",onWindowMouseOut)}isEnabled=true};this.disabled=function(){DCI.event.unbindDom(target,"mousedown",onMouseDown);if(DCI.browser.mozilla){DCI.event.unbindDom(window,"mouseout",onWindowMouseOut)}isEnabled=false};this.isEnabled=function(){return isEnabled};options=options||{};var $this=this;var isEnabled=false;var isMouseDown=false;var startPoint=new DPoint();var eventSrc;var originalCursor;var isPan=true;var events=["ondrag","ondraging","ondragstart","ondragend","onclick"];var listeners=new Object();var target=target;for(var i=0;i<events.lengt;i++){var event=events[i];listeners[event]=new Array()}target.style.position="absolute";this.ClassName="DCI.Base.DragObject"};DDragObject=DCI.Base.DragObject;DCI.Maps.Bounds=function(points){if((points instanceof Array)&&points.length>=2&&(points[0] instanceof DPoint&&points[1] instanceof DPoint)){this.minX=Math.min(parseInt(points[0].x),parseInt(points[1].x));this.minY=Math.min(parseInt(points[0].y),parseInt(points[1].y));this.maxX=Math.max(parseInt(points[0].x),parseInt(points[1].x));this.maxY=Math.max(parseInt(points[0].y),parseInt(points[1].y))}else{throw new Error(10005,"创建DBounds时,points数组中的元素不是DPoint类型。")}this.getMinPoint=function(){return new DPoint(minX,minY)};this.getMaxPoint=function(){return new DPoint(maxX,maxY)};this.ClassName="DCI.Maps.Bounds"};DCI.Maps.LonLat=function(lon,lat){if(arguments.length==1){var la=lon.split(",");if(la.length!=2){return}lon=Number(la[0]);lat=Number(la[1])}this.lon=Number(lon)||0;this.lat=Number(lat)||0;this.toString=function(){return lon+","+lat};this.equals=function(lonlat){if(lonlat){if(lonlat.lon==this.lon&&lonlat.lat==this.lat){return true}}return false};this.clone=function(){return new DLonLat(this.lon,this.lat)};this.ClassName="DCI.Maps.LonLat"};DCI.Maps.LonLat.getDistanceOfTwo=function(pt1,pt2){d=EARTH_RIDUS*Math.acos(Math.sin(pt1.lat*D_C_P)*Math.sin(pt2.lat*D_C_P)+Math.cos(pt1.lat*D_C_P)*Math.cos(pt2.lat*D_C_P)*Math.cos(pt1.lon*D_C_P-pt2.lon*D_C_P));return d};DLonLat=DCI.Maps.LonLat;D_DEFAULT_LONLAT=new DLonLat();DCI.Maps.LonLatBounds=function(sw,ne){var $this=this;if((sw instanceof DLonLat)&&(ne instanceof DLonLat)){this.minLon=sw.lon;this.minLat=sw.lat;this.maxLon=ne.lon;this.maxLat=ne.lat}else{throw new Error(10006,"创建DLonLatBounds时,lonlats数组中的元素不是DLonLat类型。")}this.getMinLonLat=function(){return new DLonLat(this.minLon,this.minLat)};this.getMaxLonLat=function(){return new DLonLat(this.maxLon,this.maxLat)};this.getSpanLon=function(){return this.maxLon-this.minLon};this.getSpanLat=function(){return this.maxLat-this.minLat};this.containsLonLat=function(lonLat){if(lonLat&&lonLat.ClassName=="DCI.Maps.LonLat"){if(lonLat.lon>=this.minLon&&lonLat.lon<=this.maxLon&&lonLat.lat>=this.minLat&&lonLat.lat<=this.maxLat){return true}else{return false}}return false};this.scale=function(e){var pScale=e-1;var spanX=this.getSpanLon()/2;var spanY=this.getSpanLat()/2;this.minLon=this.minLon-pScale*spanX;this.maxLon=this.maxLon+pScale*spanX;this.minLat=this.minLat-pScale*spanY;this.maxLat=this.maxLat+pScale*spanY};this.getCenter=function(){return calCenter()};this.toSpan=function(){return calSpan()};this.diploid=function(coefficient){if(!(typeof coefficient=="number")){return void (0)}var spanLonLat=calSpan();var centerLonLat=calCenter();var halfLon=spanLonLat.lon/2;var halfLat=spanLonLat.lat/2;var lon=halfLon*coefficient;var lat=halfLat*coefficient;var minlon=centerLonLat.lon-lon;var maxlon=centerLonLat.lon+lon;var minlat=centerLonLat.lat-lat;var maxlat=centerLonLat.lat+lat;return new DLonLatBounds(new DLonLat(minlon,minlat),new DLonLat(maxlon,maxlat))};this.toString=function(){return this.minLon+","+this.minLat+","+this.maxLon+","+this.maxLat};function calCenter(){var midLon=($this.minLon+$this.maxLon)/2;var midLat=($this.minLat+$this.maxLat)/2;return new DLonLat(midLon,midLat)}function calSpan(){var spanLon=$this.maxLon-$this.minLon;var spanLat=$this.maxLat-$this.minLat;return new DLonLat(spanLon,spanLat)}this.ClassName="DCI.Maps.LonLatBounds"};DCI.Maps.LonLatBounds.intersection=function(Qc,td){var zx=new DLonLat(Math.max(Qc.minLon,td.minLon),Math.max(Qc.minLat,td.minLat));var zd=new DLonLat(Math.min(Qc.maxLon,td.maxLon),Math.min(Qc.maxLat,td.maxLat));if(zx&&zd){return new DLonLatBounds(zx,zd)}};DCI.Maps.LonLatBounds.minBox=function(lonlats){var lonMin,lonMax,latMin,latMax;if(lonlats instanceof Array){lonlats=lonlats.join(",")}var a=lonlats.split(",");for(var i=0;i<a.length;i++){var s_l=a[i];if(!s_l){throw new Error("调用DLonLatBounds.minBox时出错，坐标中出现空值，将检查lonlats数组或者字符串。")}var l=Number(s_l);if(i%2==0){lonMin?(lonMin>=l?lonMin=l:null):lonMin=l;lonMax?(lonMax<=l?lonMax=l:null):lonMax=l}else{latMin?(latMin>=l?latMin=l:null):latMin=l;latMax?(latMax<=l?latMax=l:null):latMax=l}}var zx=new DLonLat(lonMin,latMin);var zd=new DLonLat(lonMax,latMax);if(zx&&zd){return new DLonLatBounds(zx,zd)}};DLonLatBounds=DCI.Maps.LonLatBounds;DCI.Maps.MapType=function(options){var $this=this;options=DCI.extend({tileSize:256,emptyURL:"http://think-zhengrj/Shiliang/transparent.png",backgroundColor:"black",spanSacle:1,zoomOffset:-2,center:new DLonLat(116.4,40.2),origin:new DLonLat(),initLevel:10,maxLevel:17,baseUrl:"http://think-zhengrj/Shiliang",suffix:".png",baseLayer:true},options);var resolutions=new Array();this.map;this.getName=function(){return options.name};this.getMaxLevel=function(){return options.maxLevel};this.getNumZoomLevels=function(){return options.numZoomLevels};this.getZoomOffset=function(){return options.zoomOffset};this.getEmptyURL=function(){return options.emptyURL};this.getCopyright=function(){return"DigitalGlobe&天目创新"};this.init=function(map){this.map=map;options.numZoomLevels=options.maxLevel+1-options.zoomOffset;calculateSacle.call(this)};var calculateSacle=function(){var spanScale=options.spanSacle?options.spanSacle:1;var zommOffset=options.zoomOffset?options.zoomOffset:0;var span=1;for(var i=17;i>=0;i--){resolutions[i]=span;span=span*2}if(zommOffset!=0||spanScale!=1){var s=Math.pow(2,zommOffset)*spanScale;for(var i=0;i<resolutions.length;i++){resolutions[i]=resolutions[i]/s}}};this.getPointByLonLat=function(center,zoom){var lon=center.lon-options.origin.lon;var lat=center.lat-options.origin.lat;var x=Math.floor(lon*resolutions[zoom]);var y=Math.floor(lat*resolutions[zoom]);return new DCI.Types.Point(x,y)};this.fromEvnetPixelToLatLng=function(center,zoom){var x=center.x;var y=center.y;x/=resolutions[zoom];y/=resolutions[zoom];x+=options.origin.lon;y+=options.origin.lat;return new DCI.Maps.LonLat(x,y)};var Angle=function(d){return Math.abs(d*180/Math.PI)};this.getMeterScaleFromPixel=function(zoom,pix){var x;x=pix/resolutions[zoom];return x*Math.PI/180*EARTH_RIDUS};this.getPixelScaleFromMeter=function(zoom,meter){var p=new DPoint(10,10-this.map.getViewSize().height);var lonlat=this.map.fromContainerPixelToLatLng(p);return(180/Math.PI)*(resolutions[zoom]*meter/EARTH_RIDUS/Math.cos(lonlat.lat*D_C_P))};this.getBoundsByLonLatBounds=function(bounds,zoom){var x=center.x;var y=center.y;x/=resolutions[zoom];y/=resolutions[zoom];x+=options.origin.lon;y+=options.origin.lat;return new DCI.Maps.LonLat(x,y)};this.getLonLatBoundsByBounds=function(bounds,zoom){var x=center.x;var y=center.y;x/=resolutions[zoom];y/=resolutions[zoom];x+=options.origin.lon;y+=options.origin.lat;return new DCI.Maps.LonLat(x,y)};this.fromContainerPixelToLatLng=function(spoint,zoom){var lon=spoint.x/resolutions[zoom];var lat=spoint.y/resolutions[zoom];var LatLng=new DLonLat(this.getOrigionLatLng(zoom).lon+lon,this.getOrigionLatLng(zoom).lat+lat);return LatLng};this.getOrigionLatLng=function(zoom){var centerLatLng=this.map.getCenter();var viewSize=this.map.getViewSize();var x=viewSize.width/2;var y=viewSize.height/2;var lon=x/resolutions[zoom];var lat=y/resolutions[zoom];lon+=options.origin.lon;lat+=options.origin.lat;var origionLatLng=new DLonLat(centerLatLng.lon-lon,lat+centerLatLng.lat);return origionLatLng};this.getSPointsBySLonLats=function(slonlat,zoom,opt){opt=opt||{};var lonlats=slonlat.split(",");var spoints=new Array();for(var i=0;i<lonlats.length;i++){if((i+1)%2==1){spoints.push(Math.floor((lonlats[i]-options.origin.lon)*resolutions[zoom]))}else{spoints.push(Math.floor((lonlats[i]-options.origin.lat)*resolutions[zoom]))}}if(opt.type&&opt.type.toUpperCase()=="ARRAY"){return spoints}else{return spoints.join(",")}};this.convert=function(obj,zoom){if(!obj){throw new Error("调用convert时,obj参数为空。")}if(obj.ClassName=="DCI.Maps.LonLat"){this.getPointByLonLat(obj)}else{if(obj.ClassName="DCI.Maps.Point"){this.fromEvnetPixelToLatLng(obj)}else{if(obj.ClassName="DCI.Maps.Bounds"){this.getLonLatBoundsByBounds(obj)}else{if(obj.ClassName="DCI.Maps.LonLatBounds"){this.getBoundsByLonLatBounds(obj)}else{throw new Error("调用convert时,obj参数不是DLonLat、DPoint、DLonLatBounds、DBounds其中的一种。")}}}}};this.getTileURL=function(col,row,zoom){zoom=zoom+options.zoomOffset;if(zoom<0){zoom="_"+Math.abs(zoom)}var url=options.baseUrl;var n=url.length;var baseurl=url[(col+row)%n];if(baseurl.lastIndexOf("/")==baseurl.length-1){baseurl=baseurl+zoom+"/"+col+"/"+row+options.suffix}else{baseurl=baseurl+"/"+zoom+"/"+col+"/"+row+options.suffix}return baseurl};this.getResolutions=function(){return resolutions};this.getTileSize=function(){return options.tileSize};this.ClassName="DCI.Maps.MapType"};DMapType=DCI.Maps.MapType;DCI.Maps.Overlay=function(){this.force=false;this.initialize=function(dmap){throw new Error("DOverlay子类，未实现initialize方法")};this.getElement=function(){throw new Error("DOverlay子类，未实现getElement方法")};this.remove=function(){throw new Error("DOverlay子类，未实现remove方法")};this.redraw=function(){throw new Error("DOverlay子类，未实现redraw方法")}};DOverlay=DCI.Maps.Overlay;DCI.Maps.Icon=function(dlonlat,iconOptions){if(!(dlonlat instanceof DLonLat)){throw new Error("DIcon实例化不成功，dlonlat参数不是DLonLat类型。");return null}var options=iconOptions||{};var $this=this;var lonlat=dlonlat.clone()||void (0);var baseURL=DCI.getDCILocation()+"DCI/images/";var point=void (0);var hasImage=options.image?true:false;var hasShadow=options.shadow?true:false;var l=hasImage?0:-9,t=hasImage?0:-28;var defaultOptions={image:baseURL+"/marker_noshadow.png",shadow:"",left:l,top:t,width:18,height:28,shadowLeft:0,shadowTop:0,shadowWidth:0,shadowHeight:0};options=DCI.extend(defaultOptions,options);var defaultStyle={display:"",position:"absolute",zIndex:1,cursor:"pointer"};var elStyle=DCI.extend(defaultStyle,options.elStyle);var iconDiv=void (0);var shadow=void (0);var img=void (0);var isLoaded=false;var map=void (0);var overlayDiv=void (0);this.force=options.force;this.initialize=function(dmap){if(!dmap instanceof DMap){throw new Error("DIcon.initialize()参数不匹配。dmap不是DMap类型。")}map=dmap;if(!isLoaded){initElement()}overlayDiv=map.getOverlayDiv();overlayDiv.appendChild(iconDiv);applyStyles();reposition()};function initElement(){iconDiv=document.createElement("div");img=document.createElement("img");if(hasShadow){shadow=document.createElement("img");DCI.applyStyles(shadow,defaultStyle);iconDiv.appendChild(shadow)}img.galleryimg="no";img.style.borderWidth=0;iconDiv.appendChild(img);DCI.applyStyles(iconDiv,elStyle);DCI.applyStyles(img,defaultStyle);isLoaded=true}this.getElement=function(){if(!isLoaded){initElement()}return iconDiv};this.remove=function(){if(isLoaded){overlayDiv.removeChild(iconDiv)}};this.redraw=function(force){if(map){reposition()}if(force){applyStyles()}};function applyStyles(){if(hasShadow){shadow.style.left=px(options.shadowLeft);shadow.style.top=px(options.shadowTop);shadow.style.width=px(options.shadowWidth);shadow.style.height=px(options.shadowHeight);shadow.src=options.shadow}img.style.left=px(options.left);img.style.top=px(options.top);img.style.width=px(options.width);img.style.height=px(options.height);img.src=options.image;DCI.imgAlpha(img);if(hasShadow){DCI.imgAlpha(shadow)}}function reposition(){point=map.fromLatLngToDivPixel(lonlat);iconDiv.style.left=px(point.x);iconDiv.style.top=px(point.y)}function px(num){return num+"px"}this.show=function(){if(isLoaded){title_div.style.display=""}};this.hide=function(){if(isLoaded){title_div.style.display="none"}};this.set=function(key,value){if(typeof(key)=="object"){DCI.extend(options,key)}else{options[key]=value}applyStyles()};this.get=function(key){if(key){return options[key]}else{return options}};this.ClassName="DCI.Maps.Icon"};DCI.Maps.Icon.prototype=new DOverlay();DIcon=DCI.Maps.Icon;DCI.Maps.Math=function(){this.CalculateDis4=function(a,b,c,d){return Math.sqrt((a-c)*(a-c)+(b-d)*(b-d))};this.CalculateThreePoint=function(a,b,c,d,e,f,dis){var round=a*d-b*c+b*e-a*f+c*f-d*e;if(Math.abs(round)>this.CalculateDis4(a,b,c,d)*dis){return 0}if(this.CalculateDis4(a,b,e,f)<=dis){return 1}if(this.CalculateDis4(c,d,e,f)<=dis){return 2}if((a-e)*(e-c)>(0.0125*dis)){return 3}if((b-f)*(f-d)>(0.0125*dis)){return 3}};this.verPToALine=function(x1,y1,x2,y2,x0,y0,z,w){var len=parseFloat(this.CalculateDis4(x1,y1,x2,y2));var ratio;ratio=(len-parseFloat(this.CalculateDis4(x2,y2,x0,y0))*Math.cos(this.JD3(x1,y1,x2,y2,x0,y0)*Math.PI/180))/len;z=parseFloat(x1)+parseFloat((x2-x1)*ratio);w=parseFloat(y1)+parseFloat((y2-y1)*ratio);return new DPoint(z,w)};this.JD3=function(a,b,c,d,e,f){var g=a*d-b*c+b*e-a*f+c*f-d*e;var real,imag;real=parseFloat((e-c)*(a-c)+(f-d)*(b-d));imag=parseFloat((f-d)*(a-c)-(e-c)*(b-d));var h;h=real*real+imag*imag;if(h<1e-300){return 0}var jd=33;var x,y;x=real;y=imag;if(x==0){if(y>0){jd=90}if(y<0){jd=270}}if(y==0){if(x>0){jd=0}if(x<0){jd=180}}if(jd!=33){return jd}jd=Math.atan2(Math.abs(imag),Math.abs(real))/Math.PI*180;if(x>0&&y>0){return jd}if(x<0&&y>0){return 180-jd}if(x>0&&y<0){return 360-jd}return 180+jd;return 0}};DMath=DCI.Maps.Math;DCI.Maps.Graphic=function(e,width,height){var $this=this;var origin="0,0";var element=e||document.body;var swidth=width||element.style.width;var sheight=width||element.style.height;var vmlsvg=function(){if(DCI.browser.msie){if(!document.namespaces.v){document.namespaces.add("v","urn:schemas-microsoft-com:vml");document.createStyleSheet().addRule(".v","behavior:url(#default#VML)")}var div=document.createElement("div");div.style.position="absolute";div.style.top="0px";div.style.left="0px";div.style.zIndex=0;div.style.zoom=1;return div}else{var svg=document.createElementNS("http://www.w3.org/2000/svg","svg");var def=document.createElementNS("http://www.w3.org/2000/svg","defs");svg.style.position="absolute";svg.style.top="0px";svg.style.left="0px";svg.style.zIndex=0;svg.appendChild(def);return svg}};this.container=vmlsvg();this.container.setAttribute("width","2880");this.container.setAttribute("height","1128");element.appendChild(this.container);this.remove=function(element){this.container.removeChild(element)};var dasharray={"":[0],none:[0],"-":[3,1],".":[1,1],"-.":[3,1,1,1],"-..":[3,1,1,1,1,1],". ":[1,3],"- ":[4,3],"--":[8,3],"- .":[4,3,1,3],"--.":[8,3,1,3],"--..":[8,3,1,3,1,3]};this.circle=function(point,dj,dw){var style={left:0,top:0,position:"absolute",zIndex:1};var pDiv=void (0);var stroke=void (0);var fill=void (0);if(DCI.browser.msie){pDiv=document.createElement("<v:oval class='v'>");stroke=document.createElement("<v:stroke class='v'>");fill=document.createElement("<v:fill class='v'>");pDiv.style.zIndex=style.zIndex;pDiv.style.position=style.position;pDiv.filled=true;var el=new el();el.position(point,dj,dw);pDiv.appendChild(stroke);pDiv.appendChild(fill)}else{pDiv=document.createElementNS("http://www.w3.org/2000/svg","ellipse");pDiv.setAttribute("z-index",style.zIndex);pDiv.setAttribute("fill-opacity","1");var el=new el();el.position(point,dj,dw)}function el(){this.attr=function(arg){if(DCI.browser.msie){for(var params in arg){if(params=="fillColor"){fill.color=arg[params]}else{if(params=="fillOpacity"){fill.opacity=arg[params]}else{stroke[params]=arg[params]}}}}else{for(var params in arg){switch(params){case"color":pDiv.setAttribute("stroke",arg[params]);break;case"fillColor":pDiv.setAttribute("fill",arg[params]);break;case"opacity":pDiv.setAttribute("stroke-opacity",arg[params]);break;case"fillOpacity":pDiv.setAttribute("fill-opacity",arg[params]);break;case"weight":pDiv.setAttribute("stroke-width",arg[params]);break;case"dashstyle":value=dasharray[arg[params].toString().toLowerCase()];pDiv.setAttribute("stroke-dasharray",value);break}}}};this.el=function(){return pDiv};this.position=function(point,rj,rw){var pt=point.split(",");var iLeft=parseFloat(pt[0]-rw);var iTop=parseFloat(pt[1]-rj);var iHeight=parseFloat(2*rj);var iWidth=parseFloat(2*rw);if(DCI.browser.msie){pDiv.style.top=iTop;pDiv.style.left=iLeft;pDiv.style.width=iWidth;pDiv.style.height=iHeight}else{pDiv.setAttribute("cx",pt[0]);pDiv.setAttribute("cy",pt[1]);pDiv.setAttribute("rx",rw);pDiv.setAttribute("ry",rj)}}}this.container.appendChild(pDiv);return el};this.rect=function(points){var style={left:0,top:0,position:"absolute",zIndex:1};var pDiv=void (0);var stroke=void (0);var fill=void (0);if(DCI.browser.msie){pDiv=document.createElement("<v:rect class='v'>");stroke=document.createElement("<v:stroke class='v'>");fill=document.createElement("<v:fill class='v'>");pDiv.style.zIndex=style.zIndex;pDiv.style.position=style.position;var el=new el();el.position(points);pDiv.filled=true;pDiv.appendChild(stroke);pDiv.appendChild(fill)}else{pDiv=document.createElementNS("http://www.w3.org/2000/svg","rect");pDiv.setAttribute("z-index",style.zIndex);pDiv.setAttribute("fill-opacity","1");var el=new el();el.position(points)}function el(){this.attr=function(arg){if(DCI.browser.msie){for(var params in arg){if(params=="fillColor"){fill.color=arg[params]}else{if(params=="fillOpacity"){fill.opacity=arg[params]}else{stroke[params]=arg[params]}}}}else{for(var params in arg){switch(params){case"color":pDiv.setAttribute("stroke",arg[params]);break;case"fillColor":pDiv.setAttribute("fill",arg[params]);break;case"opacity":pDiv.setAttribute("stroke-opacity",arg[params]);break;case"fillOpacity":pDiv.setAttribute("fill-opacity",arg[params]);break;case"weight":pDiv.setAttribute("stroke-width",arg[params]);break;case"dashstyle":value=dasharray[arg[params].toString().toLowerCase()];pDiv.setAttribute("stroke-dasharray",value);break}}}};this.el=function(){return pDiv};this.position=function(points){var pt=points.split(",");var iLeft=Math.min(pt[0],pt[2]);var iTop=Math.min(pt[1],pt[3]);var iWidth=Math.abs(pt[0]-pt[2]);var iHeight=Math.abs(pt[1]-pt[3]);if(DCI.browser.msie){pDiv.style.top=iTop;pDiv.style.left=iLeft;pDiv.style.width=iWidth;pDiv.style.height=iHeight}else{pDiv.setAttribute("x",iLeft);pDiv.setAttribute("y",iTop);pDiv.setAttribute("width",iWidth);pDiv.setAttribute("height",iHeight)}}}this.container.appendChild(pDiv);return el};this.polyline=function(points){var style={left:0,top:0,position:"absolute",zIndex:1};var pDiv=void (0);if(DCI.browser.msie){pDiv=document.createElement("<v:polyline class='v'>");var stroke=document.createElement("<v:stroke class='v'>");pDiv.style.zIndex=style.zIndex;pDiv.style.position=style.position;pDiv.top=style.top;pDiv.left=style.left;pDiv.filled="false";pDiv.points=points;pDiv.appendChild(stroke)}else{pDiv=document.createElementNS("http://www.w3.org/2000/svg","polyline");pDiv.setAttribute("z-index",style.zIndex);pDiv.setAttribute("points",points);pDiv.setAttribute("fill-opacity","0")}function el(){this.attr=function(arg){if(DCI.browser.msie){for(var params in arg){stroke[params]=arg[params]}}else{for(var params in arg){switch(params){case"color":pDiv.setAttribute("stroke",arg[params]);break;case"weight":pDiv.setAttribute("stroke-width",arg[params]);break;case"opacity":pDiv.setAttribute("stroke-opacity",arg[params]);break;case"dashstyle":value=dasharray[arg[params].toString().toLowerCase()];pDiv.setAttribute("stroke-dasharray",value);break}}}};this.el=function(){return pDiv}}this.container.appendChild(pDiv);return new el()};this.polygon=function(points){var style={left:0,top:0,position:"absolute",zIndex:1};var pDiv=void (0);var stroke=void (0);var fill=void (0);if(DCI.browser.msie){pDiv=document.createElement("<v:polyline class='v'>");stroke=document.createElement("<v:stroke class='v'>");fill=document.createElement("<v:fill class='v'>");pDiv.style.zIndex=style.zIndex;pDiv.style.position=style.position;pDiv.top=style.top;pDiv.left=style.left;pDiv.filled=true;pDiv.points=points;pDiv.appendChild(stroke);pDiv.appendChild(fill)}else{pDiv=document.createElementNS("http://www.w3.org/2000/svg","polyline");pDiv.setAttribute("z-index",style.zIndex);pDiv.setAttribute("points",points);pDiv.setAttribute("fill-opacity","1")}function el(){this.attr=function(arg){if(DCI.browser.msie){for(var params in arg){if(params=="fillColor"){fill.color=arg[params]}else{if(params=="fillOpacity"){fill.opacity=arg[params]}else{stroke[params]=arg[params]}}}}else{for(var params in arg){switch(params){case"color":pDiv.setAttribute("stroke",arg[params]);break;case"fillColor":pDiv.setAttribute("fill",arg[params]);break;case"opacity":pDiv.setAttribute("stroke-opacity",arg[params]);break;case"fillOpacity":pDiv.setAttribute("fill-opacity",arg[params]);break;case"weight":pDiv.setAttribute("stroke-width",arg[params]);break;case"dashstyle":value=dasharray[arg[params].toString().toLowerCase()];pDiv.setAttribute("stroke-dasharray",value);break}}}};this.el=function(){return pDiv}}this.container.appendChild(pDiv);return new el()}};DGraphic=DCI.Maps.Graphic;DCI.Maps.Polyline=function(lonlats,options){var eventNames=["remove","click","mouseover","mouseout","lineupdated","endline","cancelline"];var listeners=new Object();for(var i=0;i<eventNames.length;i++){var event=eventNames[i];listeners[event]=new Array()}this.addListener=function(type,callback,scope){if(!type&&callback){return}var ltrs=listeners[type];if(ltrs){ltrs.push({callback:callback,scope:scope})}else{throw Error("调用addListener时,type所指定的事件不存在。")}};this.removeListener=function(eventName,callback){var ltrs=listeners[eventName];for(var i=0;i<ltrs.lengthi;i++){if(callback==ltrs[i].callback){ltrs.splice(i,1);break}}};function fire(eventName,arg1,arg2){var ltrs=listeners[eventName];if(!ltrs){return}var newArguments=new Array();if(arguments.length>1){for(var i=0;i<arguments.length;i++){newArguments.push(arguments[i])}}for(var i=0;i<ltrs.length;i++){var ltr=ltrs[i];var scope=ltr.scope||this;ltr.callback.apply(scope,newArguments)}}function fromStringToLonlatArray(str){var c=str.split(",");var lonlatArr=[];for(var i=0;i<c.length;i=i+2){var lonlat=new DLonLat(c[i],c[i+1]);lonlatArr.push(lonlat)}return lonlatArr}function fromStringToPoint(str){var c=str.split(",");var pointArr=[];for(var i=0;i<c.length;i=i+2){var point=new DPoint(c[i],c[i+1]);pointArr.push(point)}return pointArr}var $this=this;var nodeImageDIV;var slonlats;if(typeof(lonlats)=="string"){slonlats=lonlats}else{if(lonlats instanceof Array&&lonlats.length>0&&lonlats[0] instanceof DLonLat){slonlats=lonlats.toString()}else{}}var spoints=void (0);var rubberlineGraph;var defaultOptions={filled:false,color:"#DF0029",weight:1,opacity:0.7,startarrow:"none",endarrow:"none",dashstyle:"none",show:true};options=DCI.extend(defaultOptions,options);var polyline=void (0);function createMenu(){var div_menu;div_menu=document.createElement("Div");div_menu.id="div_imgRightMenu";div_menu.style.zIndex="3";div_menu.style.textAligh="left";div_menu.style.cursor="default";div_menu.style.position="absolute";div_menu.style.backgroundColor="#FAFFF8";div_menu.style.width="75px";div_menu.style.height="auto";div_menu.style.border="1px solid gray";div_menu.style.paddingLeft="10px";div_menu.style.paddingTop="2px";div_menu.style.display="none";div_menu.style.fontSize="9pt";div_menu.innerHTML="删除节点";$this.menuelement=div_menu}this.force=options.force;this.initialize=function(dmap){this.map=dmap;if(!polyline){this.initElement()}if(DCI.browser.msie){this.map.getOverlayDiv().appendChild(polyline.el())}else{}this.redraw(true)};this.redraw=function(force){if(this.map){updatePosition();applyStyle()}};this.getElement=function(){if(!polyline){this.initElement()}return polyline.el()};this.initElement=function(){if(DCI.browser.msie){spoints=this.map.fromLatLngToDivPixel(slonlats)}else{spoints=this.map.fromLatLngToContainerPixel(slonlats)}polyline=this.map.graphic.polyline(spoints);if(!options.show){this.hide()}};function applyStyle(){if(!polyline){$this.initElement()}polyline.attr(DCI.extend({},options))}function updatePosition(){if(DCI.browser.msie){spoints=$this.map.fromLatLngToDivPixel(slonlats);$this.getElement().points.value=spoints}else{spoints=$this.map.fromLatLngToContainerPixel(slonlats);$this.getElement().setAttribute("points",spoints)}var lonlatArr=fromStringToLonlatArray(slonlats);var pixelArr=[];for(var i=0;i<lonlatArr.length;i++){var pixel;if(DCI.browser.msie){pixel=$this.map.fromLatLngToDivPixel(lonlatArr[i])}else{pixel=$this.map.fromLatLngToContainerPixel(lonlatArr[i])}pixelArr.push(pixel)}if(DCI.browser.msie){if(nodeImageDIV){$this.map.getOverlayDiv().removeChild(nodeImageDIV)}}else{if(nodeImageDIV){$this.map.getContainer().removeChild(nodeImageDIV)}}nodeImageDIV=document.createElement("div");if(DCI.browser.msie){$this.map.getOverlayDiv().appendChild(nodeImageDIV)}else{$this.map.getContainer().appendChild(nodeImageDIV)}nodeImageDIV.style.position="absolute";nodeImageDIV.style.zIndex=2;nodeImageDIV.style.zoom=1;nodeImageDIV.style.display="none";for(var i=0;i<pixelArr.length;i++){var img_tmp=document.createElement("div");addImage(img_tmp,i)}function addImage(img){img.arrayposition=i;img.style.width="11px";img.style.height="11px";img.style.fontSize="5px";img.style.backgroundColor="#CCffcc";img.style.border="1px solid gray";img.style.zIndex=0;img.title="拖拽此点";img.style.position="absolute";var pixel=pixelArr[i];img.style.top=pixel.y-5;img.style.left=pixel.x-5;img.onmouseover=img_mouseover;img.onmouseout=img_mouseout;img.onmousedown=img_mousedown;nodeImageDIV.appendChild(img);function img_mousedown(event){event=event||window.event;if(img.setCapture){img.setCapture()}nodeImageDIV.style.display="";var buttonright=0;buttonright=event.button;if(buttonright==2){img.oncontextmenu=img_contextmenun}else{img.onmousemove=img_mousemove;img.onmouseup=img_mouseup}}function img_mousemove(event){event=event||window.event;var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEvnetPixelToLatLng(evpoint);var buttonleft=0;if(DCI.browser.msie){if(event.button==1){buttonleft=1}}else{if(event.button==0){buttonleft=1}}if(buttonleft==1){var draw_graphic_style={color:"red",weight:2,dashstyle:"shortdot",opacity:1};if(rubberlineGraph){rubberlineGraph.remove()}rubberlineGraph=void (0);var i_img=img.arrayposition;if(i_img==0){rubberlineGraph=new DPolyline(lonlat+","+lonlatArr[img.arrayposition+1],draw_graphic_style)}else{if(i_img==lonlatArr.length-1){rubberlineGraph=new DPolyline(lonlatArr[img.arrayposition-1]+","+lonlat,draw_graphic_style)}else{rubberlineGraph=new DPolyline(lonlatArr[img.arrayposition-1]+","+lonlat+","+lonlatArr[img.arrayposition+1],draw_graphic_style)}}$this.map.addOverlay(rubberlineGraph)}var p;if(DCI.browser.msie){p=$this.map.fromLatLngToDivPixel(lonlat)}else{p=$this.map.fromLatLngToContainerPixel(lonlat)}img.style.top=p.y-5;img.style.left=p.x-5}function img_mouseup(event){event=event||window.event;img.onmouseover=img_mouseover;var buttonleft=0;if(DCI.browser.msie){if(event.button==1){buttonleft=1}}else{if(event.button==0){buttonleft=1}}if(buttonleft==1){if(rubberlineGraph){rubberlineGraph.remove()}rubberlineGraph=void (0);var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEvnetPixelToLatLng(evpoint);lonlatArr[img.arrayposition]=lonlat;slonlats=lonlatArr.join(",");updatePosition()}if(document.releaseCapture){document.releaseCapture()}nodeImageDIV.style.display="none"}function img_contextmenun(event){event=event||window.event;if(!$this.menuelement){createMenu()}if(nodeImageDIV){nodeImageDIV.appendChild($this.menuelement)}$this.map.addListener("click",function(){if($this.menuelement){$this.menuelement.style.display="none"}},this);$this.menuelement.onmousedown=menuelement_mousedown;function menuelement_mousedown(event){$this.menuelement.style.display="none";lonlatArr=$this.deleteVertex(img.arrayposition);$this.menuelement.onmousedown=""}var menu=$this.menuelement;menu.style.display="";var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEvnetPixelToLatLng(evpoint);var p;if(DCI.browser.msie){p=$this.map.fromLatLngToDivPixel(lonlat)}else{p=$this.map.fromLatLngToContainerPixel(lonlat)}menu.style.left=p.x;menu.style.top=p.y;DCI.event.stop();if(document.releaseCapture){document.releaseCapture()}return false}function img_mouseover(event){nodeImageDIV.style.display=""}function img_mouseout(event){nodeImageDIV.style.display=""}}}var img_catch;function img_catch_mousemove(){if(document.releaseCapture){document.releaseCapture()}}function img_catch_mouseout(){img_catch.style.display="none"}function polyline_mouseout(event){var el=$this.getElement();if(img_catch){img_catch.style.display="none"}}function polyline_mouseover(event){var el=$this.getElement();el.style.cursor="crosshair";nodeImageDIV.style.display="";var latlng=$this.map.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));var point;if(DCI.browser.msie){point=$this.map.fromLatLngToDivPixel(latlng)}else{point=$this.map.fromLatLngToContainerPixel(latlng)}if(!img_catch){img_catch=document.createElement("img")}var pointArr=fromStringToPoint(spoints);var insertI=-3;var Calcu=new DMath();for(var i=0;i<pointArr.length-1;i++){var calc=Calcu.CalculateThreePoint(pointArr[i].x,pointArr[i].y,pointArr[i+1].x,pointArr[i+1].y,point.x,point.y,15);if(calc==3){insertI=i;var pt=Calcu.verPToALine(pointArr[i].x,pointArr[i].y,pointArr[i+1].x,pointArr[i+1].y,point.x,point.y);nodeImageDIV.appendChild(img_catch);img_catch.src="../../images/main/node.gif";img_catch.style.zIndex=0;img_catch.style.display="";img_catch.style.position="absolute";img_catch.style.top=pt.y-5;img_catch.style.left=pt.x-5;img_catch.style.cursor="crosshair";if(img_catch.setCapture){img_catch.setCapture()}function img_catch_click(){var latlng=$this.map.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));var lonlatArr=$this.insertVertex(insertI+1,latlng)}img_catch.onclick=img_catch_click;img_catch.onmousemove=img_catch_mousemove;img_catch.onmouseout=img_catch_mouseout;break}else{if(calc==1||calc==2){break}}}}this.getVertexCount=function(){var lonlatArr=this.fromStringToLonlatArray(slonlats);return lonlatArr.length()};this.insertVertex=function(number,latlng){var lonlatArr=fromStringToLonlatArray(slonlats);var lonlatArrBack=[];for(var i=0;i<number;i++){lonlatArrBack.push(lonlatArr[i])}lonlatArrBack.push(latlng);for(var i=number;i<lonlatArr.length;i++){lonlatArrBack.push(lonlatArr[i])}slonlats=lonlatArrBack.join(",");updatePosition()};this.deleteVertex=function(number){var lonlatArrBack=[];var lonlatArr=fromStringToLonlatArray(slonlats);if(number>0){for(var i=0;i<number;i++){lonlatArrBack.push(lonlatArr[i])}}if(number<lonlatArr.length){for(var i=number+1;i<lonlatArr.length;i++){lonlatArrBack.push(lonlatArr[i])}}if(lonlatArrBack.length<=1){return[]}slonlats=lonlatArrBack.join(",");updatePosition()};this.getVertex=function(number){var lonlatArr=this.fromStringToLonlatArray(slonlats);return lonlatArr[number]};this.enableEditing=function(){var el=$this.getElement();DCI.event.bindDom(el,"mouseover",polyline_mouseover);DCI.event.bindDom(el,"mouseout",polyline_mouseout)};this.disableEditing=function(){var el=$this.getElement();DCI.event.unbindDom(el,"mouseover",polyline_mouseover)};this.set=function(lonlats,options){options=DCI.extend(defaultOptions,options);slonlats=lonlats;applyStyle();updatePosition()};this.get=function(key){if(key){return options[key]}else{return options}};this.remove=function(){var div;if(DCI.browser.msie){div=this.map.getOverlayDiv()}else{div=this.map.graphic.container}div.removeChild(this.getElement());if(DCI.browser.msie){if(nodeImageDIV){div.removeChild(nodeImageDIV)}}else{if(nodeImageDIV){$this.map.getContainer().removeChild(nodeImageDIV)}}};this.show=function(){this.getElement().style.display=""};this.hide=function(){this.getElement().style.display="none"};this.ClassName="DCI.Maps.Polyline"};DCI.Maps.Polyline.prototype=new DOverlay();DPolyline=DCI.Maps.Polyline;DCI.Maps.Polygon=function(lonlats,options){var $this=this;var nodeImageDIV;var slonlats;var eventNames=["remove","click","mouseover","mouseout","lineupdated","endline","cancelline"];var listeners=new Object();for(var i=0;i<eventNames.length;i++){var event=eventNames[i];listeners[event]=new Array()}this.addListener=function(type,callback,scope){if(!type&&callback){return}var ltrs=listeners[type];if(ltrs){ltrs.push({callback:callback,scope:scope})}else{throw Error("调用addlistener时，type所指定的事件不存在。")}};this.removeListener=function(eventName,callback){var ltrs=listeners[eventName];for(var i=0;i<ltrs.length;i++){if(callback==ltrs[i].callback){ltrs.splice(i,1);break}}};function fire(eventName,arg1,arg2){var ltrs=listeners[eventName];if(!ltrs){return}var newArguments=new Array();if(arguments.length>1){for(var i=0;i<arguments.length;i++){newArguments.push(arguments[i])}}}function fromStringToLonlatArray(str){var c=str.split(",");var lonlatArr=[];for(var i=0;i<c.length;i=i+2){var lonlat=new DLonLat(c[i],c[i+1]);lonlatArr.push(lonlat)}return lonlatArr}function fromStringToPoint(str){var c=str.split(",");var pointArr=[];for(var i=0;i<c.length;i=i+2){var point=new DPoint(c[i],c[i+1]);pointArr.push(point)}return pointArr}if(typeof(lonlats)=="string"){slonlats=lonlats}else{if(lonlats instanceof Array&&lonlats.length>0&&lonlats[0] instanceof DLonLat){slonlats=lonlats.toString()}else{throw new Error("DPolygon实例化不成功，dlonlat参数不是DLonLat类型。")}}var spoints=void (0);var rubberlineGraph;var rubberpolygonGraph;var defaultOptions={filled:true,color:"#DF0029",weight:3,opacity:0.5,dashstyle:"none",fillColor:"green",fillOpacity:0.5};var polygon=void (0);function createMenu(){var div_menu;div_menu=document.createElement("Div");div_menu.id="div_imgRightMenu";div_menu.style.zIndex="3";div_menu.style.textAligh="left";div_menu.style.cursor="default";div_menu.style.position="absolute";div_menu.style.backgroundColor="#FAFFF8";div_menu.style.width="75px";div_menu.style.height="auto";div_menu.style.border="1px solid gray";div_menu.style.paddingLeft="10px";div_menu.style.paddingTop="2px";div_menu.style.display="none";div_menu.style.fontSize="9pt";div_menu.innerHTML="删除节点";$this.menuelement=div_menu}this.force=options.force;this.set=function(lonlats,options){options=DCI.extend(defaultOptions,options);slonlats=lonlats;applyStyle();updatePosition()};options=DCI.extend(defaultOptions,options);this.initialize=function(dmap){this.map=dmap;if(!polygon){this.initElement()}if(DCI.browser.msie){this.map.getOverlayDiv().appendChild(polygon.el())}else{}this.redraw(true)};this.redraw=function(force){if(this.map){updatePosition();applyStyle()}};this.getElement=function(){if(!polygon){this.initElement()}return polygon.el()};this.initElement=function(){if(DCI.browser.msie){spoints=$this.map.fromLatLngToDivPixel(slonlats)}else{spoints=$this.map.fromLatLngToContainerPixel(slonlats)}polygon=$this.map.graphic.polygon(spoints)};this.show=function(){this.getElement().style.display=""};this.hide=function(){this.getElement().style.display="none"};function applyStyle(){if(!polygon){$this.initElement()}polygon.attr(DCI.extend({},options))}function updatePosition(){if(DCI.browser.msie){spoints=$this.map.fromLatLngToDivPixel(slonlats);$this.getElement().points.value=spoints}else{spoints=$this.map.fromLatLngToContainerPixel(slonlats);$this.getElement().setAttribute("points",spoints)}var lonlatArr=fromStringToLonlatArray(slonlats);var pixelArr=[];for(var i=0;i<lonlatArr.length;i++){var pixel;if(DCI.browser.msie){pixel=$this.map.fromLatLngToDivPixel(lonlatArr[i])}else{pixel=$this.map.fromLatLngToContainerPixel(lonlatArr[i])}pixelArr.push(pixel)}if(DCI.browser.msie){if(nodeImageDIV){$this.map.getOverlayDiv().removeChild(nodeImageDIV)}}else{if(nodeImageDIV){$this.map.getContainer().removeChild(nodeImageDIV)}}nodeImageDIV=document.createElement("div");if(DCI.browser.msie){$this.map.getOverlayDiv().appendChild(nodeImageDIV)}else{$this.map.getContainer().appendChild(nodeImageDIV)}nodeImageDIV.style.position="absolute";nodeImageDIV.style.zIndex=2;nodeImageDIV.style.zoom=1;nodeImageDIV.style.display="none";for(var i=0;i<pixelArr.length;i++){var img_tmp=document.createElement("div");addImage(img_tmp,i)}function addvirtualImage(img){img.arrayposition=i;img.style.width="11px";img.style.height="11px";img.style.fontSize="5px";img.style.backgroundColor="#FFcccc";img.style.border="1px solid gray";img.style.zIndex=0;img.title="拖拽";img.style.position="absolute";var pixels=pixelArr[i];var pixel=pixelArr[i+1];var pixelm=new DPoint((pixels.x+pixele.x)/2,(pixels.y+pixele.y)/2);img.style.top=pixelm.y-y;img.style.left=pixelm.x-5;img.onmouseover=img_vi_mouseover;img.onmouseout=img_vi_mouseout;img.onmousedown=img_vi_mousedown;nodeImageDIV.appendChild(img);function img_vi_mousedown(event){if(img.setCapture){img.setCapture()}nodeImageDIV.style.display="";img.onmousemove=img_vi_mousemove;img.onmouseup=img_vi_mouseup}function img_vi_mousemove(event){event=event||window.event;var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEventPixelToLatLng(evpoint);var draw_graphic_style={color:"red",weight:2,dashstyle:"shortdot",opacity:0.5};if(rubberpolygonGraph){rubberpolygonGraph.remove()}rubberpolygonGraph=void (0);var i_img=img.arrayposition;rubberpolygonGraph=new DPolygon(lonlatArr[img.arrayposition]+","+lonlat+","+lonlatArr[img.arrayposition+1],draw_graphic_style);$this.map.addOverlay(rubberpolygonGraph);var p;if(DCI.browser.msie){p=$this.map.fromLatLngToDivPixel(lonlat)}else{p=$this.map.fromLatLngToContainerPixel(lonlat)}img.style.top=p.y-5;img.style.left=p.x-5}function img_vi_mouseup(event){event=event||window.event;var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEventPixelToLatLng(evpoint);if(rubberpolygonGraph){rubberpolygonGraph.remove()}rubberpolygonGraph=void (0);lonlatArr=$this.insertVertex(img.arrayposition+1,lonlat);slonlats=lonlatArr.join(",");updatePosition();nodeImageDIV.style.display=""}function img_vi_mouseover(event){nodeImageDIV.style.display=""}function img_vi_mouseout(event){nodeImageDIV.style.display=""}}function addImage(img){img.arrayposition=i;img.style.width="11px";img.style.height="11px";img.style.fontSize="5px";img.style.backgroundColor="#CCffcc";img.style.border="1px solid gray";img.style.zIndex=0;img.title="拖拽";img.style.position="absolute";var pixel=pixelArr[i];img.style.top=pixel.y-5;img.style.left=pixel.x-5;img.onmouseover=img_mouseover;img.onmouseout=img_mouseout;img.onmousedown=img_mousedown;nodeImageDIV.appendChild(img);function img_mousedown(envet){event=event||window.event;if(img.setCapture){img.setCapture()}nodeImageDIV.style.display="";var buttonright=0;buttonright=event.button;if(buttonright==2){img.oncontextmenu=img_contextmenum}else{img.onmousemove=img_mousemove;img.onmouseup=img_mouseup}}function img_mousemove(event){event=event||window.event;var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEvnetPixelToLatLng(evpoint);var buttonleft=0;if(DCI.browser.msie){if(event.button==1){buttonleft=1}}else{if(event.button==0){buttonleft=1}}if(buttonleft==1){var draw_graphic_style={color:"red",weight:2,dashstyle:"shortdot",opacity:1};if(rubberpolygonGraph){rubberpolygonGraph.remove()}rubberpolygonGraph=void (0);var i_img=img.arrayposition;if(i_img==0){rubberpolygonGraph=new DPolygon(lonlat+","+lonlatArr[img.arrayposition+1],draw_graphic_style)}else{if(i_img==lonlatArr.length-1){rubberpolygonGraph=new DPolygon(lonlatArr[img.arrayposition-1]+","+lonlat,draw_graphic_style)}else{rubberpolygonGraph=new DPolygon(lonlatArr[img.arrayposition-1]+","+lonlat+","+lonlatArr[img.arrayposition+1],draw_graphic_style)}}$this.map.addOverlay(rubberpolygonGraph)}var p;if(DCI.browser.msie){p=$this.map.fromLatLngToDivPixel(lonlat)}else{p=$this.map.fromLatLngToContainerPixel(lonlat)}img.style.top=p.y-5;img.style.left=p.x-5}function img_mouseup(event){event=event||window.event;img.onmouseover=img_mouseover;var buttonleft=0;if(DCI.browser.msie){if(event.button==1){buttonleft=1}}else{if(event.button==0){buttonleft=1}}if(buttonleft==1){if(rubberpolygonGraph){rubberpolygonGraph.remove()}rubberpolygonGraph=void (0);var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEvnetPixelToLatLng(evpoint);lonlatArr[img.arrayposition]=lonlat;slonlats=lonlatArr.join(",");updatePosition()}if(document.releaseCapture){document.releaseCapture()}nodeImageDIV.style.display=""}function img_contextmenun(event){event=event||window.event;if(!$this.memuelement){createMenu()}if(nodeImageDIV){nodeImageDIV.appendChild($this.menuelement)}$this.map.addListener("click",function(){if($this.menuelement){$this.menuelement.style.display="none"}},this);$this.menuelement.onmousedown=menuelement_mousedown;function menuelement_mousedown(event){$this.menuelement.style.display="none";lonlatArr=$this.deleteVertex(img.arraypositon);slonlats=lonlatArr.join(",");updatePosition();$this.menuelement.onmousedown=""}var menu=$this.menuelement;menu.style.display="";var evpoint=new DPoint(event.clientX,event.clientY);var lonlat=$this.map.fromEventPixelToLatLng(evpoint);var p;if(DCI.browser.msie){p=$this.map.fromLatLngToDivPixel(lonlat)}else{p=$this.map.fromLatLngToContainerPixel(lonlat)}menu.style.left=p.x;menu.style.top=p.y;DCI.event.stop();if(document.releaseCapture){document.releaseCapture()}return false}function img_mouseover(event){nodeImageDIV.style.display=""}function img_mouseout(event){nodeImageDIV.style.display=""}}}this.remove=function(){var div;if(DCI.browser.msie){div=this.map.getOverlayDiv()}else{div=this.map.graphic.container}div.removeChild(this.getElement());if(DCI.browser.msie){if(nodeImageDIV){div.removeChild(nodeImageDIV)}}else{if(nodeImageDIV){$this.map.getContainer().removeChild(nodeImageDIV)}}};this.get=function(){if(key){return options[key]}else{return options}};function polygon_click(event){alert(1)}function polygon_mouseout(event){var el=$this.getElement();if(img_catch){img_catch.style.display=""}}var img_catch;function polygon_mouseover(event){var el=$this.getElement();nodeImageDIV.style.display="";var latlng=$this.map.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));var point;if(DCI.browser.msie){point=$this.map.fromLatLngToDivPixel(latlng)}else{point=$this.map.fromLatLngToContainerPixwl(latlng)}var pointArr=fromStringToPoint(spoints);var insertI=-3;var Calcu=new DMath();for(var i=0;i<pointArr.length-1;i++){var cale=Calcu.CalculateThreePoint(pointArr[i].x,pointArr[i].y,pointArr[i+1].x,pointArr[i+1].y,point.x,point.y,15);if(cale==3||cale==1||cale==2){insertI=i;if(!img_catch){img_catch=document.createElement("img")}var pt=Calcu.verPToALine(pointArr[i].x,pointArr[i].y,pointArr[i+1].x,pointArr[i+1].y,point.x,point.y);nodeImageDIV.appendChild(img_catch);img_catch.src="../../images/main/node.gif";img_catch.style.zIndex=0;img_catch.style.display="";img_catch.style.position="absolute";img_catch.style.top=pt.y-5;img_catch.style.left=pt.x-5;if(img_catch.setCapture){img_catch.setCapture()}function img_catch_mousemove(){document.releaseCapture();img_catch.style.display=""}function img_catch_mouseout(){img_catch.style.display=""}function img_catch_click(){var latlng=$this.map.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));var lonlatArr=$this.insertVertex(insertI+1,latlng);slonlats=lonlatArr.join(",");updatePosition()}img_catch.onclick=img_catch_click;img_catch.onmousemove=img_catch_mousemove;img_catch.onmouseout=img_catch_mouseout}}if(insertI>0){DCI.event.bindDom(el,"mousedown",function(event){})}}this.getVertexCount=function(){var lonlatArr=this.fromStringToLonlatArray(slonlats);return lonlatArr.length()};this.insertVertex=function(number,latlng){var lonlatArr=fromStringToLonlatArray(slonlats);var lonlatArrBack=[];for(var i=0;i<number;i++){lonlatArrBack.push(lonlatArr[i])}lonlatArrBack.push(latlng);for(var i=0;i<lonlatArr.length;i++){lonlatArrBack.push(lonlatArr[i])}return lonlatArrBack};this.deleteVertex=function(number){var lonlatArrBack=[];var lonlatArr=fromStringToLonlatArray(slonlats);if(number){for(var i=0;i<number;i++){lonlatArrBack.push(lonlatArr[i])}}};this.getVertex=function(number){var lonlatArr=this.fromStringToLonlatArray(slonlats);return lonlatArr[number]};this.enableEditing=function(){var el=$this.getElement();DCI.event.bindDom(el,"mouseover",polygon_mouseover);DCI.event.bindDom(el,"mouseout",polygon_mouseout)};this.disableEditing=function(){var el=$this.getElement();DCI.event.unbindDom(el,"mouseover",polygon_mouseover)};this.ClassName="DCI.Maps.Polygon"};DCI.Maps.Polygon.prototype=new DOverlay();DPolygon=DCI.Maps.Polygon;DCI.Maps.Rect=function(lonlats,options){var $this=this;var slonlats;if(typeof(lonlats)=="string"){slonlats=lonlats}else{if(lonlats instanceof Array&&lonlats.length>0&&lonlats[0] instanceof DLonLat){if(lonlats.length==2){slonlats=lonlats.toString()}}else{throw new Error("DRect实例化不成功，dlonlat参数不是DLonLat类型。")}}var spoints=void (0);var defaultOptions={filled:true,color:"#D00029",weight:2,opacity:0.7,dashstyle:"none",fillColor:"green",fillOpacity:0.3};this.force=options.force;this.set=function(lonlats,options){options=DCI.extend(defaultOptions,options);if(typeof(lonlats=="string")){if(lonlats.split(",").length==4){slonlats=lonlats}}else{if(lonlats instanceof Array&&lonlats.length>0&&lonlats[0] instanceof DLonLat){if(lonlats.length==2){slonlats=lonlats.toString()}}else{return}}apply();update()};options=DCI.extend(defaultOptions,options);var rect=void (0);this.getlonlats=function(){return slonlats};this.redraw=function(force){if($this.map){update();apply()}};this.initialize=function(dmap){this.map=dmap;if(!rect){this.initElement()}if(DCI.browser.msie){this.map.getOverlayDiv().appendChild(rect.el())}else{}apply()};this.getElement=function(){if(!rect){this.initElement()}return rect.el()};this.initElement=function(){if(DCI.browser.msie){spoints=$this.map.fromLatLngToDivPixel(slonlats)}else{spoints=$this.map.fromLatLngToContainerPixel(slonlats)}rect=$this.map.graphic.rect(spoints)};this.show=function(){this.getElement().style.display=""};this.hide=function(){this.getElement().style.display="none"};function apply(){if(!rect){this.initElement()}DCI.extend({},options);rect.attr(DCI.extend({},options))}function update(){if(DCI.browser.msie){spoints=$this.map.fromLatLngToDivPixel(slonlats);rect.position(spoints)}else{spoints=$this.map.fromLatLngToContainerPixel(slonlats);rect.position(spoints)}}this.remove=function(){var div;if(DCI.browser.msie){div=this.map.getOverlayDiv()}else{div=this.map.graphic.container}div.removeChild(this.getElement())};this.getOption=function(key){if(key){return options[key]}else{return options}};this.ClassName="DCI.Maps.Rect"};DCI.Maps.Rect.prototype=new DOverlay();DRect=DCI.Maps.Rect;DCI.Maps.Circle=function(lonlat,radius,options){var $this=this;var slonlat=void (0);if(typeof(lonlat)=="string"){slonlat=lonlat}else{if(lonlat instanceof DLonLat){slonlat=lonlat.toString()}else{throw new Error("创建DCircle时，lonlat属性为空。")}}var spoints=void (0);var defaultOptions={filled:true,color:"#DF0029",weight:3,opacity:0.5,dashstyle:"none",fillColor:"green",fillOpacity:0.5};this.set=function(lonlat,rs,options){options=DCI.extend(defaultOptions,options);slonlat=lonlat;radius=rs;apply();update()};var calculate=function(lonlats,r){var dwd,djd;djd=180/Math.PI*r/EARTH_RIDUS/Math.cos(lonlats.split(",")[1]*D_C_P);dwd=180/Math.PI*r/EARTH_RIDUS;return djd+","+dwd};options=DCI.extend(defaultOptions,options);var circle=void (0);this.force=options.force;this.redraw=function(force){if($this.map){update();apply()}};this.initialize=function(dmap){this.map=dmap;if(!circle){this.initElement()}if(DCI.browser.msie){this.map.getOverlayDiv().appendChild(circle.el())}else{}apply()};this.getElement=function(){if(!circle){this.initElement()}return circle.el()};this.initElement=function(){if(DCI.browser.msie){spoint=$this.map.fromLatLngToDivPixel(slonlat)}else{spoint=$this.map.fromLatLngToContainerPixel(slonlat)}var dis=calculate(slonlat,radius);var dwd=dis.split(",")[0];var djd=dis.split(",")[1];var s=slonlat.split(",");var p2=parseFloat(s[0])-parseFloat(djd)+","+(parseFloat(s[1])+parseFloat(dwd));if(DCI.browser.msie){p2=$this.map.fromLatLngToDivPixel(p2)}else{p2=$this.map.fromLatLngToContainerPixel(p2)}var pixrj=Math.abs(spoint.split(",")[0]-p2.split(",")[0]);var pixrw=Math.abs(spoint.split(",")[1]-p2.split(",")[1]);if(isNaN(pixrj)||isNaN(pixrw)){throw new Error("坐标不正确")}circle=$this.map.graphic.circle(spoint,pixrj,pixrw)};this.show=function(){this.getElement().style.display=""};this.hide=function(){this.getElement().style.display="none"};function apply(){if(!circle){$this.initElement()}circle.attr(DCI.extend({},options))}function update(){if(DCI.browser.msie){spoint=$this.map.fromLatLngToDivPixel(slonlat)}else{spoint=$this.map.fromLatLngToContainerPixel(slonlat)}var s=slonlat.split(",");if(s=""){return}var dis=calculate(slonlat,radius);var dwd=dis.split(",")[0];var djd=dis.split(",")[1];var s=slonlat.split(",");var p2=parseFloat(s[0])-parseFloat(djd)+","+(parseFloat(s[1])-parseFloat(dwd));if(DCI.browser.msie){p2=$this.map.fromLatLngToDivPixel(p2)}else{p2=$this.map.fromLatLngToContainerPixel(p2)}var pixrj=Math.abs(spoint.split(",")[0]-p2.split(",")[0]);var pixrw=Math.abs(spoint.split(",")[1]-p2.split(",")[1]);circle.position(spoint,pixrj,pixrw)}this.remove=function(){var div;if(DCI.browser.msie){div=this.map.getOverlayDiv()}else{div=this.map.graphic.container}div.removeChild(this.getElement())};this.getOption=function(key){if(key){return options[key]}else{return options}};this.getRidus=function(){return ridus};this.getCenter=function(){var s=slonlat.toString().split(",");return new DLonLat(s[0],s[1])};this.ClassName="DCI.Maps.Circle"};DCI.Maps.Circle.prototype=new DOverlay();DCircle=DCI.Maps.Circle;DCI.Maps.Popup=function(dlonlat,title,content,options){var $this=this;var map=void (0);if(!(dlonlat instanceof DLonLat)){throw new Error("DPopup实例化不成功，dlonlat不是DLonLat类型。");return void (0)}var lonlat=dlonlat.clone()||void (0);var content=content||"";var defaultOptions={color:"green",width:250,height:80,offsetx:0,offsety:0,headOffset:70,titleType:"text",flash:false};options=DCI.extend(defaultOptions,options);var tbw=6;var th=27;var bh=9;var tlh=17;var tlw=11;var fh=14;var fw=12;var twidth=options.width+tbw*2;var theight=options.height+th+bh+fh;var isLoaded=false;this.isShow=false;var flag=1;var r1=void (0),r2=void (0),r3=void (0),c_top_left=void (0),c_top_center=void (0),c_top_right=void (0),c_center_left=void (0),c_center_center=void (0),c_center_right=void (0),c_bottom_left=void (0),c_bottom_center=void (0),c_bottom_right=void (0),div=void (0),finger=void (0),tools=void (0),table=void (0),contentEl=void (0),titleEl=void (0);var map=void (0);var overlayDiv=void (0);var baseURL=DCI.getDCILocation()+"DCI/images";this.force=options.force;this.initialize=function(dmap){if(!dmap instanceof DMap){throw new Error("DPopup.initialize()参数不匹配。dmap不是DMap类型。")}map=dmap;overlayDiv=map.getOverlayDiv();initElement();overlayDiv.appendChild(div);applyStyles()};this.getElement=function(){if(!isLoaded){initElement()}return div};function initElement(){div=document.createElement("div");finger=document.createElement("div");tools=document.createElement("div");contentEl=document.createElement("div");titleEl=document.createElement("div");table=document.createElement("table");table.setAttribute("cellPadding",0);table.setAttribute("cellSpacing",0);r1=table.insertRow(-1);r2=table.insertRow(-1);r3=table.insertRow(-1);c_top_left=r1.insertCell(-1);c_top_center=r1.insertCell(-1);c_top_right=r1.insertCell(-1);c_center_left=r2.insertCell(-1);c_center_center=r2.insertCell(-1);c_center_right=r2.insertCell(-1);c_bottom_left=r3.insertCell(-1);c_bottom_center=r3.insertCell(-1);c_bottom_right=r3.insertCell(-1);c_top_center.appendChild(titleEl);c_center_center.appendChild(contentEl);div.appendChild(table);div.appendChild(finger);div.appendChild(tools);DCI.event.bindDom(div,"mousedown",DCI.event.stop);DCI.event.bindDom(div,"mousemove",DCI.event.stop);DCI.event.bindDom(div,"mouseup",DCI.event.stop);DCI.event.bindDom(div,"mousewheel",DCI.event.stop);DCI.event.bindDom(div,"DOMMouseScroll",DCI.event.stop);DCI.event.bindDom(div,"click",DCI.event.stop);DCI.event.bindDom(tools,"click",function(){play(2)});if(typeof(title)=="string"){if(options.titleType=="text"){titleEl.innerHTML='<div style="font-size:14px;color:#000;font-weight:bold;padding-top:5px;padding-left:5px;">'+title+"</div>"}else{if(options.titleType=="html"){titleEl.innerHTML=title}else{return}}}else{if(typeof(title)=="object"){titleEl.innerHTML="";titleEl.appendChild(title)}}if(typeof(content)=="string"){contentEl.innerHTML=content}else{if(typeof(content)=="object"){contentEl.innerHTML="";contentEl.appendChild(content)}}isLoaded=true}this.remove=function(){if(isLoaded){overlayDiv.removeChild(div)}};this.redraw=function(force){if(map){var point=map.fromLatLngToDivPixel(lonlat);var width=div.style.offsetWidth;var height=div.style.offsetHeight;div.style.left=px(point.x-(twidth/2)+options.offsetx+options.headOffset);div.style.top=px(point.y-(theight)+options.offsety)}if(force){applyStyles()}};function px(n){return n+"px"}function applyStyles(){if(options.color!="green"&&options.color!="red"){options.color="green"}twidth=options.width+tbw*2;theight=options.height+th+bh+fh-2;if((twidth/2-tbw*2)<Math.abs(options.headOffset)){if(options.headOffset>0){options.headOffset=twidth/2-tbw*2}else{options.headOffset=-twidth/2+tbw*2}}var top_left={background:"url("+baseURL+"/pop_"+options.color+".gif) no-repeat 0px 0px",width:px(tbw),height:px(th)};var top_center={background:"url("+baseURL+"/pop_"+options.color+"_l.png) repeat-x 0px 0px",width:px(options.width),height:px(th),paddingTop:"1px"};var top_right={background:"url("+baseURL+"/pop_"+options.color+".gif) no-repeat -7px 0px",width:px(tbw),height:px(th)};var center_left={background:"url("+baseURL+"/pop_"+options.color+"_v.png) repeat-y 0px 0px",width:px(tbw),height:px(options.height)};var center_center={background:"#FFFFFF",overflow:"auto",width:px(options.width),height:px(options.height)};var center_right={background:"url("+baseURL+"/pop_"+options.color+"_v.png) repeat-y -6px 0px",width:px(tbw),height:px(options.height)};var bottom_left={background:"url("+baseURL+"/pop_"+options.color+".gif) no-repeat 0px -29px",width:px(tbw),height:px(bh)};var bottom_center={background:"url("+baseURL+"/pop_"+options.color+"_l.png) repeat-x 0px -28px",width:px(options.width),height:px(bh)};var bottom_right={background:"url("+baseURL+"/pop_"+options.color+".gif) no-repeat -7px -29px",width:px(tbw),height:px(bh)};var finger_style={background:"url("+baseURL+"/pop_"+options.color+".gif) no-repeat -0px -38px",height:px(fh),width:px(fw),marginLeft:px((twidth-fw)/2-options.headOffset),marginTop:px(-3),position:"absolute",zIndex:100};var div_style={display:$this.isShow?"":"none",position:"absolute",zIndex:100,width:px(twidth),height:px(theight),overflow:"hidden"};var tools_style={position:"absolute",width:px(tlw),height:px(tlh),background:"url("+baseURL+"/pop_"+options.color+".gif) no-repeat 0px -53px",left:px(twidth-tlw-10),top:px((th-tlh)-3),zIndex:100,cursor:"pointer"};var title_style={overflow:"hidden",width:px(options.width-tlw-3),height:px(th)};DCI.applyStyles(c_top_left,top_left);DCI.applyStyles(c_top_center,top_center);DCI.applyStyles(c_top_right,top_right);DCI.applyStyles(c_center_left,center_left);DCI.applyStyles(contentEl,center_center);DCI.applyStyles(c_center_right,center_right);DCI.applyStyles(c_bottom_left,bottom_left);DCI.applyStyles(c_bottom_center,bottom_center);DCI.applyStyles(c_bottom_right,bottom_right);DCI.applyStyles(finger,finger_style);DCI.applyStyles(div,div_style);DCI.applyStyles(tools,tools_style);DCI.applyStyles(titleEl,title_style)}function play(flag){$this.isShow=flag==1?true:false;var m=300;var s=30;var i=30;var c=s;var j=(theight)/(m/i);var currentHeight=0;if(options.flash){if(flag==1){div.style.height="1px";div.style.display="";currentHeight=0}else{if(flag==2){currentHeight=(theight);j=-j}}var t=setInterval(function(){if(c<=m){currentHeight+=j;if(flag==2){if(currentHeight<=Math.abs(j)){div.style.display="none"}}div.style.height=px(currentHeight);c+=i}else{clearInterval(t);t=null;c=s}},i)}else{if(flag==1){div.style.display=""}else{if(flag==2){div.style.display="none"}}}}this.show=function(){map.panTo(lonlat);play(1)};this.hide=function(){play(2)};this.setDLonLat=function(dlonlat){if(!(dlonlat instanceof DLonLat)){throw new Error("DPopup.setDLonLat()方法，dlonlat不是DLonLat类型。")}lonlat=dlonlat.clone()};this.getDLonLat=function(){return lonlat};this.ClassName="DCI.Maps.Popup"};DCI.Maps.Popup.prototype=new DCI.Maps.Overlay();DPopup=DCI.Maps.Popup;baseVectorUrlArray=["http://210.75.193.190:8080/Vector","http://210.75.193.191:8080/Vector"];baseRasterUrlArray=["http://210.75.193.190:8080/Raster","http://210.75.193.191:8080/Raster"];baseVRUrlArray=["http://210.75.193.190:8080/VR","http://210.75.193.191:8080/VR"];D_VECTOR_MAP=new DCI.Maps.MapType({maxLevel:10,zoomOffset:-1,name:"矢量地图",baseUrl:baseVectorUrlArray,emptyURL:["http://www.beijingmap.gov.cn/Vector/blank.gif"]});D_SATE_MAP=new DCI.Maps.MapType({suffix:".jpg",maxLevel:10,zoomOffset:-1,name:"影像地图",baseUrl:baseRasterUrlArray,emptyURL:["http://www.beijingmap.gov.cn/Vector/blank.gif"]});D_VECTOR_SATE_MAP=new DCI.Maps.MapType({maxLevel:10,zoomOffset:-1,name:"矢影叠加",baseUrl:baseVRUrlArray,emptyURL:["http://www.beijingmap.gov.cn/VR/blank.gif"]});D_MAP_BOUNDS=new DLonLatBounds(new DLonLat(115.4,39.57226),new DLonLat(117.52929,40.998));D_DEFAULT_MAP_TYPES=[D_VECTOR_MAP,D_SATE_MAP,D_VECTOR_SATE_MAP];D_C_P=0.017453292519943295;EARTH_RIDUS=6367446.1571;DMouseMode={ZOOM_IN:1,ZOOM_OUT:2,GET_POINT:3,DRAW_CIRCLE:4,DRAW_RECTANGLE:5,DRAW_POLYLINE:6,DRAW_POLYGON:7,RULER:8,COMPUTE_AREA:9,MAP_DRAG:10,NONE:0};DControlAnchor={TOP_RIGHT:1,TOP_LEFT:2,BOTTOM_RIGHT:3,BOTTOM_LEFT:4};DTitleAnchor={TOP_LEFT:1,TOP_CENTER:2,TOP_RIGHT:3,MIDDLE_LEFT:4,MIDDLE_CENTER:5,MIDDLE_RIGHT:6,BOTTOM_LEFT:7,BOTTOM_CENTER:8,BOTTOM_RIGHT:9};DCI.Maps.Map=function(container){if(!container){throw new Error("创建DMap时,container参数为空。")}var width=0;if(container.style.width){width=container.style.width;}else if(container.currentStyle){width=container.currentStyle.width;}else if(container.clientWidth){width=container.clientWidth;}var height=0;if(container.style.height){height=container.style.height;}else if(container.currentStyle){height=container.currentStyle.height;}else if(container.clientHeight){height=container.clientHeight;}var viewSize=new DSize(parseFloat(width),parseFloat(height));if(!(viewSize.height!=0&&viewSize.width!=0)){throw new Error("创建DMap时,传递的container元素没有设置高和宽，地图无法正常显示。")}var mapDiv=createDiv({id:"tilesContainer",style:{top:0,left:0}});var overlayDiv=createDiv({id:"overlaysContainer",style:{zIndex:1,top:0,left:0}});var drawDiv=createDiv({id:"drawContainer",style:{top:0,left:0}});var topLeftControls=createDiv({id:"topLeftControls",style:{zIndex:2,left:0,top:0}});var topRightContorls=createDiv({id:"topRightContorls",style:{zIndex:2,right:0,top:0}});var bottomLeftControls=createDiv({id:"bottomLeftControls",style:{zIndex:2,bottom:0,left:0}});var bootomRightControls=createDiv({id:"bootomRightControls",style:{zIndex:2,bottom:0,right:0}});var mapContainer=container;mapContainer.appendChild(mapDiv);mapContainer.appendChild(overlayDiv);mapContainer.appendChild(drawDiv);mapContainer.appendChild(topLeftControls);mapContainer.appendChild(topRightContorls);mapContainer.appendChild(bottomLeftControls);mapContainer.appendChild(bootomRightControls);function createDiv(options){options=options||{};var style=DCI.extend({position:"absolute",zIndex:0,zoom:1},options.style);var map=document.createElement("div");map.id=options.id||"";DCI.applyStyles(map,style);return map}var scrollWheelZoomEnabled=false;this.enableScrollWheelZoom=function(){DCI.event.bindDom(mapContainer,"mousewheel",mousewheelscroll_zoom,this);DCI.event.bindDom(mapContainer,"DOMMouseScroll",mousewheelscroll_zoom,this);scrollWheelZoomEnabled=true};this.disableScrollWheelZoom=function(){DCI.event.unbindDom(mapContainer,"mousewheel",mousewheelscroll_zoom);DCI.event.unbindDom(mapContainer,"DOMMouseScroll",mousewheelscroll_zoom);scrollWheelZoomEnabled=false};this.scrollWheelZoomEnabled=function(){return scrollWheelZoomEnabled};var keyMapEnabled=false;this.enableKeyMap=function(){mapContainer.focus();DCI.event.bindDom(mapContainer,"keydown",keypress_map);DCI.event.bindDom(mapContainer,"keyup",keyup_map);keyMapEnabled=true};this.disableKeyMap=function(){DCI.event.unbindDom(mapContainer,"keydown",keypress_map);DCI.event.unbindDom(mapContainer,"keyup",keyup_map);keyMapEnabled=false};this.keyMapEnabled=function(){return keyMapEnabled};var dbClickMapEnabled=false;this.enableDblClickMap=function(){mapContainer.focus();DCI.event.bindDom(mapContainer,"dblclick",dblclick_map);dbClickMapEnabled=true};this.disableDblClickMap=function(){DCI.event.bindDom(mapContainer,"dblclick",dblclick_map);dbClickMapEnabled=false};this.dblClickMapEnabled=function(){return dbClickMapEnabled};function dblclick_map(event){var p=new DPoint(event.clientX,event.clientY);p=$this.fromEvnetPixelToLatLng(p);$this.panTo(p)}this.addControl=function(control){if(!control){return}if(!DCI.contains(controls,control)){controls.push(control);control.initialize(this);var el=control.getElement();if(el){var div=document.createElement("div");var anchor=control.getAnchor();switch(anchor){case DControlAnchor.TOP_RIGHT:DCI.applyStyles(div,{position:"absolute",right:0,top:0});topRightContorls.appendChild(div);break;case DControlAnchor.TOP_LEFT:DCI.applyStyles(div,{position:"absolute",left:0,top:0});topLeftControls.appendChild(div);break;case DControlAnchor.BOTTOM_RIGHT:DCI.applyStyles(div,{position:"absolute",right:0,bottom:0});bootomRightControls.appendChild(div);break;case DControlAnchor.BOTTOM_LEFT:DCI.applyStyles(div,{position:"absolute",left:0,bottom:0});bottomLeftControls.appendChild(div);break}div.appendChild(el)}}};this.removeControl=function(control){if(!control){return}var newControls=new Array();for(var i=0;i<controls.length;i++){var o=controls[i];if(o==control){var el=control.getElement();if(el){var anchor=control.getAnchor();switch(anchor){case DControlAnchor.TOP_RIGHT:topRightContorls.removeChild(el.parentElement);break;case DControlAnchor.TOP_LEFT:topLeftControls.removeChild(el.parentElement);break;case DControlAnchor.BOTTOM_RIGHT:bootomRightControls.removeChild(el.parentElement);break;case DControlAnchor.BOTTOM_LEFT:bottomLeftControls.removeChild(el.parentElement);break}}}else{newControls.push(o)}}controls=newControls};this.getContainer=function(){return mapContainer};this.getMapDiv=function(){return mapDiv};this.addMapType=function(mapType){if(!mapType){throw new Error("调用addMapType时,mapType参数为空。")}if(mapType.ClassName!="DCI.Maps.MapType"){throw new Error("调用addMapType时,mapType参数不是DMapType类型。")}if(!DCI.contains(mapTypes,mapType)){mapType.init(this);mapTypes.push(mapType);fire("addmaptype",maptype)}};this.removeMapType=function(mapType){if(mapType instanceof DMapType){throw new Error("调用removeMapType时,mapType参数不是DMapType类型。")}if(mapTypes.length==1){throw new Error("调用removeMapType时,mapTypes数组长度为1。")}if(!DCI.contains(mapTypes,mapType)){mapTypes=DCI.diff(mapTypes,mapType);currentMapType=mapTypes[0];centerByPoint(centerPoint);fire("removemaptype",currentMapType)}};this.setMapType=function(maptype){if(maptype instanceof DMapType){for(var i=0;i<mapTypes.length;i++){if(mapTypes[i]==maptype&&currentMapType!=maptype){currentMapType=maptype;centerByPoint(centerPoint);fire("maptypechanged",maptype);break}}}};this.getMapTypes=function(){return mapTypes};this.getCurrentMapType=function(){return currentMapType};this.isLoaded=function(){return isLoaded};this.getZoomLevel=function(){if(!this.isLoaded()){throw new Error("调用getCenter时,DMap还未曾调用setCenter进行地图初始化。")}return zoomLevel};this.getCenter=function(){if(!this.isLoaded()){throw new Error("调用getCenter时,DMap还未曾调用setCenter进行地图初始化。")}return centerLonLat.clone()};this.getViewSize=function(){return viewSize.clone()};this.getBounds=function(){var minX=centerPoint.x-viewSize.width/2;var minY=centerPoint.y-viewSize.height/2;var maxX=centerPoint.x+viewSize.width/2;var maxY=centerPoint.y+viewSize.height/2;var minLonLat=currentMapType.fromEvnetPixelToLatLng(new DPoint(minX,minY),zoomLevel);var maxLonLat=currentMapType.fromEvnetPixelToLatLng(new DPoint(maxX,maxY),zoomLevel);return new DLonLatBounds(minLonLat,maxLonLat)};this.getBoundsZoomLevel=function(bounds,multiple){if(bounds instanceof DLonLatBounds){multiple=multiple||1.5;var dipBounds=bounds.diploid(multiple);var minLon=dipBounds.minLon;var minLat=dipBounds.minLat;var maxLon=dipBounds.maxLon;var maxLat=dipBounds.maxLat;var xSpan=(maxLon-minLon)/((2*Math.pow(2,currentMapType.getZoomOffset())*3.515625/3600)*(tableSize.width-2));var ySpan=(maxLat-minLat)/((2*Math.pow(2,currentMapType.getZoomOffset())*3.515625/3600)*(tableSize.height-2));var pSpan=Math.max(xSpan,ySpan);var newZoomLevel=Math.ceil(Math.log(pSpan)/Math.log(2));if(minLon==maxLon||maxLon==maxLat){newZoomLevel=zoomLevel}else{if(newZoomLevel<0){newZoomLevel=0}}if(newZoomLevel>currentMapType.getNumZoomLevels()-1){newZoomLevel=currentMapType.getNumZoomLevels()-1}return newZoomLevel}};this.setCenter=function(center,zoom){centerChanged=false;zoomChanged=false;if(center){if(center.ClassName=="DCI.Maps.LonLat"){if(!center.equals(centerLonLat)){centerChanged=true;centerLonLat=center}}else{throw new Error("调用setCenter时,center参数不是DLonLat类型。")}}else{throw new Error("调用setCenter时,center参数为空。")}if(!zoom&&zoom!=0){if(!this.isLoaded()){throw new Error("调用setCenter时,zoom参数为空。")}}else{if(!typeof(zoom)=="number"){throw new Error("调用setCenter时,zoom参数不是number类型。")}else{if(zoom>=currentMapType.getNumZoomLevels()){zoom=currentMapType.getNumZoomLevels()-1}else{if(zoom<0){zoom=0}}if(zoomLevel!=zoom){zoomChanged=true;zoomLevel=zoom}}}if(zoomChanged||centerChanged){var dpoint=currentMapType.getPointByLonLat(centerLonLat,zoomLevel);if(!this.isLoaded()){calculateTile.call(this);loadTiles.call(this)}centerByPoint(dpoint);if(!this.isLoaded()){isLoaded=true}}};this.zoomIn=function(){this.setZoomLevel(zoomLevel-1)};this.zoomOut=function(){this.setZoomLevel(zoomLevel+1)};this.setZoomLevel=function(zoom){if(!this.isLoaded()){throw new Error("调用setZoomLevel时,DMap还未曾调用setCenter进行地图初始化。")}if(!zoom&&zoom!=0){throw new Error("调用setZoomLevel时,zoom参数为空。")}if(!(typeof(zoom)=="number")){throw new Error("调用setZoomLevel时,zoom参数不是number类型。")}if(zoomLevel==zoom){return}if(zoom>=currentMapType.getNumZoomLevels()){zoom=currentMapType.getNumZoomLevels()-1}else{if(zoom<0){zoom=0}}this.setCenter(centerLonLat,zoom)};this.panDirection=function(dx,dy){if(dx==0||dx==1||dx==-1||dy==0||dy==1||dy==-1){pan(dx*Math.floor(viewSize.width*0.5),dy*Math.floor(viewSize.height*0.5))}this.getCurrentMapType().getPixelScaleFromMeter(1,50)};this.panTo=function(center){if(center instanceof DLonLat){var viewBounds=this.getBounds();var dipBounds=viewBounds.diploid(3);if(dipBounds.containsLonLat(center)){var s=currentMapType.getPointByLonLat(center,zoomLevel);var s1=currentMapType.getPointByLonLat(centerLonLat,zoomLevel);pan(s1.x-s.x,s1.y-s.y)}else{this.setCenter(center)}}};this.panBy=function(position){if(!position||position.ClassName!="DCI.Types.Size"){return}pan(position.width,position.height)};this.resizeMap=function(){if(viewSize.width!=mapContainer.offsetWidth||viewSize.height!=mapContainer.offsetHeight){viewSize.width=mapContainer.offsetWidth;viewSize.height=mapContainer.offsetHeight;calculateTile.call(this);loadTiles.call(this);centerByPoint(centerPoint)}else{return}};this.setMouseMode=function(mode,callback,graphicStyle){if(mouseMode){DCI.event.unbindDom(mapContainer,"mousedown",mouseMode,this)}if(mode!=DMouseMode.MAP_DRAG||mode==DMouseMode.NONE){if(VectorDraw){this.removeOverlay(VectorDraw);VectorDraw=null}if(rubberlineGraph){this.removeOverlay(rubberlineGraph);rubberlineGraph=null}if(rubberPolygonGraph){this.removeOverlay(rubberPolygonGraph);rubberPolygonGraph=null}}if(DMouseMode.GET_POINT==mode){mouseMode=mousedown_getPoint;mouseModeCallBack=callback}else{if(DMouseMode.ZOOM_IN==mode){mouseMode=mousedown_zoomInOrzoomOut;mouseModeCallBack=zoomInMBR}else{if(DMouseMode.ZOOM_OUT==mode){mouseMode=mousedown_zoomInOrzoomOut;mouseModeCallBack=zoomOutMBR}else{if(DMouseMode.DRAW_POLYLINE==mode){strGraphic="";mouseMode=mousedown_drawline;mouseModeCallBack=callback;DCI.event.bindDom(mapContainer,"mousemove",mousemove_drawline,$this);DCI.event.bindDom(mapContainer,"dblclick",mousedblclick_drawline,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drawline,$this)}else{if(DMouseMode.DRAW_POLYGON==mode){strGraphic="";mouseMode=mousedown_drawpolygon;mouseModeCallBack=callback;DCI.event.bindDom(mapContainer,"mousemove",mousemove_drawpolygon,$this);DCI.event.bindDom(mapContainer,"dblclick",mousedblclick_drawpolygon,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drawpolygon,$this)}else{if(DMouseMode.DRAW_RECTANGLE==mode){mouseMode=mousedown_drawrect;mouseModeCallBack=callback}else{if(DMouseMode.DRAW_CIRCLE==mode){mouseMode=mousedown_drawcircle;mouseModeCallBack=callback}else{if(DMouseMode.RULER==mode){strGraphic="";mouseMode=mousedown_drawline;mouseModeCallBack=measurelength;DCI.event.bindDom(mapContainer,"mousemove",mousemove_drawline,$this);DCI.event.bindDom(mapContainer,"dblclick",mousedblclick_measureLength,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drawline,$this)}else{if(DMouseMode.COMPUTE_AREA==mode){strGraphic="";mouseMode=mousedown_drawpolygon;mouseModeCallBack=measurearea;DCI.event.bindDom(mapContainer,"mousemove",mousemove_drawpolygon,$this);DCI.event.bindDom(mapContainer,"dblclick",mousedblclick_measureArea,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drawpolygon,$this)}else{if(DMouseMode.MAP_DRAG==mode){mouseMode=mousedown_drag}}}}}}}}}}if(mouseMode){DCI.event.bindDom(mapContainer,"mousedown",mouseMode,this)}};function measurelength(lineStr){var line=lineStr.split(",");var pts=[];for(var i=0;i<line.length;i=i+2){var pt=new DLonLat(line[i],line[i+1]);pts.push(pt)}var dlength=Number(0);var pt0=pts[0];var pt1;for(var i=1;i<pts.length;i++){pt1=pts[i];dlength+=DLonLat.getDistanceOfTwo(pt0,pt1);pt0=pt1}if(dlength>1000){dlength=dlength/1000;dlength=Math.round(Number(dlength)*100)/100;dlength=dlength+"公里"}else{dlength=Math.round(Number(dlength)*100)/100;dlength=dlength+"米"}DCI.event.unbindDom(mapContainer,"mousedown",mousedown_drawline);if(dlength!=NaN){alert("距离："+dlength)}}function measurearea(lineStr){var line=lineStr.split(",");var lat=[],lon=[];for(var i=0;i<line.length;i=i+2){lon.push(line[i]*D_C_P);lat.push(line[i+1]*D_C_P)}if(lat.length==lon.length&&lat.length>1){var n=lat.length;var latBack=[];var lonBack=[];for(var i=0;i<n;i++){if(i>0){if(!latBack[i-1]){continue}if((lat[i]==latBack[i-1])&&(lon[i]==lonBack[i-1])){continue}else{latBack.push(lat[i]);lonBack.push(lon[i])}}else{latBack.push(lat[i]);lonBack.push(lon[i])}}}else{return}if(lonBack.length==1){return}var c=IsInnnerIntersection(lonBack,latBack);if(c==1){alert("不能计算自相交多边形的面积!");return}var d=SphericalPolygonArea(lon,lat);var strArea="";d=Math.round(Number(d)*100)/100;if(d>1000000){d=d/1000000;d=Math.round(Number(d)*100)/100;strArea=d+"平方公里"}else{d=Math.round(Number(d)*100)/100;strArea=d+"平方米"}if(d!=NaN){alert("总面积: "+strArea)}DCI.event.unbindDom(mapContainer,"mousedown",mousedown_drawpolygon)}function Haversine(x){return(1-Math.cos(x))/2}function CalcHav(lam1,beta1,lam2,beta2){var cosB1=Math.cos(beta1);var cosB2=Math.cos(beta2);var hav=Haversine(beta2-beta1)+cosB1*cosB2*Haversine(lam2-lam1);hav=2*Math.asin(Math.sqrt(hav));return hav}function SphericalPolygonArea(lon,lat){var n=lat.length;if(n<3){return 0}var sum=0;var x1,y1,x2,y2,x3,y3;y1=lat[0];x1=lon[0];for(var j=1;j<n-1;j++){y2=lat[j];x2=lon[j];y3=lat[j+1];x3=lon[j+1];var a=CalcHav(x1,y1,x2,y2);var b=CalcHav(x2,y2,x3,y3);var c=CalcHav(x3,y3,x1,y1);var s=0.5*(a+b+c);var t=Math.tan(s/2)*Math.tan((s-a)/2)*Math.tan((s-b)/2)*Math.tan((s-c)/2);var excess=Math.abs(4*Math.atan(Math.sqrt(Math.abs(t))));if(x1*y2-y1*x2+y1*x3-x1*y3+x2*y3-y2*x3>0){excess=-excess}sum+=excess}return Math.abs(sum)*EARTH_RIDUS*EARTH_RIDUS}function IsInnnerIntersection(lon,lat){var x1,y1,x2,y2,x3,y3,x4,y4;var n=lon.length;for(var i=0;i<n;i++){x1=lon[i];y1=lat[i];x2=lon[(i+1)%n];y2=lat[(i+1)%n];for(var j=i+2;j<i+n-1;j++){x3=lon[j%n];y3=lat[j%n];x4=lon[(1+j)%n];y4=lat[(1+j)%n];if(InterSection8(x1,y1,x2,y2,x3,y3,x4,y4)){return 1}}}return 0}function InterSection8(x1,y1,x2,y2,x3,y3,x4,y4){var a1,b1,c1,u,v;a1=((x3-x4)*(y2-y1)-(y3-y4)*(x2-x1));if(a1==0){return 0}b1=((x3-x1)*(y4-y3)-(x4-x3)*(y3-y1));c1=((x3-x1)*(y2-y1)-(x2-x1)*(y3-y1));try{u=(b1/a1)}catch(e){return 0}try{v=(c1/a1)}catch(e){return 0}if(u>1||u<0){return 0}if(v>1||v<0){return 0}return 1}var rubberlineGraph;var rubberPolygonGraph;var rubberPoint;var strGraphic;var VectorDraw;var mouseMode;var mouseModeCallBack;var pDragPoint=new DPoint();var draw_graphic_style={color:"#205AA7",weight:2,opacity:1,fillColor:"green",fillOpacity:0.5};function mousedown_getPoint(event,callback){var button=0;if(DCI.browser.msie){if(event.button==1){button=1}}else{if(event.button==0){button=1}}if(button==1){var p=new DPoint(event.clientX,event.clientY);var lonlat=$this.fromEvnetPixelToLatLng(p);mouseModeCallBack(lonlat)}}function mousedown_zoomInOrzoomOut(event,callback){var button=0;if(DCI.browser.msie){if(event.button==1){button=1}}else{if(event.button==0){button=1}}if(button==1){DCI.event.bindDom(mapContainer,"mousemove",mousemove_zoomInOrzoomOut,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_zoomInOrzoomOut,$this);var point=new DCI.Types.Point(event.clientX,event.clientY);pDragPoint=$this.fromEvnetPixelToLatLng(point);if(mapContainer.setCapture){mapContainer.setCapture()}var slonlats=pDragPoint.toString()+","+pDragPoint.toString();VectorDraw=new DRect(slonlats,draw_graphic_style);$this.addOverlay(VectorDraw);DCI.event.stop(event)}}function mousemove_zoomInOrzoomOut(event){var point=new DPoint(event.clientX,event.clientY);var lastPoint=$this.fromEvnetPixelToLatLng(point);var slonlats=pDragPoint.toString()+","+lastPoint.toString();if(VectorDraw){VectorDraw.set(slonlats,draw_graphic_style)}}function mouseup_zoomInOrzoomOut(event){DCI.event.unbindDom(mapContainer,"mousemove",mousemove_zoomInOrzoomOut);if(VectorDraw){mouseModeCallBack();DCI.event.unbindDom(mapContainer,"mouseup",mouseup_zoomInOrzoomOut)}if(document.releaseCapture){document.releaseCapture()}DCI.event.stop(event)}function zoomInMBR(){var c=DLonLatBounds.minBox(VectorDraw.getlonlats().toString());$this.removeOverlay(VectorDraw);var dSpan=$this.getBounds().getSpanLon();dSpan=Math.min($this.getBounds().getSpanLon()/viewSize.width,$this.getBounds().getSpanLat()/viewSize.height);if(c.getSpanLon()<2*dSpan||c.getSpanLat()<2*dSpan){return}var pSp=calcSpanScale(c.toString());var level=zoomLevel+Math.ceil(Math.log(pSp)/Math.log(2));if(level==zoomLevel){$this.panTo(c.getCenter())}else{$this.setCenter(c.getCenter(),Math.min(level,zoomLevel))}VectorDraw=void (0)}function calcSpanScale(strBound){var strPoint=$this.fromLatLngToDivPixel(strBound);var s=strPoint.split(",");var pts=[];for(var i=0;i<s.length;i=i+2){pts.push(new DPoint(s[i],s[i+1]))}var pxBound=new DCI.Maps.Bounds(pts);var xSp=(pxBound.maxX-pxBound.minX)/viewSize.width;var ySp=(pxBound.maxY-pxBound.minY)/viewSize.height;var pSp=Math.max(xSp,ySp);return pSp}function zoomOutMBR(){var vb=DLonLatBounds.minBox(VectorDraw.getlonlats().toString());var mb=$this.getBounds();$this.removeOverlay(VectorDraw);VectorDraw=void (0);vb=DLonLatBounds.intersection(vb,mb);var dSpan=$this.getBounds().getSpanLon();dSpan=dSpan/viewSize.width;if(vb.getSpanLon()<2*dSpan||vb.getSpanLat()<2*dSpan){return}var pSp=calcSpanScale(vb.toString());var iZoom=zoomLevel-Math.ceil(Math.log(pSp)/Math.log(2));Math.min(currentMapType.getNumZoomLevels(),iZoom);$this.setCenter(vb.getCenter(),iZoom)}function mousedblclick_measureLength(event){if(strGraphic!=""){if(mouseModeCallBack){mouseModeCallBack(strGraphic)}$this.setMouseMode(DMouseMode.MAP_DRAG);DCI.event.unbindDom(mapContainer,"dblclick",mousedblclick_measureLength,$this);DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drawline,$this);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drawline,$this);if(rubberlineGraph){$this.removeOverlay(rubberlineGraph);rubberlineGraph=void (0)}strGraphic=""}}function mousedblclick_drawline(event){if(strGraphic!=""){if(mouseModeCallBack){mouseModeCallBack(strGraphic)}$this.removeOverlay(VectorDraw);VectorDraw=void (0);DCI.event.unbindDom(mapContainer,"dblclick",mousedblclick_drawline,$this);DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drawline,$this);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drawline,$this);DCI.event.unbindDom(mapContainer,"mousedown",mousedown_drawline,this);if(rubberlineGraph){$this.removeOverlay(rubberlineGraph);rubberlineGraph=void (0)}strGraphic=""}}function mousedown_drawline(event){var point=new DPoint(event.clientX,event.clientY);pDragPoint=$this.fromEvnetPixelToLatLng(point);if(strGraphic==""){strGraphic=pDragPoint.toString()}else{var c=strGraphic.split(",");if(c[c.length-2]+","+c[c.length-1]==pDragPoint.toString()){}else{strGraphic=strGraphic+","+pDragPoint.toString()}}if(!VectorDraw){VectorDraw=new DPolyline(pDragPoint.toString()+","+pDragPoint.toString(),draw_graphic_style);$this.addOverlay(VectorDraw);if(!rubberlineGraph){rubberlineGraph=new DPolyline(pDragPoint.toString()+","+pDragPoint.toString(),draw_graphic_style);$this.addOverlay(rubberlineGraph)}}else{VectorDraw.set(strGraphic)}DCI.event.stop(event)}function mousemove_drawline(event){var point=new DCI.Types.Point(event.clientX,event.clientY);var lastPoint=$this.fromEvnetPixelToLatLng(point);if(rubberlineGraph&&strGraphic!=""){$this.removeOverlay(rubberlineGraph);rubberlineGraph=void (0);rubberlineGraph=new DPolyline(pDragPoint.toString()+","+lastPoint.toString(),{color:"#0F5AA7",dashstyle:"shortdot",weight:2,opacity:0.5})}$this.addOverlay(rubberlineGraph)}function mouseup_drawline(event){}function mousedblclick_measureArea(event){if(strGraphic!=""){if(rubberPolygonGraph){$this.removeOverlay(rubberPolygonGraph);rubberPolygonGraph=void (0)}var c=strGraphic.split(",");VectorDraw.set(strGraphic+","+c[0]+","+c[1]);if(mouseModeCallBack){mouseModeCallBack(strGraphic)}DCI.event.unbindDom(mapContainer,"dblclick",mousedblclick_measureArea,$this);DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drawpolygon,$this);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drawpolygon,$this);strGraphic=""}}function mousedblclick_drawpolygon(event){if(strGraphic!=""){var c=strGraphic.split(",");if(mouseModeCallBack){mouseModeCallBack(strGraphic+","+c[0]+","+c[1])}$this.removeOverlay(VectorDraw);VectorDraw=void (0);DCI.event.unbindDom(mapContainer,"dblclick",mousedblclick_drawpolygon,$this);DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drawpolygon,$this);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drawpolygon,$this);DCI.event.unbindDom(mapContainer,"mousedown",mousedown_drawpolygon,$this);if(rubberPolygonGraph){$this.removeOverlay(rubberPolygonGraph);rubberPolygonGraph=void (0)}strGraphic=""}}function mousedown_drawpolygon(event){var point=new DPoint(event.clientX,event.clientY);pDragPoint=$this.fromEvnetPixelToLatLng(point);if(strGraphic==""){strGraphic=pDragPoint.toString()}else{strGraphic=strGraphic+","+pDragPoint.toString()}if(!VectorDraw){VectorDraw=new DPolygon(pDragPoint.toString()+","+pDragPoint.toString(),draw_graphic_style);$this.addOverlay(VectorDraw);if(!rubberPolygonGraph){rubberPolygonGraph=new DPolygon(pDragPoint.toString()+","+pDragPoint.toString(),draw_graphic_style);rubberPoint=pDragPoint;$this.addOverlay(rubberPolygonGraph)}}else{VectorDraw.set(strGraphic)}DCI.event.stop(event)}function mousemove_drawpolygon(event){var point=new DCI.Types.Point(event.clientX,event.clientY);var lastPoint=$this.fromEvnetPixelToLatLng(point);if(rubberPolygonGraph&&strGraphic!=""){$this.removeOverlay(rubberPolygonGraph);rubberPolygonGraph=void (0);rubberPolygonGraph=new DPolygon(pDragPoint.toString()+","+lastPoint.toString()+","+rubberPoint.toString(),{color:"#0F5AA7",dashstyle:"shortdot",weight:2,opacity:0.5})}$this.addOverlay(rubberPolygonGraph)}function mouseup_drawpolygon(event){}function mousedown_drawrect(event){var point=new DPoint(event.clientX,event.clientY);DCI.event.bindDom(mapContainer,"mousemove",mousemove_drawrect,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drawrect,$this);if(mapContainer.setCapture){mapContainer.setCapture()}pDragPoint=$this.fromEvnetPixelToLatLng(point);VectorDraw=new DRect(pDragPoint.toString()+","+pDragPoint.toString(),draw_graphic_style);$this.addOverlay(VectorDraw);DCI.event.stop(event)}function mousemove_drawrect(event){var point=new DCI.Types.Point(event.clientX,event.clientY);var lastPoint=$this.fromEvnetPixelToLatLng(point);var slonlats=pDragPoint.toString()+","+lastPoint.toString();if(VectorDraw){VectorDraw.set(slonlats,draw_graphic_style)}}function mouseup_drawrect(event){DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drawrect);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drawrect);if(mapContainer.releaseCapture){mapContainer.releaseCapture()}}function mousedown_drawcircle(event){var point=new DPoint(event.clientX,event.clientY);DCI.event.bindDom(mapContainer,"mousemove",mousemove_drawcircle,$this);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drawcircle,$this);if(mapContainer.setCapture){mapContainer.setCapture()}pDragPoint=$this.fromEvnetPixelToLatLng(point);VectorDraw=new DCircle(pDragPoint.toString(),"0",draw_graphic_style);$this.addOverlay(VectorDraw);DCI.event.stop(event)}function mousemove_drawcircle(event){var point=new DCI.Types.Point(event.clientX,event.clientY);var lastPoint=$this.fromEvnetPixelToLatLng(point);var pt1=new DLonLat(lastPoint.lon,lastPoint.lat);var pt2=new DLonLat(pDragPoint.lon,pDragPoint.lat);var radius=DLonLat.getDistanceOfTwo(pt1,pt2);if(VectorDraw){VectorDraw.set(pDragPoint.toString(),radius,draw_graphic_style)}}function mouseup_drawcircle(event){DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drawcircle);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drawcircle);if(mapContainer.releaseCapture){mapContainer.releaseCapture()}}var dragStartPoint=new DPoint();var dragMoveOffset=new DPoint();function mousedown_drag(event){fire("dragstart",event);dragStartPoint.x=event.clientX;dragStartPoint.y=event.clientY;dragMoveOffset.x=0;dragMoveOffset.y=0;DCI.event.bindDom(mapContainer,"mousemove",mousemove_drag);DCI.event.bindDom(mapContainer,"mouseup",mouseup_drag);if(mapContainer.setCapture){mapContainer.setCapture()}mapContainer.style.cursor="move";DCI.event.stop(event)}function mousemove_drag(event){var x=event.clientX-dragStartPoint.x;var y=event.clientY-dragStartPoint.y;dragMoveOffset.x+=x;dragMoveOffset.y+=y;var offsetx=dragOffset.x+x;var offsety=dragOffset.y+y;moveTo(offsetx,offsety);dragStartPoint.x=event.clientX;dragStartPoint.y=event.clientY;fire("drag",event)}function mouseup_drag(event){mapContainer.style.cursor="default";DCI.event.unbindDom(mapContainer,"mousemove",mousemove_drag);DCI.event.unbindDom(mapContainer,"mouseup",mouseup_drag);if(document.releaseCapture){document.releaseCapture()}fire("dragend",event,dragMoveOffset)}function windowmouseout_drag(event){if(!event.relatedTarget){mouseup_drag(event)}}function calculateTile(){var tileSize=currentMapType.getTileSize();var columns=Math.ceil(viewSize.width/tileSize)+2;var rows=Math.ceil(viewSize.height/tileSize)+2;tableSize.height=rows;tableSize.width=columns;var leftOffset=Math.floor((columns*tileSize-viewSize.width)/2);var topOffset=Math.floor((rows*tileSize-viewSize.height)/2);tileOffset=new DCI.Types.Size(leftOffset,topOffset)}function loadTiles(){var table=tilesTable;for(var col=table.length;col<tableSize.width;col++){table.push(new Array())}for(var col=0;col<table.length;col++){for(var row=table[col].length;row<tableSize.height;row++){var eimg=void (0);var tileSize=currentMapType.getTileSize();eimg=createTileImg({width:tileSize,height:tileSize});eimg.onerror=function(){this.src=DCI.getDCILocation()+"DCI/images/white.gif";};table[col].push(eimg);mapDiv.appendChild(eimg);configureTile.call(this,eimg,col,row)}}if(tableSize.height>0&&tableSize.width>0){isTileLoaded=true}}var tileStartPoint=new DPoint();function centerByPoint(center){centerPoint=center;var tileSize=currentMapType.getTileSize();var left=center.x-Math.floor(viewSize.width/2)-tileOffset.width;var top=center.y+Math.floor(viewSize.height/2)+tileOffset.height;tileStartPoint.x=left;tileStartPoint.y=top;var col=Math.floor(left/tileSize);var row=Math.floor(top/tileSize);var iOffsetx=col*tileSize-left;var iOffsety=row*tileSize-top;if(iOffsetx<-tileOffset.width/2){col++;iOffsetx+=tileSize}else{if(iOffsetx>tileOffset.width/2){col--;iOffsetx-=tileSize}}if(iOffsety<-tileOffset.height/2){row++;iOffsety+=tileSize}else{if(iOffsety>tileOffset.height/2){row--;iOffsety-=tileSize}}iOffsety=-iOffsety;tileIndex.x=col;tileIndex.y=row;currentPanOffset.width=0;currentPanOffset.height=0;reconfigureAllTiles.call($this);moveTo(iOffsetx,iOffsety);if(zoomChanged){fire("zoomend")}}function reconfigureAllTiles(){var tiles=sortTable(tilesTable);var overlays=sortTable(overLays);var maxLength=Math.max(tiles.length,overlays.length);for(var i=0;i<maxLength;i++){if(i<tiles.length){reconfigureTile.call(this,tiles[i])}if(i<overlays.length){reconfigureTile.call(this,overlays[i])}}}function reconfigureTile(tile){if(DCI.browser.msie){mapDiv.removeChild(tile);configureTile.call(this,tile,tile.col,tile.row);mapDiv.appendChild(tile)}else{configureTile.call(this,tile,tile.col,tile.row)}}function configureTile(eimg,col,row){var tileSize=currentMapType.getTileSize();var left=(currentPanOffset.width+col)*tileSize;var top=(currentPanOffset.height+row)*tileSize;left+=-tileOffset.width;top+=-tileOffset.height;eimg.style.left=left?left+"px":"0px";eimg.style.top=top?top+"px":"0px";if(isTileLoaded){var c=tileIndex.x+col;var r=tileIndex.y-row-1;var url=currentMapType.getTileURL(c,r,zoomLevel);if(eimg.src!=url){eimg.src=url}}}function moveTo(left,top){var offsetx=left-dragOffset.x;var offsety=top-dragOffset.y;dragOffset.x=left;dragOffset.y=top;mapDiv.style.left=left+"px";mapDiv.style.top=top+"px";overlayDiv.style.left=left+"px";overlayDiv.style.top=top+"px";var divOffset=getCurrentOffset();var tileSize=currentMapType.getTileSize();centerPoint.x=tileIndex.x*tileSize+Math.floor(viewSize.width/2)+tileOffset.width-divOffset.width;centerPoint.y=tileIndex.y*tileSize-Math.floor(viewSize.height/2)-tileOffset.height+divOffset.height;centerLonLat=currentMapType.fromEvnetPixelToLatLng(centerPoint,zoomLevel);rotateTiles.call(this);repositionOverlays.call(this);fire("move")}this.addOverlay=function(overlay){if(!overlay){return}if(!DCI.contains(overLays,overlay)){overLays.push(overlay);overlay.initialize(this);fire("addoverlay",overlay)}};this.removeOverlay=function(overlay){if(!overlay){return}if(DCI.contains(overLays,overlay)){overlay.remove();overLays=DCI.diff(overLays,overlay);fire("removeoverlay",overlay)}};this.clearOverlays=function(force){this.setMouseMode(DMouseMode.MAP_DRAG);rubberlineGraph="";var overLays_new=new Array();for(var i=0;i<overLays.length;i++){var overlay=overLays[i];if(!overlay.force||force){overlay.remove()}else{overLays_new.push(overlay)}}overLays=overLays_new;fire("clearoverlays")};this.getOverlayDiv=function(){return overlayDiv};this.fromContainerPixelToLatLng=function(dpoint){var zoom=this.getZoomLevel();return currentMapType.fromContainerPixelToLatLng(dpoint,zoom)};this.fromLatLngToContainerPixel=function(dlonlat){if(typeof dlonlat=="string"){var points=new Array();var spoints=currentMapType.getSPointsBySLonLats(dlonlat,zoomLevel,{type:"array"});var tileSize=currentMapType.getTileSize();var divOffset=getCurrentOffset();for(var i=0;i<spoints.length;i++){var p=spoints[i];if((i+1)%2==1){p=p-(tileIndex.x*tileSize+tileOffset.width-divOffset.width)}else{p=(tileIndex.y*tileSize-tileOffset.height+divOffset.height)-p}p=Math.round(p);points.push(p)}return points.join(",")}else{var dpoint=currentMapType.getPointByLonLat(dlonlat,zoomLevel);var tileSize=currentMapType.getTileSize();var divOffset=getCurrentOffset();var x=dpoint.x;var y=dpoint.y;x=x-(tileIndex.x*tileSize+tileOffset.width-divOffset.width);y=(tileIndex.y*tileSize-tileOffset.height+divOffset.height)-y;dpoint.x=Math.round(x);dpoint.y=Math.round(y);return dpoint}};this.fromDivPixelToLatLng=function(dpoint){var tileSize=currentMapType.getTileSize();var divOffset=getCurrentOffset();var x,y;x=dpoint.x+parseInt(mapDiv.style.left);y=dpoint.y+parseInt(mapDiv.style.top);x=x+(tileIndex.x*tileSize+tileOffset.width-divOffset.width);y=(tileIndex.y*tileSize-tileOffset.height+divOffset.height)-y;dpoint.x=x;dpoint.y=y;var dlonlat=currentMapType.fromEvnetPixelToLatLng(dpoint,zoomLevel);return dlonlat};this.fromLatLngToDivPixel=function(dlonlat){if(typeof dlonlat=="string"){var points=new Array();var spoints=currentMapType.getSPointsBySLonLats(dlonlat,zoomLevel,{type:"array"});var tileSize=currentMapType.getTileSize();var divOffset=getCurrentOffset();for(var i=0;i<spoints.length;i++){var p=spoints[i];if((i+1)%2==1){p=p-(tileIndex.x*tileSize+tileOffset.width-divOffset.width);p=p-parseInt(mapDiv.style.left)}else{p=(tileIndex.y*tileSize-tileOffset.height+divOffset.height)-p;p=p-parseInt(mapDiv.style.top)}p=Math.round(p);points.push(p)}return points.join(",")}else{var dpoint=currentMapType.getPointByLonLat(dlonlat,zoomLevel);var tileSize=currentMapType.getTileSize();var divOffset=getCurrentOffset();var x=dpoint.x;var y=dpoint.y;x=x-(tileIndex.x*tileSize+tileOffset.width-divOffset.width);y=(tileIndex.y*tileSize-tileOffset.height+divOffset.height)-y;x=x-parseInt(mapDiv.style.left);y=y-parseInt(mapDiv.style.top);dpoint.x=Math.round(x);dpoint.y=Math.round(y);return dpoint}};this.fromEvnetPixelToLatLng=function(dpoint){var resolutions=currentMapType.getResolutions();var xy_t=this.getContainerOffset();var xCoord=dpoint.x-xy_t.x;var yCoord=dpoint.y-xy_t.y;var lonlat=$this.getCenter();var mouseLng=lonlat.lon+(xCoord-viewSize.width/2)/resolutions[zoomLevel];var mouseLat=lonlat.lat-(yCoord-viewSize.height/2)/resolutions[zoomLevel];mouseLng=Math.floor(mouseLng*100000)/100000;mouseLat=Math.floor(mouseLat*100000)/100000;return new DCI.Maps.LonLat(mouseLng,mouseLat)};this.fromEvnetPixelToMapDivPixel=function(dpoint){if(typeof dpoint=="string"){var points=new Array();var s=dpoint.split(",");for(var i=0;i<s.length;i++){var p=s[i];if((i+1)%2==1){p=p-this.getContainerOffset().x;p=p-parseInt(mapDiv.style.left)}else{p=p-this.getContainerOffset().y;p=p-parseInt(mapDiv.style.top)}p=Math.round(p);points.push(p)}return points.join(",")}else{var xy_t=this.getContainerOffset();var xCoord=dpoint.x-xy_t.x;var yCoord=dpoint.y-xy_t.y;x=xCoord-parseInt(mapDiv.style.left);y=yCoord-parseInt(mapDiv.style.top);return new DPoint(x,y)}};var eventNames=["addmaptype","removemaptype","click","dbclick","movestart","move","moveend","zoomend","maptypechanged","addoverlay","removeoverlay","clearoverlays","mouseover","mouseout","mousemove","dragstart","drag","dragend","load"];var listeners=new Object();for(var i=0;i<eventNames.length;i++){var event=eventNames[i];listeners[event]=new Array()}DCI.event.bindDom(container,"mouseover",function(event){var latlng=$this.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));fire("mouseover",latlng)});DCI.event.bindDom(container,"mouseout",function(event){var latlng=$this.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));fire("mouseout",latlng)});DCI.event.bindDom(container,"mousemove",function(event){var latlng=$this.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));fire("mousemove",latlng)});DCI.event.bindDom(container,"dbclick",function(event){var latlng=$this.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));fire("dbclick",latlng)});DCI.event.bindDom(container,"click",function(event){var latlng=$this.fromEvnetPixelToLatLng(new DPoint(event.clientX,event.clientY));fire("click",latlng)});function fire(eventName,arg1,arg2){var ltrs=listeners[eventName];if(!ltrs){return}var newArguments=new Array();if(arguments.length>1){for(var i=1;i<arguments.length;i++){newArguments.push(arguments[i])}}for(var i=0;i<ltrs.length;i++){var ltr=ltrs[i];var scope=ltr.scope||this;ltr.callback.apply(scope,newArguments)}}this.addListener=function(type,callback,scope){if(!type&&!callback){return}var ltrs=listeners[type];if(ltrs){ltrs.push({callback:callback,scope:scope})}else{throw Error("调用addListener时,type所指定的事件不存在。")}};this.removeListener=function(eventName,callback){var ltrs=listeners[eventName];for(var i=0;i<ltrs.length;i++){if(callback==ltrs[i].callback){ltrs.splice(i,1);break}}};function mousewheelscroll_zoom(event){if(!isZooming){var zoom=zoomLevel;if(event.wheelDelta>0||event.detail<0){zoom--}else{zoom++}if(zoom<currentMapType.getNumZoomLevels()&&zoom>=0){isZooming=true;stretchZoom.call(this,zoom)}}DCI.event.stop(event);return false}function stretchZoom(zoom){var step=5;var stepnum=0;var resolutions=currentMapType.getResolutions();var per=resolutions[zoom]/resolutions[zoomLevel];var perd=(per-1)/step;var oleft=parseInt(mapDiv.style.left);var otop=parseInt(mapDiv.style.top);mapContainer.removeChild(overlayDiv);mapContainer.removeChild(drawDiv);var timerFlatZoom=setInterval(function(){stepnum++;if(stepnum<(step+1)){if(DCI.browser.msie){var z=1+perd*stepnum;var left=Math.ceil(oleft+(oleft-viewSize.width/2)*(z-1));var top=Math.ceil(otop+(otop-viewSize.height/2)*(z-1));mapDiv.style.zoom=z;mapDiv.style.left=left+"px";mapDiv.style.top=top+"px";overlayDiv.style.zoom=z;overlayDiv.style.left=left+"px";overlayDiv.style.top=top+"px"}else{stepnum=6}}else{clearInterval(timerFlatZoom);timerFlatZoom=null;mapDiv.style.zoom=1;mapDiv.style.left=oleft+"px";mapDiv.style.top=otop+"px";overlayDiv.style.zoom=1;overlayDiv.style.left=oleft+"px";overlayDiv.style.top=otop+"px";mapContainer.appendChild(overlayDiv);mapContainer.appendChild(drawDiv);$this.setZoomLevel(zoom);isZooming=false}},10)}function keypress_map(event){var keyCode=event.keyCode?event.keyCode:event.which?event.which:event.charCode;var height=Math.floor(viewSize.height*0.75);var width=Math.floor(viewSize.width*0.75);switch(keyCode){case 38:case 40:case 37:case 39:panKeys.add(keyCode);startContinuousPan();return false;case 34:pan(0,-height);return false;case 33:pan(0,height);return false;case 36:pan(width,0);return false;case 35:pan(-width,0);return false;case 187:case 107:case 61:case 43:$this.setZoomLevel(zoomLevel-1);return false;case 189:case 109:case 45:case 95:$this.setZoomLevel(zoomLevel+1);return false}return true}function keyup_map(event){var keyCode=event.keyCode?event.keyCode:event.which?event.which:event.charCode;switch(keyCode){case 38:case 40:case 37:case 39:panKeys.remove(keyCode);return false}}function startContinuousPan(){cancelPan();if(!continuousPanTimeout){panSiner=new Tick(100);continuousPanTimeout=setTimeout(doContinuousPan,5)}}function doContinuousPan(){if(panKeys.size>0){var ce=(panKeys.contains(37)?1:0)+(panKeys.contains(39)?-1:0);var Be=(panKeys.contains(38)?1:0)+(panKeys.contains(40)?-1:0);var lb=1;if(panSiner.more()){lb=panSiner.next()}var C=ce>0?Math.floor:Math.ceil;var width=C(7*lb*ce+5*ce);C=Be>0?Math.floor:Math.ceil;var height=C(7*lb*Be+5*Be);moveTo(dragOffset.x+width,dragOffset.y+height);continuousPanTimeout=setTimeout(doContinuousPan,5)}else{continuousPanTimeout=null;fire("moveend")}}function cancelPan(){if(panTimeout){panTimeout=null}}function pan(x,y){var ci=Math.sqrt(x*x+y*y);var di=Math.max(10,Math.floor(ci/20));panSiner=new Tick(di);panSiner.reset();panDistance.width=x;panDistance.height=y;panStart.x=dragOffset.x;panStart.y=dragOffset.y;doPan()}function doPan(){var lb=panSiner.next();moveTo(panStart.x+panDistance.width*lb,panStart.y-panDistance.height*lb);if(panSiner.more()){panTimeout=setTimeout(doPan,10)}else{panTimeout=null;fire("moveend")}}function sortTable(table){var t=[];for(var i=0;i<table.length;i++){for(var j=0;j<table[i].length;j++){var cell=table[i][j];cell.col=i;cell.row=j;var f=Math.min(i,table.length-i-1);var g=Math.min(j,table[i].length-j-1);if(f==0||g==0){cell.priority=0}else{cell.priority=f+g}t.push(cell)}}t.sort(function(a,b){var c=b.priority-a.priority;return c});return t}function rotateTiles(){var divOffset=getCurrentOffset();if(Math.abs(dragOffset.x)>10000000||Math.abs(dragOffset.y)>10000000){cancelPan();centerByPoint(centerPoint);return}if(divOffset.width<-tileOffset.width/2){rotateRight.call(this,tilesTable,false);if(hasOverlay){rotateRight.call(this,overLays,true)}divOffset=getCurrentOffset()}if(divOffset.width>tileOffset.width/2){rotateLeft.call(this,tilesTable,false);if(hasOverlay){rotateLeft.call(this,overLays,true)}divOffset=getCurrentOffset()}if(divOffset.height<-tileOffset.height/2){rotateDown.call(this,tilesTable,false);if(hasOverlay){rotateDown.call(this,overLays,true)}divOffset=getCurrentOffset()}if(divOffset.height>tileOffset.height/2){rotateUp.call(this,tilesTable,false);if(hasOverlay){rotateUp.call(this,overLays,true)}divOffset=getCurrentOffset()}}function rotateLeft(table,flag){if(!flag){currentPanOffset.width--;tileIndex.x--}var colsTile=table.pop();if(colsTile){table.unshift(colsTile);for(var irow=0;irow<colsTile.length;irow++){configureTile.call(this,colsTile[irow],0,irow)}}}function rotateRight(table,flag){if(!flag){currentPanOffset.width++;tileIndex.x++}var colsTile=table.shift();table.push(colsTile);var col=table.length-1;for(var irow=0;irow<colsTile.length;irow++){configureTile.call(this,colsTile[irow],col,irow)}}function rotateUp(table,flag){if(!flag){currentPanOffset.height--;tileIndex.y++}for(var col=0;col<table.length;col++){var tile=table[col].pop();table[col].unshift(tile);configureTile.call(this,tile,col,0)}}function rotateDown(table,flag){if(!flag){currentPanOffset.height++;tileIndex.y--}var row=table[0].length-1;for(var icol=0;icol<table.length;icol++){var tile=table[icol].shift();table[icol].push(tile);configureTile.call(this,tile,icol,row)}}var onMouseMoveDisplayLonLat=function(event){var point=new DCI.Types.Point(event.clientX,event.clientY);var dl=$this.fromEvnetPixelToLatLng(point);window.status="坐标:"+dl.lon+","+dl.lat};this.getContainerOffset=function(){var containOffset=DCI.getOffset(mapContainer);var x=containOffset.x;var y=containOffset.y;x=x-window.document.body.scrollLeft;y=y-window.document.body.scrollTop;x=x+(parseInt(mapContainer.style.borderLeftWidth)||0);y=y+(parseInt(mapContainer.style.borderTopWidth)||0);return new DPoint(x,y)};function getCurrentOffset(){var tileSize=currentMapType.getTileSize();var width=dragOffset.x+currentPanOffset.width*tileSize;var height=dragOffset.y+currentPanOffset.height*tileSize;return new DCI.Types.Size(width,height)}function createTileImg(options,callback){options=options||{};var url=options.url;var width=options.width;var height=options.height;var left=options.left;var top=options.top;var zindex=options.zindex;var styleclass=options.styleclass;var callback=options.callback;var eimg;if(!callback){eimg=document.createElement("IMG")}else{eimg=callback(options)}eimg.style.width=width?width+"px":"0px";eimg.style.height=height?height+"px":"0px";eimg.style.left=left?left+"px":"0px";eimg.style.top=top?top+"px":"0px";eimg.style.position="absolute";eimg.style.zIndex=zindex?zindex:0;eimg.style.border="0";if(styleclass){eimg.setAttribute("ClassName",styleclass)}return eimg}function repositionOverlays(){for(var i=0;i<overLays.length;i++){var overlay=overLays[i];overlay.redraw()}}var $this=this;var dragOffset=new DPoint();var controls=new Array();var overLayers=new Array();var tilesTable=new Array();var overLays=new Array();var tableSize=new DCI.Types.Size();var hasOverlay=false;var tileOffset=new DSize();var currentPanOffset=new DSize();var tileIndex=new DPoint();var isLoaded=false;var isTileLoaded=false;var isZooming=false;var panDistance=new DCI.Types.Size();var panStart=new DCI.Types.Point();var panKeys=new KeysContainer();var panSiner=new Tick();var panTimeout;var continuousPanTimeout;var mapTypes=D_DEFAULT_MAP_TYPES;var currentMapType;var centerChanged=false;var zoomChanged=false;var zoomLevel=void (0);var centerPoint=void (0);var centerLonLat=void (0);function Tick(ticks){this.ticks=ticks;this.tick=0;this.reset=function(){this.tick=0};this.next=function(){this.tick++;var lb=Math.PI*(this.tick/this.ticks-0.5);return(Math.sin(lb)+1)/2};this.more=function(){return this.tick<this.ticks}}function KeysContainer(ma){this.size=0;if(ma){for(var a=ma.length-1;a>=0;a--){this.add(ma[a])}}this.add=function(zb){if(!this.contains(zb)){this[":"+zb]=1;this.size++}};this.remove=function(zb){if(this.contains(zb)){delete this[":"+zb];this.size--}};this.contains=function(zb){return this[":"+zb]==1}}if(mapTypes&&mapTypes.length>0){var m=mapTypes[0];if(m.ClassName=="DCI.Maps.MapType"){currentMapType=mapTypes[0]}else{throw new Error("创建DMap时,mapTypes数组中的元素不是DMapTypes类型。")}}else{throw new Error("创建DMap时,mapTypes数组为空。")}mapContainer.style.backgroundImage="url("+DCI.getDCILocation()+"DCI/images/map_bg.gif)";mapContainer.style.position=mapContainer.style.position!="absolute"?"relative":"absolute";mapContainer.style.overflow="hidden";mapContainer.style.padding=0;for(var i=0;i<mapTypes.length;i++){var m=mapTypes[i];m.init(this)}this.graphic=new DCI.Maps.Graphic(drawDiv);DCI.event.bindDom(mapContainer,"mousemove",onMouseMoveDisplayLonLat,this);DCI.event.bindDom(mapContainer,"click",function(){mapContainer.focus()});DCI.event.bindDom(mapDiv,"selectstart",function(){return false});this.setMouseMode(DMouseMode.MAP_DRAG);this.ClassName="DCI.Maps.Map"};DMap=DCI.Maps.Map;DCI.Maps.Contorl=function(){this.initialize=function(dmap){throw new Error("DControl子类，未实现initialize方法")};this.getElement=function(){throw new Error("DControl子类，未实现getElement方法")};this.getAnchor=function(){return DControlAnchor.TOP_LEFT};this.show=function(){throw new Error("DControl子类，未实现show方法")};this.hide=function(){throw new Error("DControl子类，未实现hide方法")}};DControl=DCI.Maps.Control;DCI.Maps.PopMenu=function(items,cb){var $this=this;var callback=cb;var conatainer_div;var lonlat;var tags=items;this.element=void (0);this.map=void (0);this.menu_div=void (0);this.initialize=function(dmap){$this.map=dmap;conatainer_div=dmap.getContainer();DCI.event.bindDom(conatainer_div,"contextmenu",contextmenu);DCI.event.bindDom(conatainer_div,"click",function(event){HideMenu(event)})};function contextmenu(event){var point=new DCI.Types.Point(event.clientX,event.clientY);lonlat=$this.map.fromEvnetPixelToLatLng(point);ShowMenu(event);DCI.event.stop(event);return false}this.getElement=function(){if(!this.element){createMenu()}return this.element};this.enable=function(){DCI.event.bindDom(conatainer_div,"contextmenu",contextmenu)};this.disenable=function(){DCI.event.unbindDom(conatainer_div,"contextmenu",contextmenu)};var createMenu=function(){var div_Menul=document.createElement("Div");div_Menul.id="div_RightMenu";div_Menul.style.zIndex="100";div_Menul.style.textAlign="left";div_Menul.style.cursor="default";div_Menul.style.position="absolute";div_Menul.style.backgroundColor="#FAFFF8";div_Menul.style.width="160px";div_Menul.style.height="auto";div_Menul.style.borderWidth="1px";div_Menul.style.borderStyle="solid";div_Menul.style.display="none";this.menu_div=div_Menul;DCI.each(tags,function(tag,i){if(tag.text=="hr"){var hr=document.createElement("Hr");div_Menul.appendChild(hr)}else{var div_Menu=document.createElement("Div");div_Menu.style.height="17px";div_Menu.style.verticalAlign="middle";div_Menu.style.fontSize="10pt";div_Menu.style.marginBottom="3px";div_Menu.style.cursor="hand";div_Menu.style.paddingLeft="30px";div_Menu.style.paddingTop="2px";div_Menu.innerHTML=tag.text;div_Menu.name=tag.value;div_Menu.onmousemove=evtMenuOnmouseMove;div_Menu.onmouseout=evtOnMouseOut;DCI.event.bindDom(div_Menu,"click",function(){callback(div_Menu.innerHTML,div_Menu.name,lonlat)});div_Menul.appendChild(div_Menu)}});$this.element=div_Menul};var ShowMenu=function(event){if(this.menu_div==null){createMenu()}event=event||window.event;conatainer_div.onclick=HideMenu;var offsetp=$this.map.getContainerOffset();conatainer_div_X=offsetp.x+3;conatainer_div_Y=offsetp.y+3;var redge=conatainer_div.clientWidth-event.clientX;var bedge=conatainer_div.clientHeight-event.clientY+conatainer_div_Y;var menu=this.menu_div;if(redge<menu.offsetWidth){menu.style.left=conatainer_div.scrollLeft+event.clientX-menu.offsetWidth-conatainer_div_X}else{menu.style.left=conatainer_div.scrollLeft+event.clientX-conatainer_div_X;menu.style.display="block"}if(bedge<menu.offsetHeight){menu.style.top=conatainer_div.scrollTop+event.clientY-menu.offsetHeight-conatainer_div_Y}else{menu.style.top=conatainer_div.scrollTop+event.clientY-conatainer_div_Y;menu.style.display="block"}return false};var HideMenu=function(){if(this.menu_div!=null){this.menu_div.style.display="none"}};function evtMenuOnmouseMove(){this.style.backgroundColor="#8AAD77";this.style.paddingLeft="30px"}function evtOnMouseOut(){this.style.backgroundColor="#FAFFF8"}};DCI.Maps.PopMenu.prototype=new DCI.Maps.Contorl();DPopMenu=DCI.Maps.PopMenu;DCI.Maps.Switcher=function(switcherOptions){var options=switcherOptions||{};var $this=this;var mapTypes=new Array();options=DCI.extend({up:{borderColor:"#044e05",backgroundColor:"#FFF",color:"#044e05"},down:{borderColor:"#FFF",backgroundColor:"#044e05",color:"#FFF"}},options);var styles=DCI.extend({},options.style);var current=void (0);var currentMapType=void (0);var div=void (0);var isLoaded=false;this.initialize=function(dmap){this.map=dmap;mapTypes=dmap.getMapTypes();currentMapType=dmap.getCurrentMapType();if(!isLoaded){initElement()}};this.getAnchor=function(){return DControlAnchor.TOP_RIGHT};this.getElement=function(){if(!isLoaded){initElement()}return div};function initElement(){div=document.createElement("div");div.className="map-switcher";var width=60*mapTypes.length;div.style.width=width+60;DCI.each(mapTypes,function(maptype,i){var name=maptype.getName();var mt_el=document.createElement("a");mt_el.className="map-switcher-type";mt_el.href="#";mt_el.innerHTML=name;div.appendChild(mt_el);DCI.applyStyles(mt_el,styles);DCI.event.bindDom(mt_el,"mousedown",DCI.event.stop);DCI.event.bindDom(mt_el,"click",function(event){if(current!=mt_el){DCI.applyStyles(current,options.up);current=mt_el;$this.map.setMapType(maptype);DCI.applyStyles(mt_el,options.down);return false}return false});if(currentMapType==maptype){DCI.applyStyles(mt_el,options.down);current=mt_el}else{DCI.applyStyles(mt_el,options.up)}});isLoaded=true}this.hide=function(){if(isLoaded){DCI.applyStyles(div,{display:"none"})}};this.show=function(){if(isLoaded){DCI.applyStyles(div,{display:"block"})}};this.ClassName="DCI.Maps.Switcher"};DCI.Maps.Switcher.prototype=new DCI.Maps.Contorl();DSwitcher=DCI.Maps.Switcher;DCI.Maps.Title=function(dlonlat,content,titleOptions){if(!(dlonlat instanceof DLonLat)){throw new Error("DTitle实例化不成功，dlonlat参数不是DLonLat类型。");return null}content=content||"";var options=titleOptions||{};var lonlat=dlonlat.clone()||void (0);var $this=this;options=DCI.extend({round:true,offsetx:0,offsety:0,fontPosition:8,paddingWidth:2,fontColor:"#000",fontSize:12,borderWidth:1,borderColor:"#000",borderStyle:"solid",backgroundColor:"#FFF",opcity:1},options);var styles=DCI.extend({},options.style);var bw=options.borderWidth;var bc=options.borderColor;var bs=options.borderStyle;var fs=options.fontSize;var fc=options.fontColor;var bgc=options.backgroundColor;var pw=options.paddingWidth;var bdw=bw*2;var pdw=pw*2;var ttw=(fs*content.length)+bdw+pdw;var tth=(fs*1)+bdw+pdw+3;var isLoaded=false;var title_div=void (0);var content_div=void (0);var t1=void (0);var b1=void (0);var map=void (0);var overlayDiv=void (0);this.force=options.force;this.initialize=function(dmap){if(!dmap instanceof DMap){throw new Error("DTitle.initialize()参数不匹配。dmap不是DMap类型。")}map=dmap;overlayDiv=map.getOverlayDiv();if(!isLoaded){title_div=document.createElement("div");content_div=document.createElement("div");if(options.round){t1=document.createElement("div");b1=document.createElement("div")}content_div.innerHTML=content;if(options.round){title_div.appendChild(t1)}title_div.appendChild(content_div);if(options.round){title_div.appendChild(b1)}isLoaded=true}overlayDiv.appendChild(title_div);applyStyles();reposition()};this.redraw=function(force){if(force){applyStyles()}reposition()};this.remove=function(){if(isLoaded){overlayDiv.removeChild(title_div)}};this.getElement=function(){return title_div};this.show=function(){if(isLoaded){title_div.style.display=""}};this.hide=function(){if(isLoaded){title_div.style.display="none"}};this.set=function(key,value){if(typeof(key)=="object"){DCI.extend(options,key)}else{options[key]=value}applyStyles();reposition();};this.get=function(key){if(key){return options[key]}else{return options}};function reposition(){if(map){var position=map.fromLatLngToDivPixel(lonlat);switch(options.fontPosition){case 1:break;case 2:position.x-=(ttw/2);break;case 3:position.x-=ttw;break;case 4:position.y-=(tth/2);break;case 5:position.y-=(tth/2);position.x-=(ttw/2);break;case 6:position.y-=(tth/2);position.x-=ttw;break;case 7:position.y-=tth;break;case 8:position.y-=tth;position.x-=(ttw/2);break;case 9:position.y-=tth;position.x-=ttw;break;default:break}title_div.style.left=position.x+options.offsetx;title_div.style.top=position.y+options.offsety}}function applyStyles(){if(!isLoaded){return}bw=options.borderWidth;bc=options.borderColor;bs=options.borderStyle;fs=options.fontSize;fc=options.fontColor;bgc=options.backgroundColor;pw=options.paddingWidth;bdw=bw*2;pdw=pw*2;ttw=(fs*content.length)+bdw+pdw;tth=(fs*1)+bdw+pdw+3;var td_s="position:absolute;z-index:1;width:"+ttw+"px;height:"+tth+"px;";title_div.style.cssText=td_s;if(options.round){var t1_s="border-top:"+bw+"px "+bc+" "+bs+";margin-left:"+bw+"px;margin-right:"+bw+"px;";t1.style.cssText=t1_s;var b1_s="border-bottom:"+bw+"px "+bc+" "+bs+";margin-left:"+bw+"px;margin-right:"+bw+"px;";b1.style.cssText=b1_s}var ff_ie_c=DCI.browser.msie?ttw:(ttw-bdw-pdw);if(options.round){var ct_s="border-left:"+bw+"px "+bc+" "+bs+";border-right:"+bw+"px "+bc+" "+bs+";font-size:"+fs+"px;color:"+fc+";background-color:"+bgc+";width:"+ff_ie_c+"px;padding:"+(pw+1)+"px "+pw+"px "+pw+"px "+pw+"px;text-align:center;"}else{var ct_s="border:"+bw+"px "+bc+" "+bs+";font-size:"+fs+"px;color:"+fc+";background-color:"+bgc+";width:"+ff_ie_c+"px;padding:"+(pw+1)+"px "+pw+"px "+pw+"px "+pw+"px;text-align:center;"}content_div.style.cssText=ct_s;DCI.applyStyles(title_div,styles)}this.ClassName="DCI.Maps.Title"};DCI.Maps.Title.prototype=new DCI.Maps.Overlay();DTitle=DCI.Maps.Title;DCI.Maps.LevelControl=function(options){var $this=this;var move=false;var scrollMovecurTop;var startEventY=void (0);var defaultMovecurTop;this.map=void (0);var maptype=void (0);var maxlevel=void (0);var baseURL=DCI.getDCILocation()+"DCI/images";var scrollHeight=void (0);var currentLevel=void (0);var mapContainer;options=DCI.extend({levelpx:10,levPointerSrc:baseURL+"/paner.png",levScrollSrc:baseURL+"/sliderbar.png",levZoomSrc:baseURL+"/zoom-plus.png",levNarrowSrc:baseURL+"/zoom-minus.png",levMoveSrc:baseURL+"/slider.png"},options);this.initialize=function(dmap){this.map=dmap;maptype=$this.map.getCurrentMapType();maxlevel=maptype.getNumZoomLevels();currentLevel=$this.map.getZoomLevel();scrollHeight=(maxlevel*options.levelpx)};this.getElement=function(){if(!this.element){createLevelControl()}return this.element};this.hide=function(){if(this.element){this.element.style.display="none"}};this.show=function(){if(this.element){this.element.style.display="block"}};this.getAnchor=function(){return DControlAnchor.TOP_LEFT};var createLevelControl=function(){var levelbox=document.createElement("div");levelbox.className="map-level-box";var levelpointer=document.createElement("div");levelpointer.className="map-level-pointer";var pointerimage=document.createElement("img");pointerimage.className="map-level-pointer-image";pointerimage.src=options.levPointerSrc;DCI.imgAlpha(pointerimage);var pointertop=document.createElement("div");pointertop.className="map-level-pointer-top";pointertop.title="向上平移";var pointerleft=document.createElement("div");pointerleft.className="map-level-pointer-left";pointerleft.title="向左平移";var pointerright=document.createElement("div");pointerright.className="map-level-pointer-right";pointerright.title="向右平移";var pointerbottom=document.createElement("div");pointerbottom.className="map-level-pointer-bottom";pointerbottom.title="向下平移";DCI.event.bindDom(pointertop,"mousedown",function(event){$this.map.panDirection(0,-1);DCI.event.stop(event);return false});DCI.event.bindDom(pointerleft,"mousedown",function(event){$this.map.panDirection(1,0);DCI.event.stop(event);return false});DCI.event.bindDom(pointerright,"mousedown",function(event){$this.map.panDirection(-1,0);DCI.event.stop(event);return false});DCI.event.bindDom(pointerbottom,"mousedown",function(event){$this.map.panDirection(0,1);DCI.event.stop(event);return false});levelpointer.appendChild(pointerimage);levelpointer.appendChild(pointertop);levelpointer.appendChild(pointerleft);levelpointer.appendChild(pointerright);levelpointer.appendChild(pointerbottom);var levelzoom=document.createElement("div");levelzoom.className="map-level-zoom";var levelzoomimage=document.createElement("img");levelzoomimage.className="map-level-zoomimage";levelzoomimage.src=options.levZoomSrc;DCI.imgAlpha(levelzoomimage);levelzoom.appendChild(levelzoomimage);var levelscroll=document.createElement("div");levelscroll.className="map-level-scroll";levelscroll.style.height=scrollHeight+"px";DCI.event.bindDom(levelbox,"selectstart",function(){return false});var levelmove=document.createElement("div");levelmove.className="map-level-move";var levelmoveimage=document.createElement("img");levelmoveimage.className="map-level-moveimage";levelmoveimage.src=options.levMoveSrc;DCI.imgAlpha(levelmoveimage);levelmove.appendChild(levelmoveimage);levelmove.style.top=(currentLevel*options.levelpx)+"px";scrollMovecurTop=(currentLevel*options.levelpx);defaultMovecurTop=(currentLevel*options.levelpx);$this.map.addListener("zoomend",function(){zoom=$this.map.getZoomLevel();levelmove.style.top=(zoom*options.levelpx)+"px"},this);DCI.event.bindDom(levelzoom,"mousedown",function(event){var curZoom=$this.map.getZoomLevel();if(curZoom>0){$this.map.setZoomLevel(curZoom-1)}DCI.event.stop(event);return false});DCI.event.bindDom(levelscroll,"mousedown",function(event){var floor;if(DCI.browser.msie){floor=Math.floor((event.offsetY/options.levelpx))}else{floor=Math.floor((event.layerY/options.levelpx))}$this.map.setZoomLevel(floor);DCI.event.stop(event);draglick=true;return false});DCI.event.bindDom(levelscroll,"mouseover",function(event){levelscroll.title="拖动缩放"});DCI.event.bindDom(levelmove,"mousedown",function(event){if(DCI.browser.msie){if(event.button==1&&event.srcElement.tagName.toUpperCase()=="IMG"){move=true;startEventY=event.clientY;if(levelmove.style.top!=""){scrollMovecurTop=parseInt(levelmove.style.top)}}}else{if(event.button==0&&event.target.localName.toUpperCase()=="IMG"){move=true;startEventY=event.clientY;if(levelmove.style.top!=""){scrollMovecurTop=parseInt(levelmove.style.top)}}}DCI.event.stop(event);DCI.event.bindDom(document.body,"mouseup",mu);return false});function mu(event){var moveTop=parseInt(levelmove.style.top);var setZoom=Math.round((moveTop/options.levelpx));if(setZoom==$this.map.getZoomLevel()){levelmove.style.top=(setZoom*options.levelpx)+"px"}$this.map.setZoomLevel(setZoom);move=false;DCI.event.stop(event);DCI.event.unbindDom(document.body,"mouseup",mu);return false}DCI.event.bindDom($this.map.getContainer(),"mousemove",function(event){if(move){var t=scrollMovecurTop+(event.clientY-startEventY);if(t<=(scrollHeight-10)&&t>=0){levelmove.style.top=t+"px"}}DCI.event.stop(event);return false});var levelscrollback=document.createElement("div");levelscrollback.className="map-level-scroll-back";levelscrollback.id="scrollback";levelscroll.appendChild(levelmove);levelscroll.appendChild(levelscrollback);var levelnarrow=document.createElement("div");levelnarrow.className="map-level-narrow";var levelnarrowimage=document.createElement("img");levelnarrowimage.className="map-level-narrowimage";levelnarrowimage.src=options.levNarrowSrc;DCI.imgAlpha(levelnarrowimage);levelnarrow.appendChild(levelnarrowimage);DCI.event.bindDom(levelnarrow,"mousedown",function(event){var curZoom=$this.map.getZoomLevel();if(curZoom<=maptype.getMaxLevel()){$this.map.setZoomLevel(curZoom+1)}DCI.event.stop(event);return false});levelscroll.style.backgroundImage="url("+options.levScrollSrc+")";levelbox.appendChild(levelpointer);levelbox.appendChild(levelzoom);levelbox.appendChild(levelscroll);levelbox.appendChild(levelnarrow);$this.element=levelbox}};DCI.Maps.LevelControl.prototype=new DCI.Maps.Contorl();DLevel=DCI.Maps.LevelControl;DCI.Maps.CopyrightControl=function(){var $this=this;var map=void (0);var cmt=void (0);this.initialize=function(dmap){map=dmap;cmt=map.getCurrentMapType()};this.getElement=function(){if(!this.element){CreateCopyright()}return this.element};this.getAnchor=function(){return DControlAnchor.BOTTOM_RIGHT};this.hide=function(){if(this.element){this.element.style.display="none"}};this.show=function(){if(this.element){this.element.style.display=""}};var CreateCopyright=function(){var copyright=cmt.getCopyright();var description="2009 BeiJingMap - 地图数据©";var width=DCI.getLength(copyright+description)*11+20;var copyrightBox=document.createElement("div");copyrightBox.className="map-copyright-box";copyrightBox.style.width=width+"px";var aSpan=document.createElement("span");aSpan.innerHTML=description;var bSpan=document.createElement("span");bSpan.innerHTML=copyright;copyrightBox.appendChild(aSpan);copyrightBox.appendChild(bSpan);$this.element=copyrightBox}};DCI.Maps.CopyrightControl.prototype=new DCI.Maps.Contorl();DCopyright=DCI.Maps.CopyrightControl;DCI.Maps.ScaleControl=function(){$this=this;var currentZoom;this.map=void (0);var maptype;var mapscalevalue;var scalebox;var mapScale=new Array(20,50,100,200,500,1000,2000,5000,10000,20000,50000,100000);this.initialize=function(dmap){this.map=dmap;currentZoom=$this.map.getZoomLevel();maptype=$this.map.getCurrentMapType()};this.getElement=function(){if(!this.element){ScaleControl()}return this.element};this.hide=function(){if(this.element){this.element.style.display="none"}};this.show=function(){if(this.element){this.element.style.display="block"}};this.getAnchor=function(){return DControlAnchor.BOTTOM_LEFT};var ScaleControl=function(){scalebox=document.createElement("div");scalebox.className="map-scale-box";var scaleleftbar=document.createElement("div");scaleleftbar.className="map-scale-leftbar";var scalebottombar=document.createElement("div");scalebottombar.className="map-scale-bottombar";var scalerightbar=document.createElement("div");scalerightbar.className="map-scale-rightbar";var scaledescribe=document.createElement("div");scaledescribe.className="map-scale-describe";var pxvalue=Math.round(maptype.getPixelScaleFromMeter(currentZoom,mapScale[currentZoom]));scalebottombar.style.width=pxvalue+"px";scalerightbar.style.left=pxvalue+"px";if(currentZoom>=5){scaledescribe.innerHTML=(mapScale[currentZoom]/1000)+"公里"}else{scaledescribe.innerHTML=mapScale[currentZoom]+"米"}$this.map.addListener("zoomend",function(){zoom=$this.map.getZoomLevel();var pxvalue=Math.round(maptype.getPixelScaleFromMeter(zoom,mapScale[zoom]));scalebottombar.style.width=pxvalue+"px";scalerightbar.style.left=pxvalue+"px";if(zoom>=5){scaledescribe.innerHTML=(mapScale[zoom]/1000)+"公里"}else{scaledescribe.innerHTML=mapScale[zoom]+"米"}},this);$this.map.addListener("move",function(){zoom=$this.map.getZoomLevel();var pxvalue=Math.round(maptype.getPixelScaleFromMeter(zoom,mapScale[zoom]));scalebottombar.style.width=pxvalue+"px";scalerightbar.style.left=pxvalue+"px";if(zoom>=5){scaledescribe.innerHTML=(mapScale[zoom]/1000)+"公里"}else{scaledescribe.innerHTML=mapScale[zoom]+"米"}},this);scalebox.appendChild(scaleleftbar);scalebox.appendChild(scalebottombar);scalebox.appendChild(scalerightbar);scalebox.appendChild(scaledescribe);$this.element=scalebox}};DCI.Maps.ScaleControl.prototype=new DCI.Maps.Contorl();DScale=DCI.Maps.ScaleControl;DCI.Maps.Eagleeye=function(){var $this=this;this.map=void (0);var maptype=void (0);var dr=void (0);var eagleeyeinnerbox=document.createElement("div");var eaglegroup=document.createElement("div");var showeagleeye=document.createElement("div");var eagleeyebox=document.createElement("div");var initp1=void (0);var initp2=void (0);var newp1=void (0);var newp2=void (0);var dMap=void (0);var downpoint=void (0);var flag=true;var baseURL=DCI.getDCILocation()+"DCI/images";this.initialize=function(dmap){this.map=dmap;maptype=$this.map.getCurrentMapType()};this.getElement=function(){if(!this.element){CreateEagleeye();redraw()}return this.element};this.getAnchor=function(){return DControlAnchor.BOTTOM_RIGHT};this.hide=function(){if(this.element){this.element.style.display="none"}};this.show=function(){if(this.element){this.element.style.display="block"}};this.open=function(){openEagleeye()};this.close=function(){closeEagleeye()};function redraw(){dMap=new DMap(eagleeyeinnerbox);var cl=$this.map.getZoomLevel();setEagleMapZoom(cl);var mapbounds=$this.map.getBounds();setEagleRectangle(mapbounds);$this.map.addListener("zoomend",function(){var cl=$this.map.getZoomLevel();setEagleMapZoom(cl);var mapbounds=$this.map.getBounds();setEagleRectangle(mapbounds)},this);$this.map.addListener("move",function(){if(!flag){return}var mapbounds=$this.map.getBounds();setEagleRectangle(mapbounds)},this);$this.map.addListener("moveend",function(){if(!flag){return}var mapbounds=$this.map.getBounds();dMap.panTo(mapbounds.getCenter())},this);$this.map.addListener("drag",function(){var mapbounds=$this.map.getBounds();setEagleRectangle(mapbounds)},this);$this.map.addListener("dragend",function(){var mapbounds=$this.map.getBounds();dMap.panTo(mapbounds.getCenter())},this);dMap.addListener("dragend",function(event,dragoffset){var lon=dragoffset.x/maptype.getResolutions()[dMap.getZoomLevel()];var lat=dragoffset.y/maptype.getResolutions()[dMap.getZoomLevel()];newp1=new DLonLat(initp1.lon-lon,initp1.lat+lat);newp2=new DLonLat(initp2.lon-lon,initp2.lat+lat);initp1=newp1;initp2=newp2;var bounds=new DLonLatBounds(newp1,newp2);dr.set(newp1.toString()+","+newp2.toString());$this.map.panTo(bounds.getCenter())},this);eagleeyebox.appendChild(eagleeyeinnerbox);eaglegroup.appendChild(eagleeyebox);eaglegroup.appendChild(showeagleeye)}var setEagleMapZoom=function(cl){var ml=maptype.getNumZoomLevels()-1;var eaglezoom=Math.min(cl+4,ml);dMap.setCenter($this.map.getCenter(),eaglezoom)};var setEagleMapDrag=function(mapbounds){dMap.panTo(mapbounds.getCenter())};var setEagleRectangle=function(mapbounds){initp1=mapbounds.getMinLonLat();initp2=mapbounds.getMaxLonLat();var downLatlng;if(dr){dr.set(initp1.toString()+","+initp2.toString())}else{dr=new DRect(initp1.toString()+","+initp2.toString(),{color:"#205AA7",weight:2,opacity:0.5});dMap.addOverlay(dr);DCI.event.bindDom(dr.getElement(),"mousedown",function(event){dMap.setMouseMode(null);flag=false;downpoint=new DPoint(event.clientX,event.clientY);downLatlng=dMap.fromEvnetPixelToLatLng(downpoint);DCI.event.bindDom(dr.getElement(),"mousemove",move);DCI.event.bindDom(document.body,"mouseup",drmove);DCI.event.stop(event);return false})}function move(event){var movepoint=new DPoint(event.clientX,event.clientY);var l1=dMap.fromEvnetPixelToLatLng(movepoint);var offsetlon=(l1.lon-downLatlng.lon);var offsetlat=(l1.lat-downLatlng.lat);newp1=new DLonLat(initp1.lon+offsetlon,initp1.lat+offsetlat);newp2=new DLonLat(initp2.lon+offsetlon,initp2.lat+offsetlat);dr.set(newp1.toString()+","+newp2.toString());DCI.event.stop(event);return false}function drmove(event){initp1=newp1;initp2=newp2;var bounds=new DLonLatBounds(newp1,newp2);$this.map.panTo(bounds.getCenter());dMap.panTo(bounds.getCenter());DCI.event.unbindDom(dr.getElement(),"mousemove",move);DCI.event.unbindDom(document.body,"mouseup",drmove);DCI.event.stop(event);flag=true}};var CreateEagleeye=function(){eaglegroup.className="map-eagleeye-group";showeagleeye.className="map-show-eagleeye";eagleeyebox.className="map-eagleeye-box";eagleeyeinnerbox.className="map-eagleeye-innerbox";eagleeyeinnerbox.style.height="161px";eagleeyeinnerbox.style.width="161px";DCI.event.bindDom(showeagleeye,"mousedown",function(event){if(showeagleeye.style.backgroundImage=="url("+baseURL+"/hiddeneagle.png)"){closeEagleeye()}else{openEagleeye()}DCI.event.stop(event);return false});$this.element=eaglegroup};var openEagleeye=function(){eagleeyebox.style.display="block";showeagleeye.style.backgroundImage="url("+baseURL+"/hiddeneagle.png)";if(DCI.browser.msie){if($this.element.parentElement){if($this.element.parentElement.nextSibling){$this.element.parentElement.nextSibling.style.right="175px"}}}else{if($this.element.parentNode){if($this.element.parentNode.nextSibling){$this.element.parentNode.nextSibling.style.right="175px"}}}};var closeEagleeye=function(){eagleeyebox.style.display="none";showeagleeye.style.backgroundImage="url("+baseURL+"/showeagle.png)";if(DCI.browser.msie){if(eaglegroup.parentElement){if(eaglegroup.parentElement.nextSibling){eaglegroup.parentElement.nextSibling.style.right="15px"}}}else{if(eaglegroup.parentNode){if(eaglegroup.parentNode.nextSibling){eaglegroup.parentNode.nextSibling.style.right="15px"}}}}};DCI.Maps.Eagleeye.prototype=new DCI.Maps.Contorl();DEagleeye=DCI.Maps.Eagleeye})();
