百度api商圈范围图修改获取坐标数据、点是否在区域范围判断、js解析创建excel

第一次接触百度api,发此文留作备份

此工具读取excel文件进行数据解析,调用百度api,实现店铺配送区域图的展示效果,以及可以编辑配送区域图获取编辑后的配送范围坐标数据。 



1浏览进行excel文件选择,2读取excel把店铺名称显示到 

3,鼠标左键单击实现单选、或ctrl+鼠标左键进行多选、shift+鼠标左键进行范围多选

4多选区域图 实现店铺配送范围图的绘画



鼠标移动到某个范围度上,左键单击,进行坐标数据的获取



以下是源码

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
	<style type="text/css">
		body, html{width: 100%;height: 100%;margin:0;font-family:"微软雅黑";}
		#allmap{height:90%;width:100%;}
		#r-result{width:100%; font-size:14px;}
	</style>
	<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=wu98WR5sQrT6FvVvZ3f6Q8hX"></script>
	<script type="text/javascript" src="http://api.map.baidu.com/library/GeoUtils/1.2/src/GeoUtils_min.js"></script>
	<!--加载鼠标绘制工具-->
	<script type="text/javascript" src="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.js"></script>
	<link rel="stylesheet" href="http://api.map.baidu.com/library/DrawingManager/1.4/src/DrawingManager_min.css" />
	<!--加载检索信息窗口-->
	<script type="text/javascript" src="http://api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.js"></script>
	<link rel="stylesheet" href="http://api.map.baidu.com/library/SearchInfoWindow/1.4/src/SearchInfoWindow_min.css" />


	<title>药店配送区域</title>
</head>
<!--
	excel数据格式:第一行表头,从第二行开始读取,
	               第二列店铺名称、第五列店铺经度、第六列店铺维度、
				   第十列店铺配送区域坐标数据:经度,维度;经度,维度;经度,维度;......
-->
<body>
	<div id="allmap"></div>
	坐标:<input id="txtPoint" type="text"/>
	<div id="r-result">
		经度: <input id="longitude" type="text" style="width:100px; margin-right:10px;" value="116.33119" />
		纬度: <input id="latitude" type="text" style="width:100px; margin-right:10px;" value="39.972338" />
			  <input type="button" value="查询" οnclick="theLocation()" />
			  <input type="button" value="点区域判断" οnclick="isNoScope()" />
			  <input type="file" id="upfile" />
			  <input type="button" value="读取Excel" οnclick="ReadExcel()" />
			  <select id = "drugstoreSe" multiple></select><!--οnchange="gradeChange()-->
			  <input type="button" οnclick="checkselect();" value="多选区域图"> 
			  <input type="button" οnclick="ReadExcel2();" value="所有药店区域"> 
			  <input type="button" οnclick="writeExcel();" value="导出所选药店"> 
			  <input type="button" οnclick="clearAll();" value="清除所有覆盖图"> 
			  
	</div>
	<textarea id="txtArea" cols=50 rows=10></textarea>


</body>
</html>
<script type="text/javascript">
	// 百度地图API功能
	var map = new BMap.Map("allmap");
	map.addControl(new BMap.NavigationControl());               // 添加平移缩放控件  
	map.addControl(new BMap.ScaleControl());                    // 添加比例尺控件  
	map.addControl(new BMap.OverviewMapControl());              //添加缩略地图控件  
	map.enableScrollWheelZoom();                            //启用滚轮放大缩小  
	map.addControl(new BMap.MapTypeControl());          //添加地图类型控件  
	map.setMapType(BMAP_SATELLITE_MAP);  
	map.centerAndZoom(new BMap.Point(116.307852,40.057031),11);
	map.enableScrollWheelZoom(true);
	
	map.addEventListener("click",function(e){
		document.getElementById("txtPoint").value=e.point.lng + "," + e.point.lat;
	});

	var overlays = [];
	
	var overlaycomplete = function(e){
        overlays.push(e.overlay);
    };
    var styleOptions = {
        strokeColor:"red",    //边线颜色。
        fillColor:"red",      //填充颜色。当参数为空时,圆形将没有填充效果。
        strokeWeight: 3,       //边线的宽度,以像素为单位。
        strokeOpacity: 0.8,	   //边线透明度,取值范围0 - 1。
        fillOpacity: 0.6,      //填充的透明度,取值范围0 - 1。
        strokeStyle: 'solid' //边线的样式,solid或dashed。
    }
    //实例化鼠标绘制工具
    var drawingManager = new BMapLib.DrawingManager(map, {
        isOpen: false, //是否开启绘制模式
        enableDrawingTool: true, //是否显示工具栏
        drawingToolOptions: {
            anchor: BMAP_ANCHOR_TOP_RIGHT, //位置
            offset: new BMap.Size(5, 5) //偏离值
        },
        circleOptions: styleOptions, //圆的样式
        polylineOptions: styleOptions, //线的样式
        polygonOptions: styleOptions, //多边形的样式
        rectangleOptions: styleOptions //矩形的样式
    });  
	 //添加鼠标绘制工具监听事件,用于获取绘制结果
    drawingManager.addEventListener('overlaycomplete', overlaycomplete);
    function clearAll() {
		/*for(var i = 0; i < overlays.length; i++){
            map.removeOverlay(overlays[i]);
        }
        overlays.length = 0   */
		map.clearOverlays(); 
    }
	

	var myPolygon = new BMap.Polygon(overlays,styleOptions);
	try{myPolygon.enableEditing();}catch(e){};
	map.addOverlay(myPolygon);
	
	// 用经纬度设置地图中心点
	function theLocation(){
		if(document.getElementById("longitude").value != "" && document.getElementById("latitude").value != ""){
			map.clearOverlays(); 
			var new_point = new BMap.Point(document.getElementById("longitude").value,document.getElementById("latitude").value);
			var marker = new BMap.Marker(new_point);  // 创建标注
			map.addOverlay(marker);              // 将标注添加到地图中
			map.panTo(new_point);      
		}
	}
	
	// 点 区域判断
	function isNoScope(){
		map.clearOverlays(); 
		o = document.getElementById("drugstoreSe"); 
		t = document.getElementById("txtArea"); 
		var count=0; 
		var intvalue=""; 
		var point = new Array();
		var points = new Array();
		point.length = 0;points.length = 0;
		var filePath = document.all.upfile.value;
		var oXL = new ActiveXObject("Excel.application"); 
		var oWB = oXL.Workbooks.open(filePath);
		oWB.worksheets(1).select(); 
		var oSheet = oWB.ActiveSheet;
		
		var new_point = new BMap.Point(document.getElementById("longitude").value,document.getElementById("latitude").value);
		var yesNoScope = "";
		for(var i=0;i<o.length;i++){ 
			if(o.options[i].selected){ 
				intvalue+=o.options[i].text+","; 
				count++; 
				
				for(var a=2;a<100;a++){
					if(oSheet.Cells(a,2).value ==undefined || oSheet.Cells(a,3).value ==undefined )
						break;
						
					if(o.options[i].text == oSheet.Cells(a,2).value){
						point[i] = (oSheet.Cells(a,5).value + "," + oSheet.Cells(a,6).value)
						points[i] = oSheet.Cells(a,10).value;
						
						var arrayObj = oSheet.Cells(a,10).value.split(";");
						var polylinePointsArray = [];
						var str3 = "";
						
						for (var j = 0; j < arrayObj.length; j++) {
							var arry2 = new Array();
							var point_ = arrayObj[j];
							arry2 = point_.split(",");
							polylinePointsArray[j] = new BMap.Point(arry2[0],arry2[1]);
							str3 = str3+"new BMap.Point("+arry2[0]+","+arry2[1]+"),";
						}
						var ply = new BMap.Polygon(polylinePointsArray);
						var result = BMapLib.GeoUtils.isPointInPolygon(new_point, ply);
						
						if(result == true){
							alert("点在"+oSheet.Cells(a,2)+"内");
							yesNoScope += "在“"+oSheet.Cells(a,2)+"”配送范围;"+"\n";
							//将面添加到地图上    
							map.addOverlay(ply);
							
						} else {
							alert("点不在"+oSheet.Cells(a,2)+"内");
							yesNoScope += "不在“"+oSheet.Cells(a,2)+"”配送范围;"+"\n";
						} 
						
						 
						//var str = arrayObj[0];
						//var point0 = str.split(",");
						//polylinePointsArray[arrayObj.length] = new BMap.Point(point0[0],point0[1]);
						
						//var polyline = new BMap.Polyline(polylinePointsArray, {strokeColor:"#f50704",fillColor:"", strokeWeight:3, strokeOpacity:0,fillOpacity:0});

						
					}
				
				}
			} 
		} 

		var mkr = new BMap.Marker(new_point);// 创建标注
		map.addOverlay(mkr);	// 将标注添加到地图中
		
		t.value="选中:"+count+"个药店:"+"\n" + yesNoScope;
		
		oXL.Quit();
		CollectGarbage();
	}
	
	//write excel
	function writeExcel(){
		var oApplication; 
		//使用Excel的ActiveX控件
		var xls = new ActiveXObject("Excel.Application");
		//设置Excel是否通过ActiveX控件可见,设置为true,javascript会打开本地的excel程序
		//设置为false,javascript会在后台创建excel,而用户不可见
		xls.Visible = false;
		//新增工作簿
		var xlBook = xls.Workbooks.Add;
		//创建工作表
		var oSheet = xlBook.Worksheets(1); 
		//设置第1列至第4列的列宽
		//oSheet.Columns('1:4').ColumnWidth = 42;
		//设置第1行至第2行的行高
		//oSheet.Rows('1:2').RowHeight = 30;
		oSheet.Rows('1').RowHeight = 30;

		//写第一行数据
		//高级选择:选择第1行第1列至第1行第4列的单元格
		//oSheet.Range(oSheet.cells(1,1),oSheet.Cells(1,4)).Select;
		//将选择区域的字体设置为粗体
		//xls.Selection.Font.Bold = true;
		//设置选择区域的边框
		//xls.Selection.Borders.Weight = 2;
		//设置选择区域单元格背景色:1-黑色,2-白色,3-红色,4-绿色,5-蓝色,6-黄色,7-粉红色,8-天蓝色,9-酱土色
		//xls.Selection.Interior.ColorIndex = 5;
		//设置选择区域单元格水平对齐方式:1-常规,2-靠左,3-居中,4-靠右,5-填充 6-两端对齐,7-跨列居中,8-分散对齐
		//xls.Selection.HorizontalAlignment = 3;
		//设置选择区域单元格垂直对齐方式:1-靠上,2-居中,3-靠下,4-两端对齐,5-分散对齐
		//xls.Selection.VerticalAlignment = 2;
		//为单元格赋值
		oSheet.Cells(1,1).value = "编号";
		oSheet.Cells(1,2).value = "药快好平台--药店名称";
		oSheet.Cells(1,3).value = "百度平台--药店名称";
		oSheet.Cells(1,4).value = "地址";
		oSheet.Cells(1,5).value = "经度";
		oSheet.Cells(1,6).value = "纬度";
		oSheet.Cells(1,7).value = "营业时间起";
		oSheet.Cells(1,8).value = "营业时间止";
		oSheet.Cells(1,9).value = "配送区域名称";
		oSheet.Cells(1,10).value = "配送区域经纬度坐标";
		
		//第二行数据
		//高级选择:选择第2行第1列至第2行第4列的单元格
		//oSheet.Range(oSheet.cells(2,1),oSheet.Cells(2,4)).Select;
		//xls.Selection.Borders.Weight = 2;
		//设置单元格内容自动换行
		//xls.Selection.WrapText=true;
		//oSheet.Cells(2,1).value = "<NE> version";
		//oSheet.Cells(2,2).value = "NetAct and NE compatibility information table (in this document).For more information, see section Upgrading and downgrading an integrated <NE>";
		//oSheet.Cells(2,3).value = "Check if the <NE> version is supported in current NetAct release.If the NE is already integrated with NetAct and its version is not correct, you must upgrade or downgrade the NE.";
		//oSheet.Cells(2,4).value = "";
		
		var filePath = document.all.upfile.value;
		var oWB = xls.Workbooks.open(filePath);
		oWB.worksheets(1).select(); 
		var oSheet2 = oWB.ActiveSheet;
		o = document.getElementById("drugstoreSe"); 
		t = document.getElementById("txtArea");

		var count=0;
		for(var i=0;i<o.length;i++){ 
			if(o.options[i].selected){ 
				count++; 
				for(var a=2;a<100;a++){
					if(oSheet2.Cells(a,2).value ==undefined || oSheet2.Cells(a,3).value ==undefined ){
						break;
					}else{
						var arrayObj = new Array();
						var str3 ="";
						//var tempStr =(oSheet.Cells(i,10).value);
						
						if(o.options[i].text == oSheet2.Cells(a,2).value){
							oSheet.Cells(count+1,1).value = oSheet2.Cells(a,1).value;
							oSheet.Cells(count+1,2).value = oSheet2.Cells(a,2).value;
							oSheet.Cells(count+1,3).value = oSheet2.Cells(a,3).value;
							oSheet.Cells(count+1,4).value = oSheet2.Cells(a,4).value;
							oSheet.Cells(count+1,5).value = oSheet2.Cells(a,5).value;
							oSheet.Cells(count+1,6).value = oSheet2.Cells(a,6).value;
							oSheet.Cells(count+1,7).value = oSheet2.Cells(a,7).value;
							oSheet.Cells(count+1,8).value = oSheet2.Cells(a,8).value;
							oSheet.Cells(count+1,9).value = oSheet2.Cells(a,9).value;
							oSheet.Cells(count+1,10).value = oSheet2.Cells(a,10).value;
						}
	
					}
						
				} 
			}
		}
		
		//保存excel工作表,注意:路径必须是双反斜线(\\)
		oSheet.SaveAs("D:\药店.xls" );
		//推出程序
		xls.Quit();
		CollectGarbage();
	}	

	function ReadExcel(){

		 
		 var points = "";
		 var drugstore = "";
		 var filePath = document.all.upfile.value;
		 var oXL = new ActiveXObject("Excel.application"); 
		 var oWB = oXL.Workbooks.open(filePath);
		 oWB.worksheets(1).select(); 
		 var oSheet = oWB.ActiveSheet;
		 
		 try{
			
			map.clearOverlays(); 
			for(var i=2;i<100;i++){
				if(oSheet.Cells(i,2).value ==undefined || oSheet.Cells(i,3).value ==undefined ){
					break;
				}else{
					var arrayObj = new Array();
					var str3 ="";
					var tempStr =(oSheet.Cells(i,10).value);
				
					document.getElementById("drugstoreSe").options.add(new Option(oSheet.Cells(i,2).value,i-1));
					//alert(oSheet.Cells(i,5).value + "------" + oSheet.Cells(i,6).value);
					arrayObj = tempStr.split(";");  
					
					var new_point = new BMap.Point(oSheet.Cells(i,5).value, oSheet.Cells(i,6).value);    // 创建点坐标
					var marker = new BMap.Marker(new_point);  // 创建标注
					map.addOverlay(marker);              // 将标注添加到地图中
					//map.panTo(new_point);
					map.centerAndZoom(new_point,13); 	                  // 初始化地图,设置中心点坐标和地图级别。
						
					/*var polylinePointsArray = [];
					for (var j = 0; j < arrayObj.length; j++) {
						var arry2 = new Array();
						var point = arrayObj[j];
						arry2 = point.split(",");
						polylinePointsArray[j] = new BMap.Point(arry2[0],arry2[1]);
						str3 = str3+"new BMap.Point("+arry2[0]+","+arry2[1]+"),";
					}
					var str = arrayObj[0];
					var point0 = str.split(",");
					polylinePointsArray[arrayObj.length] = new BMap.Point(point0[0],point0[1]);
					
					var polyline = new BMap.Polyline(polylinePointsArray, {strokeColor:"#f50704",fillColor:"", strokeWeight:3, strokeOpacity:0,fillOpacity:0});
					map.addOverlay(polyline);
					*/
					//paintingPoints2(i,oSheet.Cells(i,5).value+","+oSheet.Cells(i,6).value,str3.substring(0,str3.length-1),oSheet.Cells(i,2).value,'blue');
				}
					
			}

		 }catch(e){
			document.all.txtArea.value = tempStr;
		 } 
			document.all.txtArea.value = tempStr;
			
		 oXL.Quit();
		 CollectGarbage();
	}
	
	function ReadExcel2(){
		 var points = "";
		 var drugstore = "";
		 var filePath = document.all.upfile.value;
		 var oXL = new ActiveXObject("Excel.application"); 
		 var oWB = oXL.Workbooks.open(filePath);
		 oWB.worksheets(1).select(); 
		 var oSheet = oWB.ActiveSheet;
		 
		 try{
			
			map.clearOverlays(); 
			for(var i=2;i<100;i++){
				if(oSheet.Cells(i,2).value ==undefined || oSheet.Cells(i,3).value ==undefined ){
					break;
				}else{
					var arrayObj = new Array();
					var str3 ="";
					var tempStr =(oSheet.Cells(i,10).value);
				
					document.getElementById("drugstoreSe").options.add(new Option(oSheet.Cells(i,2).value,i-1));
					//alert(oSheet.Cells(i,5).value + "------" + oSheet.Cells(i,6).value);
					arrayObj = tempStr.split(";");  
					
					var new_point = new BMap.Point(oSheet.Cells(i,5).value, oSheet.Cells(i,6).value);    // 创建点坐标
					var marker = new BMap.Marker(new_point);  // 创建标注
					map.addOverlay(marker);              // 将标注添加到地图中
					//map.panTo(new_point);
					map.centerAndZoom(new_point,13); 	                  // 初始化地图,设置中心点坐标和地图级别。
						
					var polylinePointsArray = [];
					for (var j = 0; j < arrayObj.length; j++) {
						var arry2 = new Array();
						var point = arrayObj[j];
						arry2 = point.split(",");
						polylinePointsArray[j] = new BMap.Point(arry2[0],arry2[1]);
						str3 = str3+"new BMap.Point("+arry2[0]+","+arry2[1]+"),";
					}
					var str = arrayObj[0];
					var point0 = str.split(",");
					polylinePointsArray[arrayObj.length] = new BMap.Point(point0[0],point0[1]);
					
					var polyline = new BMap.Polyline(polylinePointsArray, {strokeColor:"#f50704",fillColor:"", strokeWeight:3, strokeOpacity:0,fillOpacity:0});
					map.addOverlay(polyline);
					
				}
					
			}

		 }catch(e){
			document.all.txtArea.value = tempStr;
		 } 
			document.all.txtArea.value = tempStr;
			
		 oXL.Quit();
		 CollectGarbage();
	}

	function gradeChange(){
		var selectIndex = document.getElementById("drugstoreSe").selectedIndex;//获得是第几个被选中了
		var selectText = document.getElementById("drugstoreSe").options[selectIndex].text //获得被选中的项目的文本
		alert(selectText);
			
		var points = "";
		var filePath = document.all.upfile.value;
		var oXL = new ActiveXObject("Excel.application"); 
		var oWB = oXL.Workbooks.open(filePath);
		oWB.worksheets(1).select(); 
		var oSheet = oWB.ActiveSheet;
		 
		try{
			var arrayObj = new Array();
			var arry = new Array();
			var str3 ="";
			for(var i=2;i<100;i++){
				if(oSheet.Cells(i,2).value ==undefined || oSheet.Cells(i,3).value ==undefined )
					break;
					
				if(selectText == oSheet.Cells(i,2).value){
					points +=(oSheet.Cells(i,10).value);
					arrayObj = points.split(";");
					arry[0] = oSheet.Cells(i,5).value
					arry[1] = oSheet.Cells(i,6).value
					
					paintingPoints(arrayObj,arry);
					var polylinePointsArray = [];
					for (var j = 0; j < arrayObj.length; j++) {
						var arry2 = new Array();
						var point = arrayObj[j];
						arry2 = point.split(",");
						polylinePointsArray[j] = new BMap.Point(arry2[0],arry2[1]);
						str3 = str3+"new BMap.Point("+arry2[0]+","+arry2[1]+"),";
						
					}
					var str = arrayObj[0];
					var point0 = str.split(",");
					polylinePointsArray[arrayObj.length] = new BMap.Point(point0[0],point0[1]);
					
					//paintingPoints2(i,oSheet.Cells(i,5).value+","+oSheet.Cells(i,6).value,str3.substring(0,str3.length-1),oSheet.Cells(i,2).value,'blue');
				}
				
				
							
			}
			
		}catch(e){
			
		} 
			
		oXL.Quit();
		CollectGarbage();
	}
	
	function checkselect(){ 
		map.clearOverlays(); 
		o = document.getElementById("drugstoreSe"); 
		t = document.getElementById("txtArea"); 
		var count=0; 
		var intvalue=""; 
		var point = new Array();
		var points = new Array();
		point.length = 0;points.length = 0;
		var filePath = document.all.upfile.value;
		var oXL = new ActiveXObject("Excel.application"); 
		var oWB = oXL.Workbooks.open(filePath);
		oWB.worksheets(1).select(); 
		var oSheet = oWB.ActiveSheet;
		
		for(var i=0;i<o.length;i++){ 
			if(o.options[i].selected){ 
				intvalue+=o.options[i].text+","; 
				count++; 
				
				for(var a=2;a<100;a++){
					if(oSheet.Cells(a,2).value ==undefined || oSheet.Cells(a,3).value ==undefined )
						break;
						
					if(o.options[i].text == oSheet.Cells(a,2).value){
						point[i] = (oSheet.Cells(a,5).value + "," + oSheet.Cells(a,6).value)
						points[i] = oSheet.Cells(a,10).value;
						
						var arrayObj = oSheet.Cells(a,10).value.split(";");
						var polylinePointsArray = [];
						var str3 = "";
						for (var j = 0; j < arrayObj.length; j++) {
							var arry2 = new Array();
							var point_ = arrayObj[j];
							arry2 = point_.split(",");
							str3 = str3+"new BMap.Point("+arry2[0]+","+arry2[1]+"),";
							polylinePointsArray[j] = new BMap.Point(arry2[0],arry2[1]);

						}
						
						//alert(str3);
						//带遮罩效果、鼠标移入效果
						paintingPoints2(count,oSheet.Cells(a,5).value+","+oSheet.Cells(a,6).value,str3.substring(0,str3.length-1),oSheet.Cells(a,2).value,'blue',polylinePointsArray);
						
						/*
						var polyline = new BMap.Polygon(polylinePointsArray,styleOptions);
						try{polyline.enableEditing();}catch(e){};
						map.addOverlay(polyline);
						//中心点
						var secRingCenter = new BMap.Point(oSheet.Cells(a,5).value,oSheet.Cells(a,6).value);
						//创建标签  
						var secRingLabel = new BMap.Label("<b>"+oSheet.Cells(a,2).value+"</b>",{offset: new BMap.Size(-150,0), position: secRingCenter});  
							secRingLabel.setStyle({"z-index":"999999", "padding": "10px","width": "140px","border": "1px solid #ccff00"});
							
						//给多边形添加鼠标事件  
						polyline.addEventListener("mouseover",function(){  
							polyline.setStrokeColor("blue");  
							map.addOverlay(secRingLabel);  
							//map.panTo(secRingCenter);  
						});
						*/
					}
				
				}
			} 
		} 
		
		t.value="选中:"+count+"个药店:"+intvalue;
		//paintingPoints(points,point);
		
		oXL.Quit();
		CollectGarbage();

	} 
	
	function paintingPoints(points,arry){
		map.clearOverlays(); 
		for(var i = 0; i<arry.length; i++){
			if(arry[i] !=undefined && points[i] != undefined){
				var pointArry = arry[i].split(",");
				var pointsArry = points[i].split(";");
				
				//alert(arry[i]);alert(points[i]);
				
				var new_point = new BMap.Point(pointArry[0], pointArry[1]);    // 创建点坐标
				var marker = new BMap.Marker(new_point);  // 创建标注
				map.addOverlay(marker);              // 将标注添加到地图中
				//map.panTo(new_point);
				map.centerAndZoom(new_point,13); 	                  // 初始化地图,设置中心点坐标和地图级别。
					
				var polylinePointsArray = [];
				for (var j = 0; j < pointsArry.length; j++) {
					var arry2 = new Array();
					var point = pointsArry[j];
					arry2 = point.split(",");
					polylinePointsArray[j] = new BMap.Point(arry2[0],arry2[1]);
				}
				var str = pointsArry[0];
				var point0 = str.split(",");
				polylinePointsArray[pointsArry.length] = new BMap.Point(point0[0],point0[1]);
				
				var polyline = new BMap.Polyline(polylinePointsArray, {strokeColor:"#f50704",fillColor:"", strokeWeight:3, strokeOpacity:0,fillOpacity:0});
				map.addOverlay(polyline);
			}
			
		}

		//alert(points.length);
		//map.clearOverlays(); 
		//for(i = 0; i < points.length; i++){
		//	var arry2 = new Array();
		//	var point = points[i];
		//	arry2 = point.split(",");
		//	var new_point = new BMap.Point(arry2[0],arry2[1]);
		//	var marker = new BMap.Marker(new_point);  // 创建标注
		//	map.addOverlay(marker);              // 将标注添加到地图中
		//	map.panTo(new_point);   
		//	
		//}
	}
	
	function paintingPoints2(i,xy,arr,wb,ys,polygonArry) {
		t.value = arr;
		t = document.getElementById("txtArea"); 
        //创建经纬度数组
        eval("var secRingCenter" + i+" = new BMap.Point("+xy+")");
        eval("var secRing"+i+" = ["+arr+"]");
        //创建多边形
        eval("var secRingPolygon" + i + "= new BMap.Polygon(secRing" + i + ",{strokeColor:\"blue\",fillColor:\"yellow\",strokeWeight: 3,strokeOpacity: 0.8,fillOpacity: 0.6,strokeStyle: 'solid'})");
        //eval("var secRingPolygon" + i + "= new BMap.Polygon(secRing" + i + ", { FillColor:\"red\", strokeColor: \"blue\", strokeWeight: 2, strokeOpacity: 0.3 })");
		
		try{eval("secRingPolygon" + i).enableEditing();}catch(e){};
        //添加多边形到地图上
        map.addOverlay(eval("secRingPolygon"+i));

        //var resultArea = BMapLib.GeoUtils.getPolygonArea(eval("secRingPolygon" + i)); //计算多边形的面积(单位米)
		
        //给多边形添加鼠标事件
        eval("secRingPolygon"+i).addEventListener("mouseover", function () {//鼠标经过时
            eval("secRingPolygon" + i).setStrokeColor("red"); //多边形边框为红色
            //eval("secRingPolygon" + i).setFillColor(ys); //填充颜色
            map.addOverlay(eval("secRingLabel"+i)); //添加多边形遮照
            //map.panTo(eval("secRingCenter"+i)); //将地图移动到指定点
        });
        eval("secRingPolygon"+i).addEventListener("mouseout", function () {//鼠标移出
            eval("secRingPolygon" + i).setStrokeColor(ys);
            //eval("secRingPolygon" + i).setFillColor(""); 
            map.removeOverlay(eval("secRingLabel"+i));
        });
        eval("secRingPolygon"+i).addEventListener("click", function () {//点击
            //map.zoomIn();//地图放大
            //eval("secRingPolygon" + i).setStrokeColor(ys);
            //eval("secRingPolygon" + i).setFillColor(""); 
            //map.setCenter(eval("secRingCenter"+i));
			var points = eval("secRingPolygon"+i).getPath();//点击覆盖物获取坐标数据		
			//var test = points[0]
			//alert(test.lng+","+test.lat);
			var str = "";
			for(var a = 0; a < points.length; a++){
				var point = points[a];
				str = str + point.lng+","+point.lat+";";
			}
			t.value = str.substring(0,str.length-1);
        });
        //创建标签
        eval("var secRingLabel" + i + "= new BMap.Label(\"<b>" + wb + /*" 面积(㎡):" + Math.floor(resultArea) +*/ "</b>\", { offset: new BMap.Size(0, 0), position: secRingCenter" + i + "})");
        eval("secRingLabel"+i).setStyle({ "z-index": "999999", "padding": "2px",  "border": "1px solid #ccff00" });
    }

</script>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值