当前位置: 首页 > news >正文

operlayers绘制点,线,面,以及其他基本操作

绘制点

let coordinate = [lon,lat]
// 点
let point = new ol.Feature({geometry: new ol.geom.Point(coordinate),
})
// 样式
let style = new ol.style.Style({// 边线颜色stroke: new ol.style.Stroke({color: '#ffcc33',width: 2,}),// 字体样式text: new ol.style.Text({font: '12px 宋体',text: '测试',offsetY: -10,offsetX: 0,fill: new ol.style.Fill({ color: '#ff002f' }),}),})
point.setStyle(style)
// targetManger是图层的矢量图层
targetManger.getSource().addFeature(point)

targetManger是图层创建的矢量图层,创建方式看:初始化地图

绘制线

let coordinates = [[lon,lat],[lon,lat],[lon,lat]]
// 线
let line = new ol.Feature({type: 'LineString',geometry: new ol.geom.LineString(coordinates),name: "LineString",id:"LineString_id"
})
let lineStyle = new ol.style.Style({stroke: new ol.style.Stroke({width: 3,gradient: true,color: '#5f63d5',lineCap: 'round',lineJoin: 'square',}),
})
line.setStyle(lineStyle)
// 将绘制的图层添加到图层中
targetManger.getSource().addFeature(line)

绘制面

let coordinates = [[lon,lat],[lon,lat],[lon,lat]]
// 面
let polygon = new ol.Feature({geometry:new ol.geom.Polygon(coordinates)
})
// 给图形添加id
polygon.setId('polygon');
// 样式
let style = let style = new ol.style.Style({//边线颜色stroke: new ol.style.Stroke({color: '#0037ff',width: 2,}),image: new ol.style.Circle({radius: 6,fill: new ol.style.Fill({color: '#00b8ff',}),}),// 填充,绘制多边形时用到的fill:new ol.style.Fill({color:"rgba(0,0,0,0.5)"}),
})
polygon.setStyle(style);
targetManger.getSource().addFeature(polygon)

地图中心点平移

/*** 平移地图* @param lon 经度* @param lat 维度*/
const moveTo = (lon: any, lat: any,zoom?:number) => {mapManger.getView().animate({center: [lon, lat],zoom: zoom || 4,})
}

清空图层所有内容

// 情况layer图层的所有内容
const clearLayer = ()=>{targetManger.getSource().clear();
}

根据id查找地图对象

// 通过id来查找 targetManger 图层上的点
const getPointById = (id)=>{return targetManger.getSource()?.getFeatureById(id)
}

删除对象

注意:feature必须是地图的对象,不可以是id等其他形式的数据

const clearFeatur = (feature)=>{Mangerlayer.getSource().removeFeature(feature)
}

基本的样式

new ol.style.Style({//填充色fill: new ol.style.Fill({color: 'rgba(255, 255, 255, 0.2)',}),//边线颜色stroke: new ol.style.Stroke({color: '#ffcc33',width: 2,}),//形状image: new ol.style.Circle({radius: 6,fill: new ol.style.Fill({color: '#ff002f',}),}),text: new ol.style.Text({//位置textAlign: 'top',//基准线// textBaseline: 'middle',//文字样式font: '20px 宋体',//文本内容text: feature.get('name'), //通过设置的fature的name属性获取,也可以通过参数获取设置,此处接收 字符串 对象//文本填充样式(即文字颜色),红色fill: new ol.style.Fill({ color: '#ff002f' }),//描边颜色,蓝色stroke: new ol.style.Stroke({ color: '#0022ff', width: 1 }),offsetX: 10,offsetY: -20.5,}),
})

地图的点击和移动事件

mapManger.on('singleclick', (e:any)=>{console.log("地图单击事件")
})
mapManger.on('click', (e:any)=>{console.log("地图点击事件")
})
mapManger.on('dblclick', (e:any)=>{console.log("地图双击事件")
})
mapManger.on('pointermove', (e:any)=>{console.log("鼠标在地图上的移动事件")
})
mapManger.on('pointerdrag', (e:any)=>{console.log("鼠标在地图上的拖拽事件")
})
mapManger.on('movestart', (e:any)=>{console.log("地图开始移动时触发")
})
mapManger.on('moveend', (e:any)=>{console.log("地图结束移动时触发")
})
mapManger.on('movestart', (e:any)=>{console.log("地图开始移动时触发")
})
mapManger.on('movestart', (e:any)=>{console.log("地图开始移动时触发")
})
mapManger.on('movestart', (e:any)=>{console.log("地图开始移动时触发")
})

地图上的change监听事件

mapManger.on('change:view',(e:any)=>{console.log('地图视图对象(如中心点、缩放级别等)发生变化时触发')
})
mapManger.on('change:layerGroup',(e:any)=>{console.log('地图图层组发生变化时触发,如添加、删除或重新排序图层。')
})
mapManger.on('change:size',(e:any)=>{console.log('地图窗口大小发生变化时触发')
})
mapManger.on('change:target',(e:any)=>{console.log('地图绑定的DOM元素发生变化时触发')
})

好了,就先说这些了,下一篇:鼠标点击动态创建点、线、面


http://www.mrgr.cn/news/7862.html

相关文章:

  • 基于Java语言的能源管理系统-水-电-气-热-油-数据采集系统源码
  • 王立铭脑科学50讲——19~24篇,大脑如何学习的
  • 【iOS安全】iPhone8 iOS14.4.2 越狱教程
  • 鸿蒙内核源码分析(特殊进程篇)
  • WiFi的IP和电脑IP一样吗?怎么更改wifi的ip地址
  • 计算机的错误计算(七十二)
  • tomcat的session会话保持
  • C# messagePack对类(class)序列化简单示例
  • bug----jdk17使用JOL无法输出java对象的存储布局
  • Web自动化测试:selenium使用详解
  • 常见分布式ID解决方案的优缺点
  • QT Quick QML 网络助手——TCP客户端
  • Python---函数
  • 【Java 优先队列(小顶堆) 分治法 实现合并k个排序链表】
  • 爵士编曲:调式音阶 音阶同和弦 中古调式/教会音阶 旋律小调 减音阶 半音阶 Bebop
  • vue---echarts环形图
  • MyBatis-Plus分页插件使用详解
  • SGM(Score-Based Generative Model)扩散模型简介
  • K8S Secret
  • 批量自动校正图片、PDF文档方向工具