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

山西省两学一做网站网站生成工具

山西省两学一做网站,网站生成工具,网站彩票网站开发,网站制作涉及的法律1 需求 使用openlayers绘图功能绘制多边形 2 分析 主要是openlayers中draw功能的使用#xff0c;感觉比较简单#xff0c;祖传CV大法搞起来 3 实现 为了方便#xff0c;就不加载底图了#xff0c;直接使用绘制功能 2.1 简单实现 templatediv idma…1 需求 使用openlayers绘图功能绘制多边形 2 分析 主要是openlayers中draw功能的使用感觉比较简单祖传CV大法搞起来 3 实现 为了方便就不加载底图了直接使用绘制功能 2.1 简单实现 templatediv idmap classmap/div /templatescript setup langts import { Map, View } from ol; import { get } from ol/proj; import { Style } from ol/style; import { Fill, Stroke } from ol/style.js; import Draw from ol/interaction/Draw.js; import { Vector as VectorSource } from ol/source.js; import { Vector as VectorLayer } from ol/layer.js;const projection get(EPSG:4326); const source new VectorSource(); const map ref(); const draw ref();onMounted(() {initMap();initDraw(); });const initMap () {map.value new Map({target: map,view: new View({center: [116.406393, 39.909006],projection: projection,zoom: 5}),layers: [new VectorLayer({source: source,style: new Style({stroke: new Stroke({color: orange,width: 2}),fill: new Fill({color: [203, 150, 62, 0.5]})})})]}); };const initDraw () {draw.value new Draw({source: source,type: Polygon});draw.value.on(drawstart, e {console.log(e, e);});draw.value.on(drawend, e {console.log(coord, e.feature.getGeometry().getCoordinates());});map.value.addInteraction(draw.value); }; /script style scoped langscss .map {width: 100%;height: 100%;background: #000; } /style 2.2 需求更新1 新需求 自定义绘制时的样式没有绘制完成时显示虚线顶点增加Point绘制完成后每个顶点需要显示一个Point 分析 这里主要是styleFunction的灵活使用 实现: templatediv idmap classmap/div /templatescript setup langts import { Map, View } from ol; import { get } from ol/proj; import { Style } from ol/style; import Draw from ol/interaction/Draw.js; import { Vector as VectorSource } from ol/source.js; import { Vector as VectorLayer } from ol/layer.js; import { Circle, Fill, Stroke } from ol/style.js; import { Point } from ol/geom;const projection get(EPSG:4326); const source new VectorSource(); const map ref(); const draw ref();onMounted(() {initMap();initDraw(); });const initMap () {map.value new Map({target: map,view: new View({center: [116.406393, 39.909006],projection: projection,zoom: 5}),layers: [new VectorLayer({source: source,style: styleFunc})]}); };const initDraw () {draw.value new Draw({source: source,type: Polygon,style: drawStyleFunc});draw.value.on(drawstart, e {console.log(e, e);});draw.value.on(drawend, e {console.log(coord, e.feature.getGeometry().getCoordinates());});map.value.addInteraction(draw.value); };const drawStyleFunc (feature) {const styles [];const coord feature.getGeometry().getCoordinates();for (let i 0; i coord.length - 1; i) {styles.push(new Style({geometry: new Point(coord[i]),image: new Circle({radius: 4,fill: new Fill({color: #ffff}),stroke: new Stroke({color: orange,width: 2})})}));}styles.push(new Style({fill: new Fill({color: [255, 255, 255, 0.5]}),stroke: new Stroke({color: red,lineDash: [10],width: 2})}));return styles; };const styleFunc (feature) {const styles [];const coord feature.getGeometry().getCoordinates();for (let i 0; i coord[0].length - 1; i) {styles.push(new Style({geometry: new Point(coord[0][i]),image: new Circle({radius: 4,fill: new Fill({color: #ffff}),stroke: new Stroke({color: orange,width: 2})})}));}styles.push(new Style({fill: new Fill({color: [128, 128, 255, 0.5]}),stroke: new Stroke({color: blue,width: 2})}));return styles; }; /script style scoped langscss .map {width: 100%;height: 100%;background: #000; } /style 2.2 需求更新2 新需求 确定的两个顶点之间变为实线取消跟随鼠标的Point影响定位取消绘制时的填充 分析 这里主要是styleFunction的灵活使用 实现 templatediv idmap classmap/div /templatescript setup langts import { Map, View } from ol; import { get } from ol/proj; import { Style } from ol/style; import Draw from ol/interaction/Draw.js; import { Vector as VectorSource } from ol/source.js; import { Vector as VectorLayer } from ol/layer.js; import { Circle, Fill, Stroke } from ol/style.js; import { LineString, Point } from ol/geom;const projection get(EPSG:4326); const source new VectorSource(); const map ref(); const draw ref();onMounted(() {initMap();initDraw(); });const initMap () {map.value new Map({target: map,view: new View({center: [116.406393, 39.909006],projection: projection,zoom: 5}),layers: [new VectorLayer({source: source,style: styleFunc})]}); };const initDraw () {draw.value new Draw({source: source,type: Polygon,style: drawStyleFunc});draw.value.on(drawstart, e {console.log(e, e);});draw.value.on(drawend, e {console.log(coord, e.feature.getGeometry().getCoordinates());});map.value.addInteraction(draw.value); };const drawStyleFunc (feature) {const styles [];const type feature.getGeometry().getType();const coord feature.getGeometry().getCoordinates();for (let i 0; i coord.length - 1; i) {styles.push(new Style({geometry: new Point(coord[i]),image: new Circle({radius: 4,fill: new Fill({color: #ffff}),stroke: new Stroke({color: orange,width: 2})})}));}if (type LineString) {for (let i 0; i coord.length - 1; i) {styles.push(new Style({geometry: new LineString([coord[i], coord[i 1]]),stroke: new Stroke({color: orange,lineDash: coord.length 2 i coord.length - 2 ? [] : [10],width: 2})}));}}return styles; };const styleFunc (feature) {const styles [];const coord feature.getGeometry().getCoordinates();for (let i 0; i coord[0].length - 1; i) {styles.push(new Style({geometry: new Point(coord[0][i]),image: new Circle({radius: 4,fill: new Fill({color: #ffff}),stroke: new Stroke({color: orange,width: 2})})}));}styles.push(new Style({fill: new Fill({color: [128, 128, 255, 0.5]}),stroke: new Stroke({color: blue,width: 2})}));return styles; }; /script style scoped langscss .map {width: 100%;height: 100%;background: #000; } /style 存在问题 在点击鼠标后并且鼠标有移动时前一段虚线才会变成实线并且顶点加上Point因为只有鼠标移动才会有新的坐标点加入到绘制因为openlayers没有提供绘制过程中的钩子函数所以只能是当前效果有需要时drawStyleFunction可以和styleFuntion合并成一个
http://www.dnsts.com.cn/news/28158.html

相关文章:

  • 北京优化网站推广怎么夸一个网站开发公司
  • 免费wap建站终端安全管理系统
  • 扬州建设工程招聘信息网站北京手机网站
  • 品牌网站升级徐州企业做网站
  • 利用小说网站做本站优化湛江在线制作网站
  • 网站怎么做app做网站是哪个专业
  • 黄骅做网站|黄骅网站|黄骅百度优化|黄骅百度推广|黄骅微信|黄骅数据分析师资格证书
  • 自己电脑怎么做网站凤岗网站设计
  • 厦门网站建站公司官方网站建设方案
  • 定制做网站俄文网站开发地点
  • seo网站建设优化郑州网站建设案例
  • 淘宝网站开发者wordpress写技术博客
  • 德州网站建设公司视频营销发布平台包括
  • 发外链的网站都要企业注册做网站赚钱吗 怎么赚钱
  • 成都专业手机网站建设推广wordpress 小程序
  • 长春怎么做网站做网站单页
  • 打开这个网站顺德建网站
  • 博罗网站定制怎样在自己的网站上家程序
  • 网站搭建费用价格表哪些软件可以制作视频
  • 徐州手机网站制作学校网站建设开题报告
  • 石家庄 网站开发百度营销是什么
  • ip下的网站吗北京旧房翻新装修公司排名
  • 网站建设代码怎么导入图片网络服务器与网站建设
  • 网页预览手机网站效果政务网站建设管理
  • 绮思网站建设qswoo网站模板图片
  • 网站优化营销百度关键词排名工具
  • 网站底部导航网站群 建设 方案
  • 外贸网站平台都有哪些成都有实力的网站建设
  • 域名注册网站推荐wordpress 标签固定链接
  • php网站建设制作流程济宁网站建设费用