前端开发者如何开发自己的地图功能

地图开发

市面上有高德,百度属于常用的,以及小程序内置的腾讯地图,通常用这部分的功能,都需要申请对应的key,来进行使用,一般刚刚开始流量不大,到没什么,流量一大就需要付费。

如何解决这个问题,就只能使用开源的地图库,
WebGIS四大地图框架:Leaflet、OpenLayers、Mapbox、Cesium

四种框架如何选择的问题,3d需要首选,cesium,但对浏览器配置与显卡要求很高,吃内存。如果不是特别说明一般是不推荐使用它来做二维功能。
leaflet是老牌的二维内置支持wms 社区有插件也支持wmts,
目前使用mapbox是可以申请对应的key来使用图层,但一般会自己开发gis服务,来发布地图,也就是不需要key,通过使用对应的开源库Maplibre来开发二维。

地图的要素类似就是底图服务,瓦片,天地图,矢量图,配上经纬度的geojson格式数据,以及一些图片撒点,热力图外加图表echarts,轨迹,效果,水波纹,label等等。

底图服务可以使用天地图官网申请的地址,但对应的一般也有次数要求,通常使用geoserver 然后导入数据,生成,或者使用数据库,空间数据库 java 之类的,也可以使用第三方软件。二维的省市区通常数据是开源的

组件和地图的使用,框架与地图的结合,通常是引入原生的js库,然后封装一个基础地图功能组件,抛出一些对外的方法,来使用内部的功能,也可以根据常用的功能,来封装子组件,实现类似高德vue组件库那种形式,

一般这样就可以提高复用的效率,就涉及了,模块化的打包,市面上目前是流行umd esm 来使用,使用vite与webpack来打包。一般涉及的插件有时候不支持require,vite也许有很多问题,我通常是在webpack5里面或者4里面打包变成umd然后使用资源路径引入全局对象的方法,来兼容。

打包的话umd 与 esm格式其实都需要,rollup就可以解决这个问题,借助vite就可以,在组件库的版本与git的组合,使用pnpm与lerna,使用工作空间来解决问题,如果需要给内部使用,可以搭建私有的git以及私有的npm库地址,内部方便使用,如果是对外部,可以对内容加密。支持key之类的收费。等等

目前的生态地图其实都有可以找到对应的组件库,比如leaflet cesium,但都不是很灵活,所以自己的从头弄,需要花费时间,根据不同的需求

地图目前有echarts的二维那种,数据与视图的映射,使用符合geojson的地图数据,注册好使用的数据模型。然后结合图表的事件,点击来联动,有些会要求我们使用threejs来实现三d的地图,这个就涉及到复杂的三维投影数据转化。

额外的目前如果不使用内置的地图组件比如腾讯,那在小程序的使用做这些功能,就使用webview嵌入地图或者three,或者使用其他的比如纯js的页面,传一个token过去,然后业务都做在h5页面来解决这个问题。

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

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

相关文章

数库据设计最佳实践

中老年程序员,从业生涯设计过很多数据库,有用上的也有没用上的,有精心设计花无数心思更改了无数次的也有敷衍了事能用就行的,有最糟糕的设计也有感觉还不错的。在设计和修改过程中有很多疑问和感悟,在此记录一下以方便…

HTML静态网页成品作业(HTML+CSS)——世博园介绍(2个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有2个页面。 二、作品演示 三、代…

BUUCTF-Ezsql1

1.打开靶机 打开第一个链接 2.万能密码 使用万能密码:a or 1 # 密码为随意 第二个用kali打开 3.ssh连接靶机 ssh ctf284490d0-7600-4c65-9160-5ced02f45633.node5.buuoj.cn -p 28191 由题可知密码为123456 4.找到并修改index.php文件 找到index.php文件 #内容如…

spring启动自动执行方法

原文链接: Spring Boot 启动时,让方法自动执行的 4 种方法!-阿里云开发者社区 (aliyun.com) -------------------------------------------------------------------------------------------------------------------------------- 在springBoot中我…

Springboot整合支付宝沙箱支付

2.配置说明 要记住这几个重要的配置 appId 这个是appIdprivateKey 商户私钥publicKey 支付宝公钥, 即对应APPID下的支付宝公钥notifyUrl 支付成功后异步回调地址(注意是必须是公网地址)returnUrl #支付后回调地址signType 签名类型 一般写 RSA2charset utf-8format json #网关…

数据结构奇妙旅程之红黑树

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

印染厂区污水怎么处理

印染厂污水处理是一项十分重要且紧迫的环境问题。随着工业化的快速发展,印染厂所排放的大量废水不仅对环境造成了严重影响,也对人们的生活和健康带来了潜在的威胁。因此,寻找有效的印染厂污水处理方法显得尤为重要。 针对印染厂污水的特点&am…

通过Arthas修改并热发布代码

通过Arthas修改并热发布代码 主要使用jad、mc、retransform三个命令: jad --source-only com.example.demo.arthas.user.UserController > /tmp/UserController.javamc /tmp/UserController.java -d /tmpretransform /tmp/com/example/demo/arthas/user/UserCo…

tp8 mpdf 导出pdf

1. 安装mpdf composer require mpdf/mpdf 2. 然后 使用 use mpdf\Mpdf; 或者 require_once __DIR__ . /vendor/autoload.php; 官方文档 mPDF – mPDF 手册 文档里有很多东西 可以自己去研究 3. 编写代码 下载 (支持中文) $mpdf new Mpdf([mode > utf-8,"autoS…

【技术干货】MediaCrawler:一站式社交平台数据抓取利器,带你玩转小红书、抖音、快手、B站和微博数据分析

一、引言 大数据时代,社交媒体平台上的海量信息为我们提供了丰富洞察市场、研究用户行为的机会。然而,如何高效便捷地收集和整理这些分散在各平台的数据呢?今天,我们将为您揭秘一款专为小红书、抖音、快手、B站和微博打造的强大数…

用python实现视频异常检测

视频异常检测是一个复杂的任务,它涉及到对视频帧的分析和比较,以检测与正常模式不符的异常行为或事件。下面是一个基本的步骤指南,以及如何使用Python实现视频异常检测: 步骤指南 视频帧提取:首先,你需要…

实在智能与中国信通院联合牵头智能体(Agent)标准编制

近日,中国信息通信研究院(以下简称“信通院”)启动国内首个《智能体(Agent)技术要求与评估方法》系列标准编制,实在智能作为参编单位并牵头编制技术能力部分,深度参与该标准对智能体技术要求和评…

阿里云ecs服务器配置反向代理上传图片

本文所有软件地址: 链接:https://pan.baidu.com/s/12OSFilS-HNsHeXTOM47iaA 提取码:dqph 为什么要使用阿里云服务器? 项目想让别人通过外网进行访问就需要部署到我们的服务器当中 1.国内知名的服务器介绍 国内比较知名的一些…

机器学习复习(9)——自定义dataset

目录 第一种dataset(文件夹名即为标签) 用于将格式(1)转换为格式(2) 第二种dataset(标签在labels文件夹下的对应的txt文件里面) 第一种dataset(文件夹名即为标签) 数据组织格式(1) --data ----train …

续上篇 qiankun 微前端配置

上篇文章地址:微前端框架 qiankun 配置使用【基于 vue/react脚手架创建项目 】-CSDN博客 主应用: src/main.js 配置: import Vue from vue import App from ./App.vue import router from ./router import { registerMicroApps, start } …

【小程序开发】蓝牙设备API——单点蓝牙应用程序编程接口整理(二)

ty.device.getBLEDeviceRSSI 获取 BLE 外设的信号 需引入DeviceKit,且在>1.2.6版本才可使用 参数 Object object 属性类型默认值必填说明deviceIdstring是设备模型 deviceId 设备 Idcompletefunction否接口调用结束的回调函数(调用成功、失败都会执…

jar读取目录配置、打包jar后无法获取目录下的配置

jar读取目录配置、打包jar后无法获取目录下的配置 jar读取目录配置、打包jar后无法获取目录下的配置。java打成jar包后获取不到配置文件路径。解决项目打成jar包上线无法读取配置文件。打包jar后无法读取resource下的配置文件 场景 需要读取 src/main/resources/mapper下的所…

大机中的汇编语言该怎么学

提起程序开发,就不得不说合久必分,分久必合,反成各个程序段之间都有这个关系,而多个程序又组成一个功能组,可以完成一项业务,ASM比JCL难很多,因为它涉及到地址和业务。 一 ASM 的难度如何 比方…

UGUI界面性能优化3-合理规划界面层级结构

在Unity中,UGUI(Unity GUI)是一种用于创建用户界面的工具。合理规划界面层级结构对于开发一个可维护和易于使用的界面非常重要。以下是一种合理的UGUI界面层级结构规划方式: Canvas(画布):Canva…