[BaiduMap]使用小计

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

最近从谷歌地图转移到百度地图,关于其中操作代码备记下,其中包括关于MarkerManager使用,代码基于API 2.0:

var allMarkers = [];

var map =null;

var mgr =null;

var infoWindow;/*baidumap初始化*xlat,ylng 经纬度*zoom 缩放级别*gdiv 承载div*/function setupMap(xlat, ylng, zoom, gdiv) {

map =newBMap.Map(gdiv);

var point =newBMap.Point(ylng, xlat);

map.centerAndZoom(point, zoom);

map.addControl(newBMap.NavigationControl());// 添加平移缩放控件map.addControl(newBMap.ScaleControl());// 添加比例尺控件map.addControl(newBMap.OverviewMapControl());//添加缩略地图控件map.enableScrollWheelZoom();//启用滚轮放大缩小}/*创建mark标记*/function setupMarker(item) {

var point =newBMap.Point(item.YLong, item.XLat);

var icon =newBMap.Icon(item.Ico,newBMap.Size(32, 32));

var marker =newBMap.Marker(point);

marker.setIcon(icon);

marker.disableDragging();

marker.setTitle(item.Title);

marker.metadata = { guid: item.Guid, code: item.Code, lampcount: item.LampCount,

polecount: item.PoleCount, xlat: item.XLat, ylong: item.YLong, type: item.Type,

lampname: item.LampName, lamppower: item.LampPower, lampupdatetime: item.LampUpdateTime,

lampstatus: item.LampStatus, cabname: item.CabName, areaname: item.AreaName, roadname: item.RoadName

};

bindInfoWindows(marker, marker.metadata.type);

map.addOverlay(marker);returnmarker;

}/*创建集群Mark*itms json对象*minzoom 最小缩放级别 MarkerManager使用*maxzoom 最大缩放级别 MarkerManager使用*/function getMarkers(itms, minzoom, maxzoom) {

var batch = [];

var jsitms = eval(itms);

$.each(jsitms, function(index,value) {

var tmpMark = setupMarker(value);

batch.push(tmpMark);

allMarkers.push(tmpMark);

});if(!mgr)

mgr =newBMapLib.MarkerManager(map, {

borderPadding: 200,

maxZoom: 18,

trackMarkers:true});

mgr.addMarkers(batch, minzoom, maxzoom);

map.addEventListener("zoomend", function() {

mgr.show();

});

map.addEventListener("dragend", function() {

mgr.show();

});

}/**说明:为Marker标记当点击的时候,弹出提示框*marker:需要提示的Marker*infoType: 类型*/function bindInfoWindows(marker, infoType) {if(!infoWindow)

infoWindow =newBMap.InfoWindow();

marker.addEventListener("click", function() {

infoWindow.setContent(setupMarkerContens(marker, infoType,false));this.openInfoWindow(infoWindow);

});

}/*为mark标记生成infowindows的内容*infoType:marker标记类型*isClick : 是否点击*/function setupMarkerContens(marker, infoType, isClick) {if(marker.metadata.type =="cab"&& isClick ==false) {return" <table><tr><td align=center style='font-family:微软雅黑;font-size: medium'>灯箱【<span>"+ marker.getTitle() +"</span>】运行信息</td> </tr>"+" <tr>"+"<td valign=top>"+"<table width=100%>"+"<tbody>"+"<tr>"+"<td >灯箱编号:</td>"+"<td>"+ marker.metadata.code +"</td>"+"<td >灯箱名称:</td>"+"<td>"+ marker.getTitle() +" </td>"+"</tr>"+"<tr>"+"<td >所属区域:</td>"+"<td>"+ marker.metadata.roadname +" </td>"+"<td >所辖管区:</td>"+"<td>"+ marker.metadata.areaname +"</td>"+"</tr>"+"<tr>"+"<td >经度:</td>"+"<td>"+ marker.metadata.xlat +"</td>"+"<td>纬度:</td>"+"<td>"+ marker.metadata.ylong +"</td>"+"</tr>"+"<tr>"+"<td >控制灯杆:</td>"+"<td>"+ marker.metadata.polecount +"</td>"+"<td >控制灯盏:</td>"+"<td> "+ marker.metadata.lampcount +"</td>"+"</tr>"+"<tr>"+"<td >故障(不亮灯):</td>"+"<td>"+ window.external.GetLampLight(marker.metadata.guid) +"</td>"+"<td ></td>"+"<td></td>"+"</tr>"+"</tbody>"+"</table>"+"</td>"+"</tr>"+"<tr>"+"<td>"+"<img src='Images/Illustration.png' id=bottomPic></td>"+"</tr>"+"</table>";

}if(marker.metadata.type =="pole"&& isClick ==false) {return"<table>"+"<tr>"+"<td align=center style='font-family:微软雅黑;font-size: medium'>灯杆【<span id=poleName>"+ marker.metadata.code +"</span> 】运行信息 </td>"+"</tr>"+"<tr>"+"<td valign=top>"+"<table >"+" <tbody>"+"<tr>"+"<td width=25%>灯杆编号: </td>"+"<td><span id=poleCode>"+ marker.metadata.code +" </span></td>"+"<td width=25%>灯杆型号: </td>"+"<td><span id=poleType>道路一杆一灯型</span> </td>"+"</tr>"+"<tr>"+"<td width=25%>所属灯箱: </td>"+"<td><span id=cabName>"+ marker.metadata.cabname +"</span> </td>"+"<td width=25%>所属区域: </td>"+"<td><span id=areaName>"+ marker.metadata.roadname +"</span> </td>"+"</tr>"+"<tr>"+"<td width=25%>经度: </td>"+"<td><span id=xlat>"+ marker.metadata.xlat +"</span> </td>"+"<td width=25%>纬度: </td>"+"<td><span id=ylong>"+ marker.metadata.ylong +"</span> </td>"+"</tr>"+"<tr>"+"<td width=25%>灯盏总数: </td>"+" <td><span id=lampCount>"+ marker.metadata.lampcount +"</span> </td>"+"<td width=25%>&nbsp;</td>"+"<td>&nbsp;</td>"+"</tr>"+"</tbody>"+"</table>"+"</td>"+"</tr>"+"<tr>"+"<td align=center style='font-family:微软雅黑;font-size: medium'>属下灯运行信息 </td>"+"</tr>"+"<tr>"+"<td align=center valign=top>"+"<table id=lampInfoTbl height=50>"+"<tbody>"+"<tr>"+"<td align=center>类别 </td>"+"<td align=center >名称 </td>"+"<td align=center >额定功率 </td>"+"<td align=center >当前状态</td>"+"<td align=center >更新时间 </td>"+"</tr>"+"<tr>"+"<td align=center>道路灯</td>"+"<td align=center>"+ marker.metadata.lampname +"</td>"+"<td align=center>"+ marker.metadata.lamppower +"</td>"+"<td align=center>"+ marker.metadata.lampstatus +"</td>"+"<td align=center>"+ marker.metadata.lampupdatetime +"</td>"+"</tr>"+"</tbody>"+"</table>"+"</td>"+"</tr>"+"<tr>"+"<td align=center>"+"<img src='Images/Illustration.png' id=bottomPic>"+"</td>"+"</tr>"+"</table>";

}if(infoType =="clcab"&& isClick ==true) {return"<div style=text-align:center>"+ marker.getTitle() +"</div>";

}if(infoType =="clpole"&& isClick ==true) {return"<div style=text-align:center><b>杆编号:"+ marker.metadata.code +"</b><br>"+"道路灯:"+ marker.metadata.lampstatus +"</div>";

}

}/*根据mark标记 id查找mark标记*/function findedMarker(guid) {

var marker;

$.each(allMarkers, function(index,value) {if(value.metadata.guid == guid) {

marker =value;returnmarker;

}

})returnmarker;

}/*树节点点击跳转到对应的mark标记*guid:marker标记id*infoType: marker类型*zoom :缩放级别*/function GoToNodeClick(guid, infoType, zoom) {

var marker = findedMarker(guid);if(typeof(marker) !="undefined") {

var mapZoom = map.getZoom();

var zoomLevel = zoom > mapZoom ? zoom : mapZoom;

map.centerAndZoom(marker.getPosition(), zoomLevel);if(!infoWindow)

infoWindow =newBMap.InfoWindow();

infoWindow.setContent(setupMarkerContens(marker, infoType,true));

marker.openInfoWindow(infoWindow);

bindInfoWindows(marker, 0);

}

}

function SetCenter(lat, lng, zoom) {

var point =newBMap.Point(lng, lat);

map.centerAndZoom(point, zoom);

}

function UpdateMarker(guid, icon) {

var marker = findedMarker(guid);

var icon =newBMap.Icon(icon,newBMap.Size(32, 32));

marker.setIcon(icon);

}

.csharpcode, .csharpcodePRe

{

font-size: small;

color: black;

font-family: consolas, "Courier New", courier, monospace;

background-color: #ffffff;

/*white-space: pre;*/

}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp{ background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt

{

background-color: #f4f4f4;

width: 100%;

margin: 0em;

}

.csharpcode .lnum { color: #606060; }

其中页面代码如下:

<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<title></title>

<script type="text/javascript"src=http://api.map.baidu.com/api?v=2.0&ak=你的key></script>

<script type="text/Javascript"src="jquery-1.4.1.js"></script>

<script type="text/javascript"src="MarkerManager_min.js"></script>

<script type="text/javascript"src="BMapOperate.js"></script>

<style type="text/CSS">

body, html, #map

{

width: 100%;

height: 100%;

overflow: hidden;

margin: 0;

}

</style>

</head>

<body>

<div id="map">

</div>

</body>

</html>

.csharpcode, .csharpcode pre

{

font-size: small;

color: black;

font-family: consolas, "Courier New", courier, monospace;

background-color: #ffffff;

/*white-space: pre;*/

}

.csharpcode pre { margin: 0em; }

.csharpcode .rem { color: #008000; }

.csharpcode .kwrd { color: #0000ff; }

.csharpcode .str { color: #006080; }

.csharpcode .op { color: #0000c0; }

.csharpcode .preproc { color: #cc6633; }

.csharpcode .asp { background-color: #ffff00; }

.csharpcode .html { color: #800000; }

.csharpcode .attr { color: #ff0000; }

.csharpcode .alt

{

background-color: #f4f4f4;

width: 100%;

margin: 0em;

}

.csharpcode .lnum { color: #606060; }希望有所帮助!

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航