高德地图通过画面中的一个覆盖物设置图中心点和zoom

这篇具有很好参考价值的文章主要介绍了高德地图通过画面中的一个覆盖物设置图中心点和zoom。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

需要将这个覆盖物置于地图中间且不超过地图边界的放至最大

计算覆盖物中心点,定为地图中心点

计算覆盖物的最大经纬度,和最小经纬度,测算出实际最长距离,根据距离与zoom对应关系设置zoom文章来源地址https://www.toymoban.com/news/detail-701766.html

function getAreaCenter(params, info) {
  let code = info.code
  if (!params.target) {
    return;
  }
  let PolygonPath = params.target.getPath();
  let PolygonArr = [];
  PolygonPath.forEach((item) => {
    let path = [item.KL, item.kT];
    PolygonArr.push(path);
  });
  let total = PolygonArr.length;
  if (total <= 0) {
    return;
  }
  let X = 0;
  let Y = 0;
  let Z = 0;
  PolygonArr.forEach((lnglat) => {
    let lng = (lnglat[0] * Math.PI) / 180;
    let lat = (lnglat[1] * Math.PI) / 180;
    let x, y, z;
    x = Math.cos(lat) * Math.cos(lng);
    y = Math.cos(lat) * Math.sin(lng);
    z = Math.sin(lat);
    X += x;
    Y += y;
    Z += z;
  });
  X = X / total;
  Y = Y / total;
  Z = Z / total;

  let Lng = Math.atan2(Y, X);
  let Hyp = Math.sqrt(X * X + Y * Y);
  let Lat = Math.atan2(Z, Hyp);
  
  let center = [(Lng * 180) / Math.PI, (Lat * 180) / Math.PI];
 let maxL = Math.max(...PolygonArr.map(item=> item[0]))
 let minL = Math.min(...PolygonArr.map(item=> item[0]))
 let maxK = Math.max(...PolygonArr.map(item=> item[1]))
 let minK = Math.min(...PolygonArr.map(item=> item[1]))
 let p1 = [maxL,maxK]
 let p2 = [minL,minK]
 let dis = AMap.GeometryUtil.distance(p1, p2);
let zoom = 12
  let zooms = [[10000,11,],
	[5000,12,],
	[2000,15,],
	[1000,16,],
  [600,16.5,],
	[500,17,],
	[200,18,],
	[100,19,],
	[50,20,],
	[15,21,],
	[10,22,]]
	for(let i = 0;i<zooms.length;i++){
    let item = zooms[i]
    if(dis>item[0]){
      zoom = item[1]
  break
 }
  }
  map.setZoomAndCenter(zoom, center);
}

到了这里,关于高德地图通过画面中的一个覆盖物设置图中心点和zoom的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • (2023进阶版)vue+h5 通过高德地图(原生) 获取当前位置定位

    前言:因为也是用的上一个版本的代码,为了描述清楚所以就直接复制文章来更改了,这一版更加完善简洁,高德地图精确度也更高 (2021年写过的一版上线了挺长时间,2023年突然被应用市场下架,说流程走不通,就卡在获取定位失败。改了之后已上线运行 经抓包发现,在 本

    2024年02月11日
    浏览(47)
  • 记录--写一个高德地图巡航功能的小DEMO

    加载地图 使用 AMapLoader.load 加载地图,从 控制台  申请一个属于自己的key 使用 new AMap.Map 实例化地图,并设置 mapStyle 为 \\\"amap://styles/grey\\\" ,也可以在官网上自己设计属于自己的风格,主要讲的不是这部分所以大概交代一下就过去了,实例化Map后返回一个map实例,后续的操作

    2024年02月11日
    浏览(35)
  • 高德地图通过图层layer实现对海量点的可视化渲染

    在正文开始之前我先说说我为啥会使用这个技术来实现数据的可视化。 事情是这样的,我接手了一个项目,里面有个需求是在地图上标记出他们公司的产品的使用分布。我接手的时候呢,我前面的那位大哥是 使用marker点覆盖物,加上for循环来渲染实现的 ,可能他在维护这个

    2024年02月15日
    浏览(82)
  • 【学习记录】使用高德地图API开发一个简单基础的WebGIS系统(GIS考研院校专题地图网站)

    本人只是一个普普通通的 GIS 学生, 下面是记录我的写的一个作业 demo 的内容, 可能会存在一定的错误, 欢迎在评论区私信交流! *完整功能展示看这里 (B站) *感兴趣可以下载完整 demo 看看 (阿里云盘) 本网站(GIS考研院校可视化专题网站)为2022年GIS考研初期准备择校的学生服务

    2024年02月13日
    浏览(82)
  • Android 高德地图 com.amap.api.services.core.AMapException: 用户MD5安全码未通过

    高德地图报com.amap.api.services.core.AMapException: 用户MD5安全码未通过        先进去高德地图平台找到对应应用的key,点击设置查看SHA1码或者包名是否正确,这两个因素是造成这个问题的原因        如何获取SHA1码:                  1.android studio  debug环境中点击右边Gradle-Ta

    2024年02月02日
    浏览(38)
  • 高德地图 其他地图坐标系转化为高德坐标系

    此篇以百度地图为例  1、去高德地图注册自己的key(注册流程可借鉴百度地图注册流程) 2、什么是坐标 地球坐标系——WGS84:常见于 GPS 设备,Google 地图等国际标准的坐标体系。 火星坐标系——GCJ-02:中国国内使用的被强制加密后的坐标体系,高德坐标就属于该种坐标体系

    2024年02月08日
    浏览(39)
  • 高德地图系列(三):vue项目利用高德地图实现地址搜索功能

    目录 第一章 效果图 第二章 源代码 高德地图为我们提供了搜索联想,以及搜索结果标记,该案例已将基础功能打通,后续我们肯定还会对功能有所修改,想实现自己想要的效果,基本上看高德地图文档对着改就好了(跟我们用别的工具一样做即可)  代码描述如下:  注意事

    2024年02月03日
    浏览(49)
  • 高德地图与百度地图坐标相互转化

    1. WGS-84原始坐标系 ,一般用国际GPS纪录仪记录下来的经纬度,通过GPS定位拿到的原始经纬度,Google和高德地图定位的的经纬度(国外)都是基于WGS-84坐标系的;但是在国内是不允许直接用WGS84坐标系标注的,必须经过加密后才能使用; 2. GCJ-02坐标系 ,又名“火星坐标系

    2024年02月16日
    浏览(41)
  • 高德地图实现-微信小程序地图导航

    1、在高德开放平台注册成为开发者 2、申请开发者密钥(key)。 3、下载并解压高德地图微信小程序SDK 注册账号(https://lbs.amap.com/)) 申请小程序应用的 key 应用管理(https://console.amap.com/dev/key/app)) - 我的应用 - 创建新应用 生成的 key 即可用在程序中 下载相关 sdk 文件,导入 amap-

    2024年02月08日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包