GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示

news2024/9/25 15:26:10

GIS工具maptalks开发手册(四)01——渲染地图信息框之添加绘制工具、获取点的坐标数据信息框进行展示

1、官网示例

官网示例-地图信息框——https://maptalks.org/examples/cn/ui-control/ui-map-infownd/#ui-control_ui-map-infownd

效果

在这里插入图片描述

代码

index.html

<!DOCTYPE html>
<html>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>空间与UI组件 - 地图信息框</title>
  <style type="text/css">
  html,
  body {
    margin: 0px;
    height: 100%;
    width: 100%;
  }

  .container {
    width: 900px;
    height: 500px;
    margin: 50px;
  }
  </style>
  <link rel="stylesheet" href="https://unpkg.com/maptalks/dist/maptalks.css">
  <script type="text/javascript" src="https://unpkg.com/maptalks/dist/maptalks.min.js"></script>
  <body>

    <div id="map" class="container"></div>
    <script>
      var map = new maptalks.Map('map', {
        center: [-0.113049,51.49856],
        zoom: 14,
        baseLayer: new maptalks.TileLayer('base', {
          urlTemplate: 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png',
          subdomains: ['a','b','c','d'],
          attribution: '&copy; <a href="http://osm.org">OpenStreetMap</a> contributors, &copy; <a href="https://carto.com/">CARTO</a>'
        })
      });

      var options = {
        'title'     : 'Map\' InfoWindow',
        'content'   : 'Click on map to reopen'

        // 'autoPan': true,
        // 'width': 300,
        // 'minHeight': 120,
        // 'custom': false,
        //'autoOpenOn' : 'click',  //set to null if not to open window when clicking on map
        //'autoCloseOn' : 'click'
      };
      var infoWindow = new maptalks.ui.InfoWindow(options);
      infoWindow.addTo(map).show();

    </script>
  </body>
</html>

2、官网示例改造版

效果

在这里插入图片描述

index.html

<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>空间与UI组件 - 地图信息框</title>
<style type="text/css">
  html,
  body {
    margin: 0px;
    height: 100%;
    width: 100%;
  }

  .container {
    width: 900px;
    height: 500px;
    margin: 50px;
  }
</style>
<link rel="stylesheet" href="https://unpkg.com/maptalks/dist/maptalks.css">
<script type="text/javascript" src="https://unpkg.com/maptalks/dist/maptalks.min.js"></script>

<body>

  <div id="map" class="container"></div>
  <script>
    var map = new maptalks.Map('map', {
      center: [-0.113049, 51.49856],
      zoom: 14,
      baseLayer: new maptalks.TileLayer('base', {
        urlTemplate: 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png',
        subdomains: ['a', 'b', 'c', 'd'],
        attribution: '&copy; <a href="http://osm.org">OpenStreetMap</a> contributors, &copy; <a href="https://carto.com/">CARTO</a>'
      })
    });

    var options = {
      // 题目
      'title': 'Map\' InfoWindow-地图信息窗',
      // 内容
      'content': 'Click on map to reopen-点击重新打开地图',
      // 自动平移
      'autoPan': true,
      'width': 340,
      'minHeight': 120,
      // 自定义属性
      // 'custom': false,
      // 自动打开方式
      // 'autoOpenOn' : 'click',  //set to null if not to open window when clicking on map (如果单击地图时不打开窗口,则设置为空)
      // 自动关闭方式
      // 'autoCloseOn' : 'click'
    };
    var infoWindow = new maptalks.ui.InfoWindow(options);
    infoWindow.addTo(map).show();

  </script>
</body>

</html>

3、获取图层的坐标-信息框展示图层的坐标

效果1-打印点的坐标

在这里插入图片描述

效果2-信息框中展示点的坐标

在这里插入图片描述

代码

index.html

<!DOCTYPE html>
<html>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>交互 - 绘制工具</title>
<style type="text/css">
  html,
  body {
    margin: 0px;
    height: 100%;
    width: 100%;
  }

  .container {
    width: 900px;
    height: 500px;
    margin: 50px;
  }
</style>
<link rel="stylesheet" href="https://unpkg.com/maptalks/dist/maptalks.css">
<script type="text/javascript" src="https://unpkg.com/maptalks/dist/maptalks.min.js"></script>

<body>

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

  <script>

    var map = new maptalks.Map('map', {
      // center: [-0.113049,51.498568],
      center: [-0.1310557164531474, 51.502540469671175],
      zoom: 20,
      baseLayer: new maptalks.TileLayer('base', {
        urlTemplate: 'https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png',
        subdomains: ['a', 'b', 'c', 'd'],
        attribution: '&copy; <a href="http://osm.org">OpenStreetMap</a> contributors, &copy; <a href="https://carto.com/">CARTO</a>'
      })
    });

    var layer = new maptalks.VectorLayer('vector').addTo(map);

    var drawTool = new maptalks.DrawTool({
      mode: 'Point'
    }).addTo(map).disable();

    drawTool.on('drawend', function (param) {
      console.log('点的原始坐标数据', param.geometry._coordinates);
      var arrData = '';
      arrData = '[' + param.geometry._coordinates.x + ',' + param.geometry._coordinates.y + ']'
      console.log('点的拼接坐标', arrData);

      // 信息框展示点的坐标
          var options = {
          'title'     : '绘制点的坐标',
          'content'   : arrData

          // 'autoPan': true,
          // 'width': 300,
          // 'minHeight': 120,
          // 'custom': false,
          //'autoOpenOn' : 'click',  //set to null if not to open window when clicking on map
          //'autoCloseOn' : 'click'
        };
        var infoWindow = new maptalks.ui.InfoWindow(options);
        infoWindow.addTo(map).show();



      layer.addGeometry(param.geometry);
    });

    var items = ['Point', 'LineString', 'Polygon', 'Circle', 'Ellipse', 'Rectangle', 'FreeHandLineString', 'FreeHandPolygon'].map(function (value) {
      return {
        item: value,
        click: function () {
          drawTool.setMode(value).enable();
        }
      };
    });

    var toolbar = new maptalks.control.Toolbar({
      items: [
        {
          item: 'Shape',
          children: items
        },
        {
          item: 'Disable',
          click: function () {
            drawTool.disable();
          }
        },
        {
          item: 'Clear',
          click: function () {
            layer.clear();
          }
        }
      ]
    }).addTo(map);
    var marker1 = new maptalks.Marker(
      [-0.131049, 51.502500],
      {
        'symbol': {
          'markerFile': './56.svg',
          'markerWidth': 300,
          'markerHeight': 400,
          'markerDx': 0,
          'markerDy': 0,
          'markerOpacity': 1
        }
      }
    ).addTo(layer);

  </script>
</body>

</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/56572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Vue 官方文档2.x教程学习笔记 1 基础 1.3 Vue 实例 1.3.1 创建一个Vue 实例 1.3.2 数据与方法

Vue 官方文档2.x教程学习笔记 文章目录Vue 官方文档2.x教程学习笔记1 基础1.3 Vue 实例1.3.1 创建一个Vue 实例1.3.2 数据与方法1 基础 1.3 Vue 实例 1.3.1 创建一个Vue 实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的&#xff1a; var vm new Vue({/…

阿里云ACP云计算的实验考的是什么?

目前阿里云ACP云计算实验共计四个 1 使用负载均衡实现https与http的混合访问 本实验使用负载均衡配置监听&#xff0c;利用Nginx实现HTTP请求向HTTPS请求的转化&#xff0c;从而完成HTTP和HTTPS的混合访问。 实验概述 互联网巨头雅虎官方对外发布消息&#xff0c;承认在201…

Yolo算法检测之NMS(非极大值抑制)原理详解

刚开始学习算法的时候&#xff0c;nms非极大值一直学不明白&#xff0c;今天终于搞明白了&#xff0c;大致总结一下。 首先我们简单看一下NMS使用的这个背景 按照yolo目标检测算法的初步思想来说&#xff0c;把图片分成19*19网格之后&#xff0c;理论上这个19*19个网格里面包含…

JavaWeb(二)

下面的知识主要就是Servlet&#xff0c;JSP&#xff0c;EL这个顺序去总结&#xff0c;把基础打扎实 Servlet 首先咱们肯定一直听说Servlet&#xff0c;经常说servlet容器&#xff0c;但是具体Servlet是个啥呢。咱们今天就去深入探讨一下。 咱们看一下菜鸟权威教程的解释 Java…

高通平台稳定性分析-CFI failure

一、查看 dmesg_TZ.txt中的错误: Kernel panic - not syncing: CFI failure (target: 0xffffff804323a848) Call trace: dump_backtrace.cfi_jt+0x0/0x8 dump_stack_lvl+0x94/0xe0 panic+0x1a0/0x468 cfi_module_add+0x0/0x24 find_check_fn+0x0/0x258 cam_subdev_ioct…

Kanzi:项目实例:智能灯光SmartControl界面设计

概述&#xff1a; 智能灯光是指&#xff1a;在满足一定条件下&#xff0c;自动显示一些 智能开关&#xff08;如&#xff1a;自动远光灯开关&#xff0c;延时下电开关&#xff0c;智能熄火开关&#xff0c;智能顶灯开关&#xff09;。 他们点亮的共同点是 1&#xff1a;标定…

[附源码]JAVA毕业设计红河旅游信息服务系统(系统+LW)

[附源码]JAVA毕业设计红河旅游信息服务系统&#xff08;系统LW&#xff09; 目运行 环境项配置&#xff1a; Jdk1.8 Tomcat8.5 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目…

[附源码]计算机毕业设计springboot项目管理系统的专家评审模块

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【MySQL Router】使用 systemd 管理 MySQL Router

使用 systemd 管理 MySQL Router 文章目录使用 systemd 管理 MySQL Router排错过程升级操作系统内核未修改相关文件的属主&#xff0c;直接用 mysqlrouter 重新引导配置操作系统 limit 相关参数用户及其权限问题结语在之前的文章 【 InnoDB Cluster 】安装部署 MySQL Router 中…

Elasticsearch_第2章_ elasticsearch_进阶

Elasticsearch_第2章_ elasticsearch_进阶 文章目录Elasticsearch_第2章_ elasticsearch_进阶0.学习目标1.数据聚合1.1.聚合的种类1.2.DSL实现聚合1.2.1.Bucket聚合语法1.2.2.聚合结果排序1.2.3.限定聚合范围1.2.4.Metric聚合语法1.2.5.小结1.3.RestAPI实现聚合1.3.1.API语法1.…

Conv2Former

又发现了一个说比Transformer好的,通过充分利用卷积探索一种更高效的编码空域特征的方式&#xff1a;通过组合ConvNet与ViT的设计理念&#xff0c;本文利用卷积调制操作对自注意力进行了简化&#xff0c;进而构建了一种新的ConvNet架构Conv2Former超简Transformer风格ConvNet&a…

Python基础之MySql数据库交互

Python基础之MySql数据库交互一、使用MySql进行持久化存储二、安装MySql数据库和Python库PyMySQL三、使用pymysql链接mysql数据库四、创建表五、插入数据六、后记一、使用MySql进行持久化存储 在任何应用中&#xff0c;都需要持久化存储。一般有 3 种基础的存储机制&#xff1…

oepncv c++ 连通组件扫描

1、概念 连通组件指在图像上通过四邻域或八邻域法&#xff0c;连接起来的像素值大于某一阈值的区域&#xff08;这些像素点被称为前景像素&#xff09;&#xff0c;而小于阈值的区域被称为背景。如下图的4个连通组件。 四邻域、八邻域&#xff1a; 2、常用算法 a&#xff09;基…

35岁程序员,都到哪儿去了?

在很多人眼里&#xff0c;程序员的薪资就是普通人的天花板。关于程序员35岁被优化这个亘古不变的话题&#xff0c;也有不少人冷嘲热讽&#xff1a;你花10年的时间赚到了我30年、40年都赚不到的钱&#xff0c;有什么好焦虑不满呢&#xff1f;钱还不够用吗&#xff1f; 而那些年纪…

榛子云短信验证平台与springboot集成的短信验证

登录 - 榛子云短信用户系统 (zhenzikj.com) 上面是登录榛子云短信验证平台的入口&#xff0c;此平台的短信大概为3.1分一条短信。 如何与spring boot进行集成呢&#xff0c;我以注册为例来慢慢讲解 1.注册号榛子云账号并充值可发送短信 2.在项目pom.xml导入jar包 <!-- 榛…

HTML+CSS+JS我的班级网页设计期末课程大作业 web前端开发技术 web课程设计 网页规划与设计

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

位运算介绍、图解位运算相关题目【一个数字出现了K次,其他数字出现了M次,M > 1 K < M 找到出现了K次的数】【找到出现奇数次的数】等题目

位运算 常见的位运算 >>、>>>、<<、|、&、^、||、&&、~等 原码、反码、补码 原码 将一个整数转换成二进制形式&#xff0c;就是其原码。例如 6 原码就是……0000 0000 0000 0110 反码 对于正数&#xff0c;它的反码就是其原码&#xff08;…

节省50%带宽,这款媒体处理产品了解下!

视频处理技术想必大家都有所了解&#xff0c;现在每天都会涌现出大量新的视频处理模型&#xff0c;它们有的能够超分、降噪&#xff0c;有的能够做目标检测、跟踪、识别&#xff0c;加上一些前端技术就能实现很多炫酷的功能。但是现在大多数模型都是单任务模型&#xff0c;想要…

【POJ No. 2777】 颜色统计 Count Color

【POJ No. 2777】 颜色统计 Count Color 北大OJ 题目地址 【题意】 有一个长L 厘米的电路板&#xff0c;可以将板均分为L 段&#xff08;1&#xff5e;L &#xff09;&#xff0c;每段长1厘米。现在给电路板上色&#xff0c;每段只有一种颜色。可以在电路板上执行两种操作&am…

Qt扫盲-Assistant 助手使用总结

Qt Assistant助手 使用记录预备一、顶部菜单栏1. 快捷栏2. 文件、前往、帮助3. 查看-工具栏4. 编辑-首选项5. 书签二、侧边菜单栏1. 修改显示功能Bar2. 内容3. 索引4. 书签三、内容主体1. 结构总览 Content2. Properties3. Public Functions4. Reimplemented Public Functions5…