123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- import Layer from 'ol/layer/Vector'
- import Source from 'ol/source/Vector'
- import Select from 'ol/interaction/Select.js';
- import {singleClick} from 'ol/events/condition'
- import * as olEvents from 'ol/events';
- import config from "@/api/config.js"
- import * as KMap from '@/utils/ol-map/KMap';
- import Style from "ol/style/Style";
- import Photo from "ol-ext/style/Photo";
- import {base_img_url2} from "../../api/config";
- import Stroke from "ol/style/Stroke";
- import * as util from "@/common/ol_common.js"
- import {newAreaFeature, newAreaPoint, newPolymerFeature, newPoint} from "../zhgl/map";
- /**
- * @description 智能巡园地图层对象
- */
- class AllotNsMap {
- constructor(){
- let that = this
- this.vectorStyle = new KMap.VectorStyle()
- let pointSimpleStyle = this.vectorStyle.getPointSimpleStyle(8,"#999999","#d5d5d0","1")
- this.areaLayer = new KMap.VectorLayer("areaLayer",999,{style:(f)=> that.vectorStyle.getPolygonStyle("#ffffff10", "#ffffff",3)})
- this.areaPointLayer = new KMap.VectorLayer("areaPointLayer",1002,{style:(f)=> that.vectorStyle.getPointTextStyle(f.get("name"), "#120046","#FFFFFF",2, 30)})
- this.treeLayer = new KMap.VectorLayer("treeLayer",1001,{style:pointSimpleStyle})
- this.treeFeatures = []
- }
- initMap(location, target) {
- let level = 18
- let coordinate = util.wktCastGeom(location).getFirstCoordinate()
- this.kmap = new KMap.Map(target,level,coordinate[0], coordinate[1],null,10,22);
- let xyz = config.base_img_url + 'map/lby/{z}/{x}/{y}.png';
- this.kmap.addXYZLayer(xyz,{minZoom:15,maxZoom:22});
- let xyz2 = config.base_img_url3 + 'map/lby/{z}/{x}/{y}.png';
- this.kmap.addXYZLayer(xyz2,{minZoom:12,maxZoom:22});
- this.kmap.addLayer(this.areaLayer.layer)
- this.kmap.addLayer(this.treeLayer.layer)
- this.kmap.addLayer(this.areaPointLayer.layer)
- }
- initArea(organId, callback){
- let that = this
- this.areaLayer.refresh()
- VE_API.area.list({organId}).then(({data,code})=>{
- for(let item of data){
- that.areaLayer.addFeature(newAreaFeature(item))
- that.areaPointLayer.addFeature(newAreaPoint(item))
- }
- callback && callback()
- })
- }
- initTree(organId, callback){
- let that = this
- this.treeLayer.refresh()
- that.treeFeatures = []
- VE_API.tree.treeList({organId,areaId:-1}).then(({data,code})=>{
- for(let item of data){
- let point = newPoint(item);
- that.treeFeatures.push(point)
- that.treeLayer.addFeature(point)
- }
- callback && callback()
- })
- }
- addToggleTreeSelect(listener){
- let that = this
- let selectStyle = this.vectorStyle.getPointSimpleStyle(8,"#cc3f2e","#e18b7c","2")
- this.treeLayer.addToggleSelect(function({deselected,selected, preventDefault}){
- if(selected.length > 0){
- listener && listener(selected[0],deselected[0])
- }
- preventDefault()
- },this.kmap.map, selectStyle)
- that.treeLayer.toggleSelect.setActive(false)
- }
- addToggleAreaSelect(listener){
- let that = this
- this.areaLayer.addToggleSelect(function({deselected,selected,preventDefault}){
- if(selected.length > 0){
- that.treeLayer.source.forEachFeature((f)=>{
- if(f.get("areaId") == selected[0].get("id")){
- that.treeLayer.toggleSelect.getFeatures().remove(f)
- }
- })
- that.treeLayer.source.forEachFeature((f)=>{
- if(f.get("areaId") == selected[0].get("id")){
- that.treeLayer.toggleSelect.getFeatures().push(f)
- }
- })
- }
- if(deselected.length > 0){
- that.treeLayer.source.forEachFeature((f)=>{
- if(f.get("areaId") == deselected[0].get("id")){
- that.treeLayer.toggleSelect.getFeatures().remove(f)
- }
- })
- }
- listener && listener(selected[0],deselected[0])
- preventDefault()
- },this.kmap.map)
- that.areaLayer.toggleSelect.setActive(false)
- }
- setTreeStyle(style){
- this.treeLayer.layer.setStyle(style)
- this.treeLayer.layer.changed()
- }
- fit(geomOrExtent){
- this.kmap.fit(geomOrExtent)
- }
- }
- export default AllotNsMap
|