美文网首页
四章-38-绘制常规形状

四章-38-绘制常规形状

作者: 彩云飘过 | 来源:发表于2020-04-21 11:26 被阅读0次

本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers 5.3.x api。

源码 见 1020.html ,对应的 官网示例 https://openlayers.org/en/latest/examples/zoomslider.html?q=ZoomSlider

image.png image.png
<!DOCTYPE html>
<html>
  <head>
    <title></title>
    <link rel="stylesheet" href="../include/ol.css" type="text/css" />
    <script src="../include/ol.js"></script>
  </head>

  <body>
    <div id="map" class="map"></div>

    <script>

      
      var stroke = new ol.style.Stroke({ color: "black", width: 2 });
      var fill = new ol.style.Fill({ color: "red" });

      var styles = {
        square: new ol.style.Style({
          image: new ol.style.RegularShape({
            fill: fill,
            stroke: stroke,
            points: 4,
            radius: 10,
            angle: Math.PI / 4
          })
        }),
        triangle: new ol.style.Style({
          image: new ol.style.RegularShape({
            fill: fill,
            stroke: stroke,
            points: 3,
            radius: 10,
            rotation: Math.PI / 4,
            angle: 0
          })
        }),
        star: new ol.style.Style({
          image: new ol.style.RegularShape({
            fill: fill,
            stroke: stroke,
            points: 5,
            radius: 10,
            radius2: 4,
            angle: 0
          })
        }),
        cross: new ol.style.Style({
          image: new ol.style.RegularShape({
            fill: fill,
            stroke: stroke,
            points: 4,
            radius: 10,
            radius2: 0,
            angle: 0
          })
        }),
        x: new ol.style.Style({
          image: new ol.style.RegularShape({
            fill: fill,
            stroke: stroke,
            points: 4,
            radius: 10,
            radius2: 0,
            angle: Math.PI / 4
          })
        })
      };

      var styleKeys = ["x", "cross", "star", "triangle", "square"];
      
      
      //随机生成250个点的坐标,为每个坐标设置样式,样式时常规形状
      var count = 250;
      var features = new Array(count);
      var e = 4500000;
      for (var i = 0; i < count; ++i) {
        var coordinates = [
          2 * e * Math.random() - e,
          2 * e * Math.random() - e
        ];
        features[i] = new ol.Feature(new ol.geom.Point(coordinates));
        features[i].setStyle(styles[styleKeys[Math.floor(Math.random() * 5)]]);
      }

      var source = new ol.source.Vector({
        features: features
      });

      var vectorLayer = new ol.layer.Vector({
        source: source
      });

      var map = new ol.Map({
        layers: [vectorLayer],
        target: "map",
        view: new ol.View({
          center: [0, 0],
          zoom: 2
        })
      });
    </script>
  </body>
</html>

相关文章

  • 四章-38-绘制常规形状

    本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers 5...

  • 015 几何形状绘制

    几何形状绘制 绘制直线 绘制圆 绘制矩形 绘制椭圆 填充几何形状 OpenCV没有专门的填充方法,只是把绘制几何形...

  • PPT:3-1 常用形状的绘制与调整(形状篇)

    常用形状的绘制与调整:形状绘制 大小改变 方向旋转位置移动 1.形状绘制 (1)开始~绘图~用鼠标拖动 (2)开始...

  • 教你PPT如何简单的美化绘制的形状

    教你PPT如何简单的美化绘制的形状 对绘制的形状进行编辑后,还可通过为形状应用样式,设置形状填充色、形状轮廓和形状...

  • canvas

    绘制常规图案

  • PPT中的形状——基础技术贴

    主要内容包括PPT中形状的绘制,形状的组合与拆分,形状的对齐方式,形状在幻灯片中的应用等。 1.形状的绘制 打开方...

  • 绘制view形状

    最近有个需求,是仿照微信公众号做一个界面,里面有一个弹出菜单。这次我选择自己绘制弹出菜单,而不是让UI切图。 直接上代码

  • CAShapeLayer

    CAShapeLayer(形状图层) 父类是CALayer 根据路径绘制形状图层 CAShapeLayer所有独有...

  • 学习Android界面开发: Shape Drawable

    用于绘制几何形状(geometric shape)支持以下属性: 形状 android:shape...

  • 菜鸟教程——iOS UIKit绘制图像

    iOS两大绘图框架:UIKit像UIImage、NSString(绘制文本)、UIBezierPath(绘制形状)...

网友评论

      本文标题:四章-38-绘制常规形状

      本文链接:https://www.haomeiwen.com/subject/ayjcuhtx.html