|
|
@@ -12,19 +12,21 @@ |
|
|
|
<p style="color:#fff">{{item.deptName}}</p> |
|
|
|
</template> |
|
|
|
</van-nav-bar> |
|
|
|
<div style="display:flex;width:90%;margin:0 auto;"> |
|
|
|
<div :class="{activeBtn : activeBtn==1,disactiveBtn :activeBtn!=1 }" @click="activeBtn=1"><van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn1'+(activeBtn!=1?'1':'')+'.png')" /> |
|
|
|
入户核查 |
|
|
|
</div> |
|
|
|
<div :class="{activeBtn : activeBtn==2,disactiveBtn :activeBtn!=2 }" @click="activeBtn=2,getNh()"><van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn2'+(activeBtn!=2?'2':'')+'.png')" /> |
|
|
|
农户信息 |
|
|
|
</div> |
|
|
|
<div :class="{activeBtn : activeBtn==3,disactiveBtn :activeBtn!=3 }" @click="activeBtn=3,getSyqr()"> <van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn3'+(activeBtn!=3?'3':'')+'.png')" /> |
|
|
|
所有权人 |
|
|
|
</div> |
|
|
|
<div :class="{activeBtn : activeBtn==4,disactiveBtn :activeBtn!=4 }" @click="activeBtn=4,mapShow()"> |
|
|
|
<van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn4'+(activeBtn!=4?'4':'')+'.png')" /> |
|
|
|
切换地图 |
|
|
|
<div style="display:flex;width:94%;margin:0 auto;justify-content:space-between;padding: 10px 0"> |
|
|
|
<div style="display:flex;width:90%;margin:0 auto;"> |
|
|
|
<div :class="{activeBtn : activeBtn==1,disactiveBtn :activeBtn!=1 }" @click="activeBtn=1"><van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn1'+(activeBtn!=1?'1':'')+'.png')" /> |
|
|
|
入户核查 |
|
|
|
</div> |
|
|
|
<div :class="{activeBtn : activeBtn==2,disactiveBtn :activeBtn!=2 }" @click="activeBtn=2,getNh()"><van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn2'+(activeBtn!=2?'2':'')+'.png')" /> |
|
|
|
农户信息 |
|
|
|
</div> |
|
|
|
<div :class="{activeBtn : activeBtn==3,disactiveBtn :activeBtn!=3 }" @click="activeBtn=3,getSyqr()"> <van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn3'+(activeBtn!=3?'3':'')+'.png')" /> |
|
|
|
所有权人 |
|
|
|
</div> |
|
|
|
<div :class="{activeBtn : activeBtn==4,disactiveBtn :activeBtn!=4 }" @click="activeBtn=4,mapShow()"> |
|
|
|
<van-icon size="20" style="vertical-align:middle;" :name="require('../../assets/images/housesteadSurvey/btn4'+(activeBtn!=4?'4':'')+'.png')" /> |
|
|
|
切换地图 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
@@ -367,18 +369,34 @@ |
|
|
|
</van-form> |
|
|
|
</div> |
|
|
|
<div v-if="activeBtn==4"> |
|
|
|
<div id="mapWrapAll" style="width: 100%;height: 100vh"></div> |
|
|
|
<div id="mapWrapAll" style="width: 100%;height: 100vh"></div> |
|
|
|
<!--图层--> |
|
|
|
<div class="rightZoom_wrap"> |
|
|
|
<img src="../../assets/images/housesteadSurvey/tool1.png"> |
|
|
|
<div class="amplification" @click="selectionPushMap">图层</div> |
|
|
|
</div> |
|
|
|
<!--放大缩小--> |
|
|
|
<div class="mapZoom_wrap"> |
|
|
|
<div class="qtMap" @click="">全图</div> |
|
|
|
<div class="clMap" @click="">测量</div> |
|
|
|
<div class="hcMap" @click="">核查</div> |
|
|
|
<div class="htMap" @click="" id="htMapAll">绘图</div> |
|
|
|
<div class="dwMap" @click="" id="dwMapAll">定位</div> |
|
|
|
<div class="qtMap" @click=""> |
|
|
|
<img src="../../assets/images/housesteadSurvey/tool2.png"> |
|
|
|
<p>全图</p> |
|
|
|
</div> |
|
|
|
<div class="clMap" @click="" id="area"> |
|
|
|
<img src="../../assets/images/housesteadSurvey/tool3.png"> |
|
|
|
<p>测量</p> |
|
|
|
</div> |
|
|
|
<div class="hcMap" @click="zjdHc"> |
|
|
|
<img src="../../assets/images/housesteadSurvey/tool4.png"> |
|
|
|
<p>核查</p> |
|
|
|
</div> |
|
|
|
<div class="htMap" @click="" id="htMapAll"> |
|
|
|
<img src="../../assets/images/housesteadSurvey/tool5.png"> |
|
|
|
<p>绘图</p> |
|
|
|
</div> |
|
|
|
<div class="dwMap" @click="" id="dwMapAll"> |
|
|
|
<img src="../../assets/images/housesteadSurvey/tool6.png"> |
|
|
|
<p>定位</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!--列表拉取详情--> |
|
|
@@ -388,20 +406,42 @@ |
|
|
|
<div class="more_icon" @click="homesteadListShrink"></div> |
|
|
|
<div class="name">筛选列表</div> |
|
|
|
</div> |
|
|
|
<div class="noInfo_data"> |
|
|
|
<div class="checkbox"> |
|
|
|
<!-- 全选与不全选模块 --> |
|
|
|
<div class="thead-checkbox" @click="checkClick"> |
|
|
|
<input type="checkbox" class="checkall">全选 |
|
|
|
</div> |
|
|
|
<!-- 小复选框选 --> |
|
|
|
<div class="item-list-checkbox"> |
|
|
|
<div class="item-checkbox"><input type="checkbox" @click="checkClick('fsssMap')" class="checkitem">附属设施</div> |
|
|
|
<div class="item-checkbox" @click="checkClick('zrzMap')"><input type="checkbox" class="checkitem">自然幢</div> |
|
|
|
<div class="item-checkbox" @click="checkClick('zjdMap')"><input type="checkbox" class="checkitem">宅基地</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div style="padding: 10px 15px;"> |
|
|
|
<van-checkbox name="all" shape="square">全选</van-checkbox> |
|
|
|
<div style="height: 15px;"></div> |
|
|
|
<van-checkbox-group v-model="checked"> |
|
|
|
<van-checkbox name="a" shape="square" style="margin-bottom: 5px;"> |
|
|
|
<template #default> |
|
|
|
附属设施<span style="display: inline-block;background: red;height: 5px;width: 20px;vertical-align: middle;margin-left: 10px;"></span> |
|
|
|
</template> |
|
|
|
</van-checkbox> |
|
|
|
<van-checkbox name="b" shape="square" style="margin-bottom: 5px;"> |
|
|
|
<template #default> |
|
|
|
自<i style="margin-right: 0.5em;"></i>然<i style="margin-right: 0.5em;"></i>幢<span style="display: inline-block;background: red;height: 5px;width: 20px;vertical-align: middle;margin-left: 10px;"></span> |
|
|
|
</template> |
|
|
|
</van-checkbox> |
|
|
|
<van-checkbox name="b" shape="square" style="margin-bottom: 5px;"> |
|
|
|
<template #default> |
|
|
|
宅<i style="margin-right: 0.5em;"></i>基<i style="margin-right: 0.5em;"></i>地<span style="display: inline-block;background: red;height: 5px;width: 20px;vertical-align: middle;margin-left: 10px;"></span> |
|
|
|
</template> |
|
|
|
</van-checkbox> |
|
|
|
</van-checkbox-group> |
|
|
|
</div> |
|
|
|
<!-- <div class="noInfo_data">--> |
|
|
|
<!-- <div class="checkbox">--> |
|
|
|
<!-- <!– 全选与不全选模块 –>--> |
|
|
|
<!-- <div class="thead-checkbox" @click="checkClick">--> |
|
|
|
<!-- <input type="checkbox" class="checkall">全选--> |
|
|
|
<!-- </div>--> |
|
|
|
<!-- <!– 小复选框选 –>--> |
|
|
|
<!-- <div class="item-list-checkbox">--> |
|
|
|
<!-- <div class="item-checkbox"><input type="checkbox" @click="checkClick('fsssMap')" class="checkitem">附属设施</div>--> |
|
|
|
<!-- <div class="item-checkbox" @click="checkClick('zrzMap')"><input type="checkbox" class="checkitem">自然幢</div>--> |
|
|
|
<!-- <div class="item-checkbox" @click="checkClick('zjdMap')"><input type="checkbox" class="checkitem">宅基地</div>--> |
|
|
|
<!-- </div>--> |
|
|
|
<!-- </div>--> |
|
|
|
<!-- </div>--> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- <!–列表 定位–>--> |
|
|
@@ -415,53 +455,6 @@ |
|
|
|
<!-- </div>--> |
|
|
|
<!-- </div>--> |
|
|
|
<van-overlay :show="selectionIconShow" @click="homesteadListShrink" /> |
|
|
|
<!--图层--> |
|
|
|
<div class="rightZoom_wrap"> |
|
|
|
<div class="amplification" @click="selectionPushMap">图层</div> |
|
|
|
</div> |
|
|
|
<!--放大缩小--> |
|
|
|
<div class="mapZoom_wrap"> |
|
|
|
<div class="qtMap" @click="">全图</div> |
|
|
|
<div class="clMap" @click="">测量</div> |
|
|
|
<div class="hcMap" @click="">核查</div> |
|
|
|
<div class="htMap" @click="" id="htMapAll">绘图</div> |
|
|
|
<div class="dwMap" @click="" id="dwMapAll">定位</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<!--列表拉取详情--> |
|
|
|
<div class="homesteadList_wrap" v-show="homesteadListStatus"> |
|
|
|
<div class="main_m"> |
|
|
|
<div class="title_m"> |
|
|
|
<div class="more_icon" @click="homesteadListShrink"></div> |
|
|
|
<div class="name">筛选列表</div> |
|
|
|
</div> |
|
|
|
<div class="noInfo_data"> |
|
|
|
<div class="checkbox"> |
|
|
|
<!-- 全选与不全选模块 --> |
|
|
|
<div class="thead-checkbox" @click="checkClick"> |
|
|
|
<input type="checkbox" class="checkall">全选 |
|
|
|
</div> |
|
|
|
<!-- 小复选框选 --> |
|
|
|
<div class="item-list-checkbox"> |
|
|
|
<div class="item-checkbox"><input type="checkbox" @click="checkClick('fsssMap')" class="checkitem">附属设施</div> |
|
|
|
<div class="item-checkbox" @click="checkClick('zrzMap')"><input type="checkbox" class="checkitem">自然幢</div> |
|
|
|
<div class="item-checkbox" @click="checkClick('zjdMap')"><input type="checkbox" class="checkitem">宅基地</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<!-- <!–列表 定位–>--> |
|
|
|
<!-- <div class="rightIcon_wrap">--> |
|
|
|
<!-- <!– <div class="positioning_wrap">--> |
|
|
|
<!-- <div class="icon"></div>--> |
|
|
|
<!-- </div> –>--> |
|
|
|
<!-- <div class="selectionIcon_wrap" @click="selectionPush">--> |
|
|
|
<!-- <div class="icon"></div>--> |
|
|
|
<!-- <div class="text">列表</div>--> |
|
|
|
<!-- </div>--> |
|
|
|
<!-- </div>--> |
|
|
|
<van-overlay :show="selectionIconShow" @click="homesteadListShrink" /> |
|
|
|
</div> |
|
|
|
<van-popup v-model="shownh" style="height:100%;width:100%;"> |
|
|
|
<div class="bannerBg"> |
|
|
@@ -825,6 +818,8 @@ |
|
|
|
}, |
|
|
|
mapTownList: null, |
|
|
|
mapVillageList: null, |
|
|
|
coordinate:"", |
|
|
|
checked:[], |
|
|
|
//地图使用 --end |
|
|
|
}; |
|
|
|
}, |
|
|
@@ -1326,19 +1321,19 @@ |
|
|
|
style: styleYqr |
|
|
|
}); |
|
|
|
map.addLayer(hc_land); |
|
|
|
var maxXMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxX; |
|
|
|
var maxYMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxY; |
|
|
|
var minXMap = hc_land.values_.source.featuresRtree_.rbush_.data.minX; |
|
|
|
var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY; |
|
|
|
//定位查询位置 |
|
|
|
var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 |
|
|
|
map.getView().animate({ |
|
|
|
// 只设置需要的属性即可 |
|
|
|
center: center, // 中心点 |
|
|
|
zoom: 15.8, // 缩放级别 |
|
|
|
rotation: undefined, // 缩放完成view视图旋转弧度 |
|
|
|
duration: 1000, // 缩放持续时间,默认不需要设置 |
|
|
|
}); |
|
|
|
// var maxXMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxX; |
|
|
|
// var maxYMap = hc_land.values_.source.featuresRtree_.rbush_.data.maxY; |
|
|
|
// var minXMap = hc_land.values_.source.featuresRtree_.rbush_.data.minX; |
|
|
|
// var minYMap = hc_land.values_.source.featuresRtree_.rbush_.data.minY; |
|
|
|
// //定位查询位置 |
|
|
|
// var center = ol.extent.getCenter([maxXMap, maxYMap, minXMap, minYMap]); //获取边界区域的中心位置 |
|
|
|
// map.getView().animate({ |
|
|
|
// // 只设置需要的属性即可 |
|
|
|
// center: center, // 中心点 |
|
|
|
// zoom: 15.8, // 缩放级别 |
|
|
|
// rotation: undefined, // 缩放完成view视图旋转弧度 |
|
|
|
// duration: 1000, // 缩放持续时间,默认不需要设置 |
|
|
|
// }); |
|
|
|
//自然幢定位开始 ---------start |
|
|
|
getZrzZjdDmList(this.mapTheGeomZjdId[i].zjddm).then((response) => { |
|
|
|
if (response.code == 200) { |
|
|
@@ -1447,12 +1442,51 @@ |
|
|
|
} |
|
|
|
//宅基地定位结束 ---------end |
|
|
|
|
|
|
|
|
|
|
|
//地图操作定义------------start |
|
|
|
//定位定义------------start |
|
|
|
var Zb; |
|
|
|
var latitude; |
|
|
|
var longitude; |
|
|
|
var vector_drawing; |
|
|
|
//定位定义------------end |
|
|
|
|
|
|
|
//绘图定义---------------start |
|
|
|
var drawing; |
|
|
|
var draw_map; |
|
|
|
//绘图定义---------------end |
|
|
|
|
|
|
|
//测面绘图定义------------start |
|
|
|
var draw_cm; |
|
|
|
//定义矢量图层 |
|
|
|
var vector; |
|
|
|
//创建一个帮助提示信息对象 |
|
|
|
var helpTooltip; |
|
|
|
//创建一个测量提示信息对象 |
|
|
|
var measureTooltip; |
|
|
|
//创建一个帮助提示框对象 |
|
|
|
var helpTooltipElement; |
|
|
|
//测出距离 |
|
|
|
var measureTooltipElement; |
|
|
|
//测面绘图定义-----------end |
|
|
|
|
|
|
|
//地图操作定义------------end |
|
|
|
//定位当前位置 ------start |
|
|
|
$("#dwMapAll").on("click", function () { |
|
|
|
var Zb; |
|
|
|
var latitude; |
|
|
|
var longitude; |
|
|
|
var vector_drawing; |
|
|
|
console.log("进入定位图层") |
|
|
|
//删除测量记录操作--------start |
|
|
|
//将矢量图层从图中删除 |
|
|
|
//map.removeLayer(helpTooltip); |
|
|
|
map.removeLayer(vector); |
|
|
|
map.removeInteraction(draw_cm); |
|
|
|
//map.removeOverlay(helpTooltipElement); |
|
|
|
//map.removeLayer(measureTooltip); |
|
|
|
//删除测量记录操作--------end |
|
|
|
//删除绘制图层画图操作-------start |
|
|
|
map.removeInteraction(draw_map); |
|
|
|
map.removeLayer(drawing); |
|
|
|
//删除绘制图层画图操作-------end |
|
|
|
|
|
|
|
//开始定位当前位置 |
|
|
|
navigator.geolocation.getCurrentPosition(function(position) { |
|
|
|
latitude = position.coords.latitude;// 获取纬度 |
|
|
@@ -1515,12 +1549,21 @@ |
|
|
|
}); |
|
|
|
}); |
|
|
|
//定位当前位置 ------end |
|
|
|
var drawing; |
|
|
|
var draw; |
|
|
|
|
|
|
|
//开始绘制图层- -----start |
|
|
|
$("#htMapAll").on("click", function () { |
|
|
|
//that.closeMoule = null; |
|
|
|
map.removeInteraction(draw); |
|
|
|
console.log("进入绘制图层") |
|
|
|
//删除之前 测距操作添加map中的绘图 --------start |
|
|
|
//map.removeLayer(helpTooltip); |
|
|
|
map.removeLayer(vector); |
|
|
|
map.removeInteraction(draw_cm); |
|
|
|
//map.removeOverlay(helpTooltipElement); |
|
|
|
map.removeLayer(measureTooltipElement); |
|
|
|
//删除之前 测距操作添加map中的绘图 --------end |
|
|
|
|
|
|
|
//删除之前画图图层,重新绘制图层 |
|
|
|
map.removeInteraction(draw_map); |
|
|
|
map.removeLayer(drawing); |
|
|
|
//var source = new ol.source.Vector({wrapX: false}); |
|
|
|
drawing = new ol.layer.Vector({ |
|
|
|
source: new ol.source.Vector(), |
|
|
@@ -1528,22 +1571,318 @@ |
|
|
|
map.addLayer(drawing); |
|
|
|
|
|
|
|
function addInteraction() { |
|
|
|
draw = new ol.interaction.Draw({ |
|
|
|
draw_map = new ol.interaction.Draw({ |
|
|
|
source: drawing.getSource(), |
|
|
|
type: "Polygon" |
|
|
|
type: "Polygon", |
|
|
|
}); |
|
|
|
draw.on('drawend', function (evt) { |
|
|
|
draw_map.on("drawend", function (evt) { |
|
|
|
var feature = evt.feature; |
|
|
|
var geometry = feature.getGeometry(); |
|
|
|
var coordinate = geometry.getCoordinates(); |
|
|
|
that.closeMoule = coordinate; |
|
|
|
that.coordinate = geometry.getCoordinates(); |
|
|
|
//_this.coordinateList = coordinate.toString(); |
|
|
|
//提示当前坐标是否绘制完成 |
|
|
|
if(that.coordinate != "" && that.coordinate !=null) { |
|
|
|
htMapAllFu(); |
|
|
|
}else { |
|
|
|
console.log("6"); |
|
|
|
$("#htMapAll").trigger("click"); |
|
|
|
} |
|
|
|
}); |
|
|
|
map.addInteraction(draw); |
|
|
|
map.addInteraction(draw_map); |
|
|
|
} |
|
|
|
|
|
|
|
function htMapAllFu() { |
|
|
|
//that.drawMapPolygonFun(); |
|
|
|
//绘制多边形地图 |
|
|
|
that.$dialog |
|
|
|
.confirm({ |
|
|
|
title: "提示", |
|
|
|
message: "是否重新绘制画图", |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
//$("#drawRemove").trigger("click"); |
|
|
|
map.removeLayer(drawing); |
|
|
|
that.coordinate = ""; |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
//删除画图点 |
|
|
|
map.removeInteraction(draw_map); |
|
|
|
}); |
|
|
|
} |
|
|
|
|
|
|
|
addInteraction(); |
|
|
|
}); |
|
|
|
//开始绘制图层- -----end |
|
|
|
|
|
|
|
//清除画图鼠标点击事件 |
|
|
|
// $("#drawRemove").click(function () { |
|
|
|
// map.removeLayer(drawing); |
|
|
|
// }); |
|
|
|
// |
|
|
|
|
|
|
|
//获取类型开始 侧面-----------------------------------------------------------------start |
|
|
|
$("#area").click(function () { |
|
|
|
console.log("进入测面") |
|
|
|
//删除绘制图层画图操作-------start |
|
|
|
map.removeInteraction(draw_map); |
|
|
|
map.removeLayer(drawing); |
|
|
|
//删除绘制图层画图操作-------end |
|
|
|
//开始绘制 测面--------------------------------------------------------------start |
|
|
|
//定义矢量数据源 |
|
|
|
var source = new ol.source.Vector(); |
|
|
|
|
|
|
|
vector = new ol.layer.Vector({ |
|
|
|
source: source, |
|
|
|
style: new ol.style.Style({ |
|
|
|
fill: new ol.style.Fill({ |
|
|
|
color: "rgba(255,255,255,0.2)", |
|
|
|
}), |
|
|
|
stroke: new ol.style.Stroke({ |
|
|
|
color: "#e21e0a", |
|
|
|
width: 2, |
|
|
|
}), |
|
|
|
//image: new ol.style.Circle({ |
|
|
|
// radius: 7, |
|
|
|
// fill: new ol.style.Fill({ |
|
|
|
// color:'#ffcc33' |
|
|
|
// }) |
|
|
|
//}) |
|
|
|
}), |
|
|
|
}); |
|
|
|
|
|
|
|
//将矢量图层添加到地图中 线的颜色加入map中 |
|
|
|
map.addLayer(vector); |
|
|
|
|
|
|
|
var sketch; |
|
|
|
|
|
|
|
var continuePolygonMsg = "单击以继续绘制多边形"; |
|
|
|
|
|
|
|
/** |
|
|
|
* Message to show when the user is drawing a line. |
|
|
|
* @type {string} |
|
|
|
*/ |
|
|
|
//var continueLineMsg = '单击继续绘制直线'; |
|
|
|
|
|
|
|
//鼠标移动触发的函数 |
|
|
|
var pointerMoveHandler = function (evt) { |
|
|
|
//Indicates if the map is currently being dragged. |
|
|
|
//Only set for POINTERDRAG and POINTERMOVE events. Default is false. |
|
|
|
//如果是平移地图则直接结束 |
|
|
|
if (evt.dragging) { |
|
|
|
return; |
|
|
|
} |
|
|
|
//帮助提示信息 |
|
|
|
var helpMsg = "单击开始绘图"; |
|
|
|
|
|
|
|
if (sketch) { |
|
|
|
//Get the feature's default geometry. |
|
|
|
//A feature may have any number of named geometries. |
|
|
|
//获取绘图对象的几何要素 |
|
|
|
var geom = sketch.getGeometry(); |
|
|
|
//如果当前绘制的几何要素是多边形,则将绘制提示信息设置为多边形绘制提示信息 |
|
|
|
//如果当前绘制的几何要素是多线段,则将绘制提示信息设置为多线段绘制提示信息 |
|
|
|
helpMsg = continuePolygonMsg; |
|
|
|
} |
|
|
|
//设置帮助提示要素的内标签为帮助提示信息 |
|
|
|
helpTooltipElement.innerHTML = helpMsg; |
|
|
|
//设置帮助提示信息的位置 |
|
|
|
//The coordinate in view projection corresponding to the original browser event. |
|
|
|
helpTooltip.setPosition(evt.coordinate); |
|
|
|
//移除帮助提示要素的隐藏样式 |
|
|
|
$(helpTooltipElement).removeClass("hidden"); |
|
|
|
}; |
|
|
|
|
|
|
|
map.on("pointermove", pointerMoveHandler); |
|
|
|
|
|
|
|
map.getViewport().addEventListener("mouseout", function () { |
|
|
|
helpTooltipElement.classList.add("hidden"); |
|
|
|
}); |
|
|
|
|
|
|
|
//添加交互式绘图对象的函数 |
|
|
|
function addInteraction() { |
|
|
|
// 获取当前选择的绘制类型 |
|
|
|
//var type = typeSelect.value == 'length' ? 'Polygon' : 'LineString'; |
|
|
|
//创建一个交互式绘图对象 |
|
|
|
var type = "Polygon"; |
|
|
|
draw_cm = new ol.interaction.Draw({ |
|
|
|
//绘制的数据源 |
|
|
|
source: source, |
|
|
|
//绘制类型 |
|
|
|
type: type, |
|
|
|
//样式 |
|
|
|
style: new ol.style.Style({ |
|
|
|
fill: new ol.style.Fill({ |
|
|
|
color: "rgba(255,255,255,0.2)", |
|
|
|
}), |
|
|
|
stroke: new ol.style.Stroke({ |
|
|
|
color: "rgba(0,0,0,0.5)", |
|
|
|
lineDash: [10, 10], |
|
|
|
width: 2, |
|
|
|
}), |
|
|
|
// image: new ol.style.Circle({ |
|
|
|
// radius: 5, |
|
|
|
// stroke: new ol.style.Stroke({ |
|
|
|
// color:'rgba(0,0,0,0.7)' |
|
|
|
// }), |
|
|
|
// fill: new ol.style.Fill({ |
|
|
|
//color: 'rgba(255,255,255,0.2)' |
|
|
|
// }) |
|
|
|
//}) |
|
|
|
}), |
|
|
|
}); |
|
|
|
//将交互绘图对象添加到地图中 |
|
|
|
map.addInteraction(draw_cm); |
|
|
|
|
|
|
|
//创建测量提示框 |
|
|
|
createMeasureTooltip(); |
|
|
|
//创建帮助提示框 |
|
|
|
createHelpTooltip(); |
|
|
|
|
|
|
|
//定义一个事件监听 |
|
|
|
var listener; |
|
|
|
//定义一个控制鼠标点击次数的变量 |
|
|
|
var count = 0; |
|
|
|
//绘制开始事件 |
|
|
|
draw_cm.on( |
|
|
|
"drawstart", |
|
|
|
function (evt) { |
|
|
|
//The feature being drawn. |
|
|
|
sketch = evt.feature; |
|
|
|
//提示框的坐标 |
|
|
|
var tooltipCoord = evt.coordinate; |
|
|
|
//监听几何要素的change事件 |
|
|
|
//Increases the revision counter and dispatches a 'change' event. |
|
|
|
|
|
|
|
listener = sketch.getGeometry().on("change", function (evt) { |
|
|
|
//The event target. |
|
|
|
//获取绘制的几何对象 |
|
|
|
var geom = evt.target; |
|
|
|
//定义一个输出对象,用于记录面积和长度 |
|
|
|
var output; |
|
|
|
map.removeEventListener("singleclick"); |
|
|
|
map.removeEventListener("dblclick"); |
|
|
|
//输出多边形的面积 |
|
|
|
output = formatArea(geom); |
|
|
|
//Return an interior point of the polygon. |
|
|
|
//获取多变形内部点的坐标 |
|
|
|
tooltipCoord = geom.getInteriorPoint().getCoordinates(); |
|
|
|
|
|
|
|
//设置测量提示框的内标签为最终输出结果 |
|
|
|
measureTooltipElement.innerHTML = output; |
|
|
|
//设置测量提示信息的位置坐标 |
|
|
|
measureTooltip.setPosition(tooltipCoord); |
|
|
|
}); |
|
|
|
|
|
|
|
//地图单击事件 |
|
|
|
map.on("singleclick", function (evt) { |
|
|
|
//设置测量提示信息的位置坐标,用来确定鼠标点击后测量提示框的位置 |
|
|
|
measureTooltip.setPosition(evt.coordinate); |
|
|
|
//如果是第一次点击,则设置测量提示框的文本内容为起点 |
|
|
|
if (count == 0) { |
|
|
|
measureTooltipElement.innerHTML = "起点"; |
|
|
|
} |
|
|
|
//根据鼠标点击位置生成一个点 |
|
|
|
var point = new ol.geom.Point(evt.coordinate); |
|
|
|
//将该点要素添加到矢量数据源中 |
|
|
|
source.addFeature(new ol.Feature(point)); |
|
|
|
//更改测量提示框的样式,使测量提示框可见 |
|
|
|
measureTooltipElement.className = "tooltip tooltip-static"; |
|
|
|
//创建测量提示框 |
|
|
|
createMeasureTooltip(); |
|
|
|
//点击次数增加 |
|
|
|
count++; |
|
|
|
}); |
|
|
|
|
|
|
|
//地图双击事件 |
|
|
|
map.on("dblclick", function (evt) { |
|
|
|
//根据 |
|
|
|
var point = new ol.geom.Point(evt.coordinate); |
|
|
|
source.addFeature(new ol.Feature(point)); |
|
|
|
}); |
|
|
|
}, |
|
|
|
this |
|
|
|
); |
|
|
|
//绘制结束事件 |
|
|
|
draw_cm.on( |
|
|
|
"drawend", |
|
|
|
function (evt) { |
|
|
|
count = 0; |
|
|
|
//设置测量提示框的样式 |
|
|
|
measureTooltipElement.className = "tooltip tooltip-static"; |
|
|
|
//Set the offset for this overlay. |
|
|
|
//设置偏移量 |
|
|
|
measureTooltip.setOffset([0, -7]); |
|
|
|
//清空绘制要素 |
|
|
|
sketch = null; |
|
|
|
//清空测量提示要素 |
|
|
|
measureTooltipElement = null; |
|
|
|
//创建测量提示框 |
|
|
|
createMeasureTooltip(); |
|
|
|
//Removes an event listener using the key returned by on() or once(). |
|
|
|
//移除事件监听 |
|
|
|
ol.Observable.unByKey(listener); |
|
|
|
//移除地图单击事件 |
|
|
|
map.removeEventListener("singleclick"); |
|
|
|
}, |
|
|
|
this |
|
|
|
); |
|
|
|
} |
|
|
|
/** |
|
|
|
* Creates a new help tooltip |
|
|
|
*/ |
|
|
|
function createHelpTooltip() { |
|
|
|
if (helpTooltipElement) { |
|
|
|
helpTooltipElement.parentNode.removeChild(helpTooltipElement); |
|
|
|
} |
|
|
|
helpTooltipElement = document.createElement("div"); |
|
|
|
helpTooltipElement.className = "ol-tooltip hidden"; |
|
|
|
helpTooltip = new ol.Overlay({ |
|
|
|
element: helpTooltipElement, |
|
|
|
offset: [15, 0], |
|
|
|
positioning: "center-left", |
|
|
|
}); |
|
|
|
map.addOverlay(helpTooltip); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* Creates a new measure tooltip |
|
|
|
*/ |
|
|
|
function createMeasureTooltip() { |
|
|
|
if (measureTooltipElement) { |
|
|
|
measureTooltipElement.parentNode.removeChild(measureTooltipElement); |
|
|
|
} |
|
|
|
measureTooltipElement = document.createElement("div"); |
|
|
|
measureTooltipElement.className = "ol-tooltip ol-tooltip-measure"; |
|
|
|
measureTooltip = new ol.Overlay({ |
|
|
|
element: measureTooltipElement, |
|
|
|
offset: [0, -15], |
|
|
|
positioning: "bottom-center", |
|
|
|
}); |
|
|
|
map.addOverlay(measureTooltip); |
|
|
|
} |
|
|
|
|
|
|
|
//格式化测量面积 |
|
|
|
var formatArea = function (polygon) { |
|
|
|
//定义面积变量 |
|
|
|
var area; |
|
|
|
//获取平面面积 |
|
|
|
area = polygon.getArea(); |
|
|
|
//定义输出变量 |
|
|
|
var output; |
|
|
|
//当面积大于10000时,转换为平方千米,否则为平方米 |
|
|
|
if (area > 10000) { |
|
|
|
output = |
|
|
|
Math.round((area / 1000000) * 100) / 100 + " " + "km<sup>2</sup>"; |
|
|
|
} else { |
|
|
|
output = Math.round(area * 100) / 100 + " " + "m<sup>2</sup>"; |
|
|
|
} |
|
|
|
return output; |
|
|
|
}; |
|
|
|
|
|
|
|
addInteraction(); |
|
|
|
}); |
|
|
|
//侧面结束-----------------------------------------------------------------end |
|
|
|
|
|
|
|
//点击查询详细信息 |
|
|
|
map.on("singleclick", function (evt) { |
|
|
|
let feature = map.forEachFeatureAtPixel( |
|
|
@@ -1551,7 +1890,7 @@ |
|
|
|
(feature) => feature |
|
|
|
); |
|
|
|
if(feature) { |
|
|
|
document.getElementById("info").innerHTML = ""; |
|
|
|
//document.getElementById("info").innerHTML = ""; |
|
|
|
that.mapHaDataValue = true; |
|
|
|
var ifConsole = feature.values_.createBy; |
|
|
|
if (ifConsole =="mapTheGeomFsssId") { |
|
|
@@ -1879,6 +2218,7 @@ |
|
|
|
} |
|
|
|
}); |
|
|
|
that.mapZjdData = obj; |
|
|
|
that.zjdHcDy = obj.zjddm; |
|
|
|
} else { |
|
|
|
that.mapHaDataValue = false; |
|
|
|
} |
|
|
@@ -1959,31 +2299,7 @@ |
|
|
|
}, |
|
|
|
//绘制多边形地图 |
|
|
|
drawMapPolygonFun() { |
|
|
|
let drawMapPolygon = this.draw.drawMapPolygon; |
|
|
|
if (drawMapPolygon == false) { |
|
|
|
if (this.coordinateList == "") { |
|
|
|
this.$set(this.draw, "drawMapPolygon", true); |
|
|
|
$("#drawPolygon").trigger("click"); |
|
|
|
} else { |
|
|
|
this.$dialog |
|
|
|
.confirm({ |
|
|
|
title: "提示", |
|
|
|
message: "是否重新绘制画图", |
|
|
|
}) |
|
|
|
.then(() => { |
|
|
|
// on confirm |
|
|
|
this.coordinateList = ""; |
|
|
|
this.$set(this.draw, "drawMapPolygon", true); |
|
|
|
$("#drawPolygon").trigger("click"); |
|
|
|
}) |
|
|
|
.catch(() => { |
|
|
|
// on cancel |
|
|
|
}); |
|
|
|
} |
|
|
|
} else { |
|
|
|
$("#drawRemove").trigger("click"); |
|
|
|
this.$set(this.draw, "drawMapPolygon", false); |
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
guidProduct(){ |
|
|
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { |
|
|
@@ -1992,27 +2308,57 @@ |
|
|
|
return v.toString(16); |
|
|
|
}); |
|
|
|
}, |
|
|
|
//宅基地点击地图核查 |
|
|
|
zjdHc(){ |
|
|
|
//console.log(this.zjdHcDy); |
|
|
|
if(this.zjdHcDy != ""){ |
|
|
|
this.$router.push('/homesteadSurvey/add'); |
|
|
|
} else { |
|
|
|
this.$dialog.alert({ |
|
|
|
title: '宅基地核查', |
|
|
|
message: "请从地图选择宅基地并点击核查", |
|
|
|
theme: 'round-button', |
|
|
|
}).then(() => { |
|
|
|
// on close |
|
|
|
}); |
|
|
|
} |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
|
<style scoped lang="scss"> |
|
|
|
|
|
|
|
.bannerBg{ |
|
|
|
width: 100%; |
|
|
|
color:#fff; |
|
|
|
padding:10px; |
|
|
|
/*padding:10px;*/ |
|
|
|
background: linear-gradient(134deg,#7ac943 1%, #22b7f2); |
|
|
|
|
|
|
|
} |
|
|
|
.van-hairline--bottom::after { |
|
|
|
border-bottom-width: 0; |
|
|
|
} |
|
|
|
.activeBtn{ |
|
|
|
flex:1;background:#fff;height:50px;border-radius:25px;margin:10px;color:#7AC943;line-height:50px;text-align:center;font-size:20px;box-shadow: 0px 5px 6px 0px rgba(0,0,0,0.16); |
|
|
|
background:#fff; |
|
|
|
height:50px; |
|
|
|
border-radius:25px; |
|
|
|
color:#7AC943; |
|
|
|
line-height:50px; |
|
|
|
text-align:center; |
|
|
|
font-size:20px; |
|
|
|
width: 24%; |
|
|
|
box-shadow: 0px 5px 6px 0px rgba(0,0,0,0.16); |
|
|
|
} |
|
|
|
.disactiveBtn{ |
|
|
|
flex:1;background:rgba(255,255,255,.4);height:50px;border-radius:25px;margin:10px;color:#fff;line-height:50px;text-align:center;font-size:20px;box-shadow: 0px 5px 6px 0px rgba(0,0,0,0.16); |
|
|
|
background:rgba(255,255,255,.4); |
|
|
|
height:50px; |
|
|
|
border-radius:25px; |
|
|
|
color:#fff; |
|
|
|
line-height:50px; |
|
|
|
text-align:center; |
|
|
|
font-size:20px; |
|
|
|
width: 24%; |
|
|
|
box-shadow: 0px 5px 6px 0px rgba(0,0,0,0.16); |
|
|
|
} |
|
|
|
.van-cell__label{ |
|
|
|
color: #969799; |
|
|
@@ -2034,74 +2380,71 @@ |
|
|
|
} |
|
|
|
.rightZoom_wrap { |
|
|
|
position: absolute; |
|
|
|
right: 16px; |
|
|
|
right: 3%; |
|
|
|
top: 35%; |
|
|
|
width: 66px; |
|
|
|
margin-top: -200px; |
|
|
|
background: #fff; |
|
|
|
margin-bottom: 16px; |
|
|
|
border-radius: 10px; |
|
|
|
height: 60px; |
|
|
|
.amplification { |
|
|
|
height: 50px; |
|
|
|
width: 74px; |
|
|
|
text-align: center; |
|
|
|
padding: 15px 20px; |
|
|
|
img{ |
|
|
|
margin: 0 auto; |
|
|
|
} |
|
|
|
.amplification { |
|
|
|
background: url("../../assets/images/housesteadSurvey/tool1.png") center center no-repeat; |
|
|
|
line-height: 1; |
|
|
|
font-size: 18px; |
|
|
|
padding-top: 35px; |
|
|
|
text-align: center; |
|
|
|
margin-top: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
.mapZoom_wrap { |
|
|
|
position: absolute; |
|
|
|
right: 16px; |
|
|
|
right: 3%; |
|
|
|
top: 50%; |
|
|
|
width: 66px; |
|
|
|
margin-top: -200px; |
|
|
|
background: #fff; |
|
|
|
margin-bottom: 16px; |
|
|
|
border-radius: 10px; |
|
|
|
height: 300px; |
|
|
|
|
|
|
|
.qtMap { |
|
|
|
height: 50px; |
|
|
|
width: 74px; |
|
|
|
padding: 0px 20px; |
|
|
|
div{ |
|
|
|
padding: 15px 0; |
|
|
|
border-bottom: 1px solid #C9C9C9; |
|
|
|
&:last-child{ |
|
|
|
border: none; |
|
|
|
} |
|
|
|
p{ |
|
|
|
margin-top: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.qtMap { |
|
|
|
background: url("../../assets/images/housesteadSurvey/tool2.png") center center no-repeat; |
|
|
|
font-size: 18px; |
|
|
|
padding-top: 35px; |
|
|
|
text-align: center; |
|
|
|
line-height: 1; |
|
|
|
} |
|
|
|
|
|
|
|
.clMap { |
|
|
|
background: url("../../assets/images/housesteadSurvey/tool3.png") center center no-repeat; |
|
|
|
font-size: 18px; |
|
|
|
padding-top: 35px; |
|
|
|
text-align: center; |
|
|
|
line-height: 1; |
|
|
|
} |
|
|
|
|
|
|
|
.hcMap { |
|
|
|
background: url("../../assets/images/housesteadSurvey/tool4.png") center center no-repeat; |
|
|
|
font-size: 18px; |
|
|
|
padding-top: 35px; |
|
|
|
text-align: center; |
|
|
|
line-height: 1; |
|
|
|
} |
|
|
|
|
|
|
|
.htMap { |
|
|
|
background: url("../../assets/images/housesteadSurvey/tool5.png") center center no-repeat; |
|
|
|
font-size: 18px; |
|
|
|
padding-top: 35px; |
|
|
|
text-align: center; |
|
|
|
line-height: 1; |
|
|
|
} |
|
|
|
|
|
|
|
.dwMap { |
|
|
|
background: url("../../assets/images/housesteadSurvey/tool6.png") center center no-repeat; |
|
|
|
font-size: 18px; |
|
|
|
padding-top: 35px; |
|
|
|
text-align: center; |
|
|
|
line-height: 1; |
|
|
|
} |
|
|
|
} |
|
|
|
.rightIcon_wrap { |
|
|
|