如何在Angular中的地图上动态绘制多边形形状

2024-02-17

如何动态绘制多边形形状(未预定义paths)以及如何存储多边形的经纬度值

我已经参考了AGMP多边形 https://angular-maps.com/api-docs/agm-core/directives/AgmPolygon.html但这并没有解决我的问题


2018 年 4 月 26 日更新。

我不确定,但似乎 Angular Google 地图已经支持绘制多边形。你可以检查more https://angular-maps.com/api-docs/agm-core/directives/AgmPolygon.html.


检查工作演示:

  1. 基本版(仅绘制多边形)https://stackblitz.com/edit/angular-draw-polygon-google-maps https://stackblitz.com/edit/angular-draw-polygon-google-maps

  2. 更新版本(绘制多个多边形和相交检查)https://stackblitz.com/edit/angular-draw-polygon-intersect?file=src/main.ts https://stackblitz.com/edit/angular-draw-polygon-intersect?file=src/main.ts

AGM https://angular-maps.com/是目前 Angular 2 最好的库,但它仍然需要更新更多以反映所有 Google 地图 API。因此,我们最好遵循 Google 地图文档,并在 Angular 社区支持它之前直接使用它。

https://developers.google.com/maps/documentation/javascript/examples/drawing-tools https://developers.google.com/maps/documentation/javascript/examples/drawing-tools

请注意,这是一个非常基本的功能,它允许您绘制多边形并在完成后获取坐标。您可能还想将所有与地图相关的代码移至服务中。

另外,最好将整个代码包装在其中zone.runOutsideAngular以防止不必要的更改检测。

constructor(private zone: NgZone) {

}

ngOnInit() {
    this.zone.runOutsideAngular(() => {
      this.map = new google.maps.Map(document.getElementById('map'), {
          center: { lat: -34.397, lng: 150.644 },
          zoom: 8
      });

      this.drawingManager = new google.maps.drawing.DrawingManager({
          drawingMode: google.maps.drawing.OverlayType.POLYGON,
          drawingControl: true,
          drawingControlOptions: {
              position: google.maps.ControlPosition.TOP_CENTER,
              drawingModes: ['polygon']
          }
      });

      this.drawingManager.setMap(this.map);
      google.maps.event.addListener(this.drawingManager, 'overlaycomplete', (event) => {
          // Polygon drawn
          if (event.type === google.maps.drawing.OverlayType.POLYGON) {
            //this is the coordinate, you can assign it to a variable or pass into another function.
              alert(event.overlay.getPath().getArray());
          }
      });
    })        
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在Angular中的地图上动态绘制多边形形状 的相关文章

随机推荐

  • 立即绘制和 Matplotlib

    我目前正在开展一个项目 该项目涉及获取模拟读数并将其实时映射到图表上 因此 为了完成此任务 我通过 Arduino 模拟端口运行光敏电阻 并通过 python 3 4 3 读取该数据 在Python方面 我安装了maplotlib和draw
  • 使用 sendKeys() 在 Selenium 中上传文件不起作用

    我无法使用上传文件sendKeys 这是我的代码 driver findElement By xpath Locators browseFlagIconBtn sendKeys D Images icons png 我有一个用于文件上传的文
  • Spring 和 Hibernate 的正确版本以及所需的依赖项...由于依赖项而出现异常

    三天以来 我一直在尝试运行我的 Spring Hibernate 程序 由于 hibernate2 和 hibernate3 之间的版本差异 我很难找到所涉及的依赖项 最后我能够运行具有以下依赖项的程序 cglib nodep 2 1 3
  • Jupyter Notebook 中的感叹号和问号是什么意思?

    下列词语的含义是什么 尤其是 and 在以下示例中 与查询 Pandas DataFrame 中的数据相关 感叹号 cat olympics csv 问号 df fillna import pandas as pd pd Series co
  • 使用 Google Analytics Export API 获取网站趋势

    我正在开发一个使用 Google Analytics Export API 的应用程序 我正在尝试获取 Google 针对您的每个网站帐户显示的 趋势 结果 百分比 即上涨 35 04 或下跌 16 02 他们如何 在哪里获得这个数字以及它
  • 使用 SecItemImport 导入 PKCS12

    Apple s 文档 https developer apple com library mac documentation security Reference keychainservices Reference reference h
  • Plotly-Dash:如何确定客户端回调中的触发输入

    Dash 的文档描述了在服务器端回调的情况下如何确定哪个输入触发了回调 高级回调 https dash plotly com advanced callbacks 有没有办法确定哪个输入触发了客户端打回来 看起来这个功能是在1 13 0版本
  • REST - 修改部分资源 - PUT 或 POST

    我看到很多关于如何使用 REST 只更新部分资源 例如状态指示器 的问题 选项似乎是 抱怨 HTTP 没有 PATCH 或 MODIFY 命令 然而 接受的答案REST 的 HTTP MODIFY 动词 https stackoverflo
  • 获取当前行的长度

    我正在尝试在状态行中添加一个指示符来显示行的总长度 不仅仅是光标列位置 可以用 c 我该怎么做呢 要将一行内容作为字符串获取 请使用getline
  • 抓取无限滚动页面停止而不滚动

    我目前正在使用 PhantomJS 和 CasperJS 来抓取网站中的链接 该网站使用 JavaScript 动态加载结果 然而 下面的代码片段并没有让我获得页面包含的所有结果 我需要的是向下滚动到页面底部 查看微调器是否显示 意味着还有
  • 一次从单个设备登录,注销其他 MERN、JWT、Google 登录

    我无法理解应该如何防止同一用户多次登录 我在带有 JWT 令牌的 React Node 应用程序中使用带有 firebase 的 google 登录 如果从其他浏览器或其他设备登录 如何使用户注销 有没有任何库可以处理这个问题或者有什么方法
  • 如何在同一个库中拥有多个wpf自定义控件?

    我有一个 WPF 自定义控件项目 我想在其中包含许多自定义控件 默认情况下 VS2015 cummunity 创建一个 Theme 文件夹 其中包含 generic xaml 文件和包含交互逻辑的 cs 文件 我想要有很多用户控件 所以我尝
  • 从外部站点动态加载 js

    我想当用户单击按钮时从外部站点加载 JS 代码 例如
  • 如何在 ngTagsInput 中设置标签的颜色?

    我想在我的项目中使用 ng tags input 我尝试根据数组中的颜色属性对象为每个标签设置不同的颜色 Here is plunker http plnkr co edit W5bjrwN5riL94i2jhOP3 p preview我正
  • 反转字符串中元素的顺序

    我有以下字符串 1119 2 483 11021 我想反转该字符串中元素的顺序 期望的输出 11021 483 2 1119 T SQL 版本 2014 您需要一个有序的 split 函数 例如 灵感 https www sqlserver
  • 线程如何节省时间?

    我正在学习 C 中的线程 但是 我无法理解线程的哪些方面实际上提高了性能 考虑仅存在一个核心处理器的场景 将任务拆分为多个线程使用相同的进程上下文 共享资源 并且它们同时运行 由于线程只是共享时间 为什么它们的运行时间 周转时间 小于单线程
  • Html5画布文本交叉点

    我有一些话 所有话都在某个 物体 之王中 这些单词可以在画布上移动 我需要获取所有交叉点的数组 如本例所示 但不需要将文本转换为 SVG paperjs org examples path intersections 谢谢 您可以通过比较两
  • 如何在python源代码中找到运算符的定义?

    我对 in 的实现感到好奇 contains python 中的运算符由于这个问题 https stackoverflow com questions 9089400 python set in operator uses equality
  • 如果页面加载失败,如何运行 Tampermonkey 脚本?

    我有一个在服务器页面上运行的脚本 有时发送不会将任何内容发送回客户端 我得到未收到数据Chrome 中的错误 我想注册此事件 通过 AJAX 通知另一台服务器 然后重新加载页面 即使页面加载失败 如何确保脚本运行 None
  • 如何在Angular中的地图上动态绘制多边形形状

    如何动态绘制多边形形状 未预定义paths 以及如何存储多边形的经纬度值 我已经参考了AGMP多边形 https angular maps com api docs agm core directives AgmPolygon html但这