增加网格绘制隐藏背景和隐藏背景颜色按钮
This commit is contained in:
parent
f54944daaf
commit
671cb3a798
@ -26,14 +26,16 @@ function BaiduMap(mapId, mapConfig) {
|
|||||||
BLACK: '#393D49'
|
BLACK: '#393D49'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 标签数组
|
|
||||||
this.labelArray = [];
|
|
||||||
// 网格操作
|
// 网格操作
|
||||||
this.gridOption = {
|
this.gridOption = {
|
||||||
const: {
|
const: {
|
||||||
RELATION_NAME_ID: 'B_GRID_RELATION_NAME',
|
RELATION_NAME_ID: 'B_GRID_RELATION_NAME',
|
||||||
START_BTN_ID: 'B_GRID_START_BTN',
|
START_BTN_ID: 'B_GRID_START_BTN',
|
||||||
CANCEL_BTN_ID: 'B_GRID_CANCEL_BTN',
|
CANCEL_BTN_ID: 'B_GRID_CANCEL_BTN',
|
||||||
|
HIDE_BACKGROUND_BTN_ID: 'HIDE_BACKGROUND_BTN',
|
||||||
|
SHOW_BACKGROUND_BTN_ID: 'SHOW_BACKGROUND_BTN',
|
||||||
|
NO_BACKGROUND_COLOR_BTN_ID: 'NO_BACKGROUND_COLOR_BTN',
|
||||||
|
SHOW_BACKGROUND_COLOR_BTN_ID: 'SHOW_BACKGROUND_COLOR_BTN',
|
||||||
RIGHT_BOX_ID: 'B_GRID_RIGHT_BOX',
|
RIGHT_BOX_ID: 'B_GRID_RIGHT_BOX',
|
||||||
RIGHT_BOX_WIDTH: 80,
|
RIGHT_BOX_WIDTH: 80,
|
||||||
RIGHT_BOX_HEIGHT: 94,
|
RIGHT_BOX_HEIGHT: 94,
|
||||||
@ -75,8 +77,10 @@ function BaiduMap(mapId, mapConfig) {
|
|||||||
COLOR_B: 'B_COLOR_B',
|
COLOR_B: 'B_COLOR_B',
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
this.backgroundGridArray = [];
|
||||||
this.mapConfig = mapConfig;
|
this.mapConfig = mapConfig;
|
||||||
this.relationGroup = null;
|
this.relationGroup = null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 关联
|
// 关联
|
||||||
@ -285,17 +289,19 @@ BaiduMap.prototype.getCenterPoint = function (pathPointArray) {
|
|||||||
BaiduMap.prototype.setLabelFontSize = function (size) {
|
BaiduMap.prototype.setLabelFontSize = function (size) {
|
||||||
// 全部隐藏
|
// 全部隐藏
|
||||||
if (size === 0) {
|
if (size === 0) {
|
||||||
for (var i = 0, label; label = this.labelArray[i++];) {
|
for (var i = 0, item; item = this.backgroundGridArray[i++];) {
|
||||||
label.hide();
|
item.label.overlay.hide();
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (var i = 0, label; label = this.labelArray[i++];) {
|
for (var i = 0, item; item = this.backgroundGridArray[i++];) {
|
||||||
|
var label = item.label.overlay;
|
||||||
|
if (!item.label.isShow) {
|
||||||
|
label.hide();
|
||||||
|
continue;
|
||||||
|
}
|
||||||
label.show();
|
label.show();
|
||||||
label.setOffset(new BMap.Size(-label.content.length * size / 2, -size / 2));
|
label.setOffset(new BMap.Size(-label.content.length * size / 2, -size / 2));
|
||||||
label.setStyle({
|
|
||||||
fontSize: size + 'px'
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 获得Map对象
|
// 获得Map对象
|
||||||
@ -493,10 +499,75 @@ BaiduMap.prototype.getGridBarBox = function () {
|
|||||||
return cancelOptionBtn;
|
return cancelOptionBtn;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 隐藏背景按钮
|
||||||
|
*/
|
||||||
|
function hideBackgroundBtn() {
|
||||||
|
var btn = document.createElement('a');
|
||||||
|
self.setABtnElementAttribute(btn, self.gridOption.const.HIDE_BACKGROUND_BTN_ID, '隐藏背景', 'rgb(240 159 27)');
|
||||||
|
btn.addEventListener('click', function (event) {
|
||||||
|
self.hideBackgroundGrid();
|
||||||
|
document.getElementById(self.gridOption.const.HIDE_BACKGROUND_BTN_ID).style.display = 'none';
|
||||||
|
document.getElementById(self.gridOption.const.SHOW_BACKGROUND_BTN_ID).style.display = 'inline-block';
|
||||||
|
});
|
||||||
|
return btn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 显示背景按钮
|
||||||
|
* @return {*}
|
||||||
|
*/
|
||||||
|
function showBackgroundBtn() {
|
||||||
|
var btn = document.createElement('a');
|
||||||
|
btn.style.display = 'none';
|
||||||
|
self.setABtnElementAttribute(btn, self.gridOption.const.SHOW_BACKGROUND_BTN_ID, '显示背景', 'rgb(240 159 27)');
|
||||||
|
btn.addEventListener('click', function (event) {
|
||||||
|
self.showBackgroundGrid();
|
||||||
|
document.getElementById(self.gridOption.const.SHOW_BACKGROUND_BTN_ID).style.display = 'none';
|
||||||
|
document.getElementById(self.gridOption.const.HIDE_BACKGROUND_BTN_ID).style.display = 'inline-block';
|
||||||
|
});
|
||||||
|
return btn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 背景透明按钮
|
||||||
|
* @return {*}
|
||||||
|
*/
|
||||||
|
function noBackgroundColorBtn() {
|
||||||
|
var btn = document.createElement('a');
|
||||||
|
self.setABtnElementAttribute(btn, self.gridOption.const.NO_BACKGROUND_COLOR_BTN_ID, '背景透明', 'rgb(240 159 27)');
|
||||||
|
btn.addEventListener('click', function (event) {
|
||||||
|
self.noBackgroundColorGrid();
|
||||||
|
document.getElementById(self.gridOption.const.NO_BACKGROUND_COLOR_BTN_ID).style.display = 'none';
|
||||||
|
document.getElementById(self.gridOption.const.SHOW_BACKGROUND_COLOR_BTN_ID).style.display = 'inline-block';
|
||||||
|
});
|
||||||
|
return btn;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 背景取消透明按钮
|
||||||
|
* @return {*}
|
||||||
|
*/
|
||||||
|
function showBackgroundColorBtn() {
|
||||||
|
var showBackgroundBtn = document.createElement('a');
|
||||||
|
showBackgroundBtn.style.display = 'none';
|
||||||
|
self.setABtnElementAttribute(showBackgroundBtn, self.gridOption.const.SHOW_BACKGROUND_COLOR_BTN_ID, '显示背景', 'rgb(240 159 27)');
|
||||||
|
showBackgroundBtn.addEventListener('click', function (event) {
|
||||||
|
self.showBackgroundColorGrid();
|
||||||
|
document.getElementById(self.gridOption.const.SHOW_BACKGROUND_COLOR_BTN_ID).style.display = 'none';
|
||||||
|
document.getElementById(self.gridOption.const.NO_BACKGROUND_COLOR_BTN_ID).style.display = 'inline-block';
|
||||||
|
});
|
||||||
|
return showBackgroundBtn;
|
||||||
|
}
|
||||||
|
|
||||||
// 初始化按钮组
|
// 初始化按钮组
|
||||||
function initGridBarBtnGroup(gridBarBox) {
|
function initGridBarBtnGroup(gridBarBox) {
|
||||||
gridBarBox.appendChild(getStartOptionBtn());
|
gridBarBox.appendChild(getStartOptionBtn());
|
||||||
gridBarBox.appendChild(getCancelOptionBtn());
|
gridBarBox.appendChild(getCancelOptionBtn());
|
||||||
|
gridBarBox.appendChild(hideBackgroundBtn());
|
||||||
|
gridBarBox.appendChild(showBackgroundBtn());
|
||||||
|
gridBarBox.appendChild(noBackgroundColorBtn());
|
||||||
|
gridBarBox.appendChild(showBackgroundColorBtn());
|
||||||
gridBarBox.appendChild(getRelationName());
|
gridBarBox.appendChild(getRelationName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -703,8 +774,49 @@ BaiduMap.prototype.initBackgroundGrid = function (option) {
|
|||||||
});
|
});
|
||||||
label.setOffset(new BMap.Size(-backgroundGrid.label.length * self.gridOption.const.LABEL_FONT_SIZE / 2, -self.gridOption.const.LABEL_FONT_SIZE / 2));
|
label.setOffset(new BMap.Size(-backgroundGrid.label.length * self.gridOption.const.LABEL_FONT_SIZE / 2, -self.gridOption.const.LABEL_FONT_SIZE / 2));
|
||||||
label.setPosition(self.getCenterPoint(backgroundGrid.pointArray));
|
label.setPosition(self.getCenterPoint(backgroundGrid.pointArray));
|
||||||
self.labelArray.push(label);
|
|
||||||
self.map.addOverlay(label);
|
self.map.addOverlay(label);
|
||||||
|
// 缓存网格与网格名称
|
||||||
|
self.backgroundGridArray.push({
|
||||||
|
polygon: {
|
||||||
|
isShow: true,
|
||||||
|
overlay: polygon
|
||||||
|
},
|
||||||
|
label: {
|
||||||
|
isShow: true,
|
||||||
|
overlay: label
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BaiduMap.prototype.hideBackgroundGrid = function () {
|
||||||
|
var self = this;
|
||||||
|
for (var i = 0, item; item = self.backgroundGridArray[i++];) {
|
||||||
|
item.polygon.overlay.hide();
|
||||||
|
item.polygon.isShow = false;
|
||||||
|
item.label.overlay.hide();
|
||||||
|
item.label.isShow = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BaiduMap.prototype.showBackgroundGrid = function () {
|
||||||
|
var self = this;
|
||||||
|
for (var i = 0, item; item = self.backgroundGridArray[i++];) {
|
||||||
|
item.polygon.overlay.show();
|
||||||
|
item.polygon.isShow = true;
|
||||||
|
item.label.overlay.show();
|
||||||
|
item.label.isShow = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BaiduMap.prototype.noBackgroundColorGrid = function () {
|
||||||
|
var self = this;
|
||||||
|
for (var i = 0, item; item = self.backgroundGridArray[i++];) {
|
||||||
|
item.polygon.overlay.oldFillColor = item.polygon.overlay.getFillColor();
|
||||||
|
item.polygon.overlay.setFillColor('transparent');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
BaiduMap.prototype.showBackgroundColorGrid = function () {
|
||||||
|
var self = this;
|
||||||
|
for (var i = 0, item; item = self.backgroundGridArray[i++];) {
|
||||||
|
item.polygon.overlay.setFillColor(item.polygon.overlay.oldFillColor);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 设置开始标记
|
// 设置开始标记
|
||||||
@ -848,7 +960,7 @@ BaiduMap.prototype.initGridOptionEvent = function () {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 判断是否只能绘制一个网格
|
// 判断是否只能绘制一个网格
|
||||||
if(self.mapConfig.single && self.gridOption.gridArray.length > 0) {
|
if (self.mapConfig.single && self.gridOption.gridArray.length > 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// 隐藏结束编辑按钮
|
// 隐藏结束编辑按钮
|
||||||
@ -913,8 +1025,8 @@ BaiduMap.prototype.setGridArray = function (gridArray) {
|
|||||||
setPolygon(grid);
|
setPolygon(grid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BaiduMap.prototype.setBoundary = function(areaName, option, callback) {
|
BaiduMap.prototype.setBoundary = function (areaName, option, callback) {
|
||||||
if(!areaName) {
|
if (!areaName) {
|
||||||
callback ? callback() : '';
|
callback ? callback() : '';
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -924,7 +1036,7 @@ BaiduMap.prototype.setBoundary = function(areaName, option, callback) {
|
|||||||
var count = rs.boundaries.length; //行政区域的点有多少个
|
var count = rs.boundaries.length; //行政区域的点有多少个
|
||||||
if (count === 0) {
|
if (count === 0) {
|
||||||
console.log('未能获取当前输入行政区域');
|
console.log('未能获取当前输入行政区域');
|
||||||
return ;
|
return;
|
||||||
}
|
}
|
||||||
var ply = new BMap.Polygon(rs.boundaries[0], {
|
var ply = new BMap.Polygon(rs.boundaries[0], {
|
||||||
strokeColor: option && option.strokeColor ? option.strokeColor : 'black',
|
strokeColor: option && option.strokeColor ? option.strokeColor : 'black',
|
||||||
|
@ -93,6 +93,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<input type="hidden" id="userIds" name="userIds">
|
||||||
|
<input type="hidden" id="userNames" name="userNames" class="layui-input" value="" placeholder="选择人员" maxlength="255" readonly>
|
||||||
|
<!--
|
||||||
<div class="layui-form-item">
|
<div class="layui-form-item">
|
||||||
<label class="layui-form-label layui-form-label-up">添加人员</label>
|
<label class="layui-form-label layui-form-label-up">添加人员</label>
|
||||||
<div class="layui-input-block layui-input-block-down">
|
<div class="layui-input-block layui-input-block-down">
|
||||||
@ -100,6 +103,7 @@
|
|||||||
<input type="text" id="userNames" name="userNames" class="layui-input" value="" placeholder="选择人员" maxlength="255" readonly>
|
<input type="text" id="userNames" name="userNames" class="layui-input" value="" placeholder="选择人员" maxlength="255" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
-->
|
||||||
<div class="layui-form-item layui-layout-admin">
|
<div class="layui-form-item layui-layout-admin">
|
||||||
<div class="layui-input-block">
|
<div class="layui-input-block">
|
||||||
<div class="layui-footer" style="left: 0;">
|
<div class="layui-footer" style="left: 0;">
|
||||||
|
Loading…
Reference in New Issue
Block a user