carpark-positions-map.js 5.41 KB
/**
 * 百度地图
 * 
 */

var WorldsBMap = function () {
	
	var Bmap = {
			
			init : function() {
				
				// 关闭左侧栏
				if (!$('body').hasClass('page-sidebar-closed')) {
					
					$('.menu-toggler.sidebar-toggler').click();
					
				}
				
				// 设置中心点,
				var CENTER_POINT = {lng : 121.528733,lat : 31.237425};
				
				// 百度API Key
				var bdKey = 'IGGrr4UjwIYzatoCRFKEL8sT';
				
				// 初始化百度地图
				var map = new BMap.Map("bmap_basic");
				
				//中心点和缩放级别
				map.centerAndZoom(new BMap.Point(CENTER_POINT.lng,CENTER_POINT.lat), 15);
				
				//启用地图拖拽事件,默认启用(可不写)
				map.enableDragging(); 
				
				//启用地图滚轮放大缩小
				map.enableScrollWheelZoom(); 
				
				//禁用鼠标双击放大
				map.disableDoubleClickZoom();
				
				//启用键盘上下左右键移动地图
				map.enableKeyboard();
				
				var styleOptions = {
						
						//边线颜色。
						strokeColor : "blue",
						
						//填充颜色。当参数为空时,圆形将没有填充效果。
						fillColor : "blue",
						
						//边线的宽度,以像素为单位。
						strokeWeight : 3,
						
						//边线透明度,取值范围0 - 1。
						strokeOpacity : 0.8,
						
						//填充的透明度,取值范围0 - 1。
						fillOpacity : 0.6,
						
						//边线的样式,solid或dashed。
						strokeStyle : 'solid' 
							
				};
				
				// 创建鼠标绘制管理类
				drawingManager = new BMapLib.DrawingManager(map, {
					
					//是否开启绘制模式
					isOpen : false,
					
					//是否显示工具栏
					enableDrawingTool : false,
					
					drawingToolOptions : {
						
						//位置
						anchor : BMAP_ANCHOR_TOP_RIGHT,
						
						//偏离值
						offset : new BMap.Size(5, 5),
						
						//工具栏缩放比例
						scale : 0.8
						
					},
					
					//线的样式
					polygonOptions : styleOptions
					
				});
				
				// 添加绘画完成事件
				drawingManager.addEventListener('polygoncomplete', function(e) {
					
					drawingManager.close();
					 
					 if (e.getPath().length <= 2) {
						 
						// 弹出提示消息
						layer.msg('坐标点不能小于等于两个...');
						 
						 // 清除地图覆盖物
						 map.clearOverlays();
						 
						 // 加载该线路下所有站点位置添加到地图上
						 return false;
						 
					 }else {
						 
						 var pointE = e;
						 
						 // 多变行质心点
						 var addSttationPoints_ = pointE.getBounds().getCenter().lng+ ' ' + pointE.getBounds().getCenter().lat;
						 
						 var PointsList = [];
						 
						 for ( var i = 0; i < pointE.getPath().length; i++) {
								
				 			 PointsList.push({potion: {lng: pointE.getPath()[i].lng, lat: pointE.getPath()[i].lat}});
					 			 
					 	 }
						 
						 PointsList.push({potion: {lng: pointE.getPath()[0].lng, lat: pointE.getPath()[0].lat}});
						 
						 var centre  = [{potion:{lng:pointE.getBounds().getCenter().lng,lat:pointE.getBounds().getCenter().lat}}];
						 
						 PublicFunctions.getFormPointEToWGS(PointsList,function(resultdata) {
							 
							 var gPloygonGrid = '';
								
							 var bPloygonGrid = '';
								
							 for(var k =0;k<resultdata.length;k++) {
									
								 if(k==0) {
										
									 gPloygonGrid = resultdata[k].WGSpotion.Lng + ' ' +resultdata[k].WGSpotion.Lat;
										
									 bPloygonGrid = resultdata[k].potion.lng + ' ' +resultdata[k].potion.lat;
										
								 }else {
										
									 gPloygonGrid = gPloygonGrid + ',' + resultdata[k].WGSpotion.Lng + ' ' +resultdata[k].WGSpotion.Lat;
										
									 bPloygonGrid = bPloygonGrid + ',' + resultdata[k].potion.lng + ' ' +resultdata[k].potion.lat;
										
								 }
									
							 }
							 
							 gPloygonGrid = 'POLYGON((' + gPloygonGrid + '))';
							 
							 bPloygonGrid = 'POLYGON((' + bPloygonGrid + '))';
							 
							 PublicFunctions.getFormPointEToWGS(centre,function(p) {
								 
								 var gLonx = p[0].WGSpotion.Lng;
									
								 var gLaty = p[0].WGSpotion.Lat;
								 
								 PublicFunctions.editSeteditStationParmasValue(addSttationPoints_,gLonx,gLaty,bPloygonGrid,gPloygonGrid,'d','');
								 
								 $.get('edit.html', function(m){$(pjaxContainer).append(m);});
								 
							 });
							 
						  });
						 
					 }
					 
				});
				return map;
			},
			
localSearchFromAdreesToPoint: function(Address,map,callback) {
				
				// 创建一个搜索类实例
				var localSearch = new BMap.LocalSearch(map);
				
				// 检索完成后的回调函数。
				localSearch.setSearchCompleteCallback(function (searchResult) {
					
					var resultPoints = '';
					
					if(searchResult) {
						
						// 返回索引指定的结果。索引0表示第1条结果
						var poi = searchResult.getPoi(0);
						
						if(poi) {
							
							//获取经度和纬度
							resultPoints = poi.point.lng + ' ' + poi.point.lat;
							
							callback && callback(resultPoints);
							
						}else {
							
							callback && callback(false);
							
						}
						
					}else {
						
						callback && callback(false);
					}
					
				});
				
				// 根据检索词发起检索。
				localSearch.search(Address);
				
			}
	}
	
	return Bmap;
	
}();