实现uniapp天地图边界范围覆盖

前言:

在uniapp中,难免会遇到使用地图展示的功能,但是百度谷歌这些收费的显然对于大部分开源节流的开发者是不愿意接受的,所以天地图则是最佳选择。 此篇文章,详细的实现地图展示功能,并且可以自定义容器宽高,还可以定向的进行行政区边界颜色划分。你可以根据代码运行并进一步稍微改下行政区编码即可实现自己想要的效果。

代码效果如下图所示:

申请天地图key:

首先申请天地图key,它是免费的,但需要你申请。

 申请地址: 天地图API

然后根据页面提示,自行完成【创建新应用】。即可以获取到自己需要的key,注意uniapp申请浏览器端。

然后就是编写代码,如下:

你可以放在 uni-app 项目根目录->hybrid->html 文件夹下或者直接放在 static 目录下。本文章默认放在static下,文件名skymap.html

示例代码:

<!DOCTYPE html>
<html lang="en"><head><script src="http://api.tianditu.gov.cn/api?v=4.0&tk=天地图的key"></script><style>body {margin: 0;padding: 0;overflow: hidden;height: 100vh;font-family: "Microsoft YaHei";}#viewDiv {width: 100%;height: 100%;position: absolute;top: 0;left: 0;}</style></head><body><div id="viewDiv"></div><script>function load() {// 初始化地图对象const map = new T.Map("viewDiv");map.centerAndZoom(new T.LngLat(116.40969, 39.89945), 12);map.enableScrollWheelZoom();// 添加地图类型控件const ctrl = new T.Control.MapType();map.addControl(ctrl);map.setMapType(window.TMAP_NORMAL_MAP);// 添加鹰眼控件const miniMap = new T.Control.OverviewMap({isOpen: false,size: new T.Point(150, 150)});map.addControl(miniMap);// 添加比例尺控件const scale = new T.Control.Scale();map.addControl(scale);addGeoBoundary(map);}function addGeoBoundary(map) {fetch('https://geo.datav.aliyun.com/areas_v3/bound/geojson?code=520322').then(response => response.json()).then(data => {const coordinates = data.features[0].geometry.coordinates;const centroid = data.features[0].properties.centroid;// 设置地图中心为该行政区域的质心map.centerAndZoom(new T.LngLat(centroid[0], centroid[1]), 8);coordinates.forEach(polygon => {polygon.forEach(boundary => {const boundaryPolygon = new T.Polygon(boundary.map(coord => new T.LngLat(coord[0], coord[1])), {color: "#7C7BF6",weight: 1,opacity: 0.7,fillColor: "#ABAAF3",fillOpacity: 0.1});boundaryPolygon.addEventListener("mouseover", () => {boundaryPolygon.setFillColor("#ABAAF3");boundaryPolygon.setFillOpacity(0.6);});boundaryPolygon.addEventListener("mouseout", () => {boundaryPolygon.setFillColor("#DCDBF0");boundaryPolygon.setFillOpacity(0.6);});map.addOverLay(boundaryPolygon);});});}).catch(error => console.error('Error fetching GeoJSON:', error));}load();</script></body>
</html>

然后再你需要展示展示地图的页面引入以下代码:

<uni-section title="地区分布" class="item map-container" type="line"><iframe src="/static/skymap.html" class="map-frame"></iframe></uni-section></uni-section>

样式代码:

你也可以自定义实现自己想要的效果:

<style>.map-container {position: relative;}.map-frame {width: 100%;height: 500rpx;border: none;}
</style>

至此地图即可以正确展示了。如果感觉还不错,点个关注收藏吧。

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

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

相关文章

Win10、Win11一段时间不操作电脑,屏幕点击无反应假死,粘贴失效,任务栏失效等解决方法

网上找到的方法基本都是说在任务管理器中找到资源管理器的进程进行重启即可&#xff0c;这样确实能解决燃眉之急&#xff0c;可是这个问题还是会反反复复出现&#xff0c;无法根治。 本人测试了多种方案后&#xff0c;最终发现设置电源选项的硬盘关闭时间可以根治此问题。 设置…

Scala的内部类

Scala中的内部类&#xff08;Inner Class&#xff09;是指定义在另一个类的内部的类。 内部类可以访问外部类的成员&#xff08;包括私有成员&#xff09;&#xff0c;并且可以与外部类的实例紧密地绑定在一起。 内部类在Scala中非常有用&#xff0c;尤其是在需要封装特定功能…

企业一级流程架构规划方法

在之前关于企业业务流程规划的系列文章中&#xff0c;我们已经分别对企业业务流程规划的价值和原则、企业的业务流程架构的应用、两种常见的企业总体业务流程架构模式等进行了比较深入的分析和阐述&#xff0c;相信大多数企业同仁&#xff0c;已经对企业的业务流程规划&#xf…

【原创】java+springboot+mysql在线文件管理系统设计与实现

个人主页&#xff1a;程序猿小小杨 个人简介&#xff1a;从事开发多年&#xff0c;Java、Php、Python、前端开发均有涉猎 博客内容&#xff1a;Java项目实战、项目演示、技术分享 文末有作者名片&#xff0c;希望和大家一起共同进步&#xff0c;你只管努力&#xff0c;剩下的交…

ubuntu下安装mysql遇到的问题

ubuntu下安装mysql sudo apt install -y mysql-server 出现问题 ……by process 3455 解决 安装 启动 systemctl status mysql.service sudo mysql -u root -p 如何修改密码 与datagrip的连接 查看IP ifconfig 若没安装 参考 Windows10的DataGrip2024.1.4连接ubuntu22.04中的M…

Threejs 实现3D 地图(01)创建基本场景

"d3": "^7.9.0", "three": "^0.169.0", "vue": "^3.5.10" <script setup> import { onMounted,ref } from vue import * as THREE from three import * as d3 from "d3"; //莫开托坐标 矫正地图…

使用Radzen Blazor组件库开发的基于ABP框架炫酷UI主题

一、项目简介 使用过ABP框架的童鞋应该知道它也自带了一款免费的Blazor UI主题&#xff0c;它的页面是长这样的&#xff1a; 个人感觉不太美观&#xff0c;于是网上搜了很多Blazor开源组件库&#xff0c;发现有一款样式非常不错的组件库&#xff0c;名叫&#xff1a;Radzen&am…

【Linux系统编程】第三十四弹---使用匿名管道构建简易Linux进程池

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】【Linux系统编程】 目录 1、引言 2、进程池的基本概念 3、管道在进程池中的应用 4、进程池的实现 4.1、master类定义 4.2、测试信道 4.3、通过cha…

一文读懂JPA及Mybatis的原理和机制(面试经)

导览 前言Q&#xff1a;什么是JPA1. 简介2. 原理 Q&#xff1a;JPA持久化框架—Mybatis1. 内部组成与关系2. 各组件作用域和生命周期3. 动态SQL3.1 if语句3.2 choose-when-otherwise 4. mapper映射XML4.1 select4.2 insert 5. $与#的区别5.1 #{...}5.2 ${...} 结语精彩回顾 前言…

明日周刊-第23期

十月已过半&#xff0c;气温也转凉了&#xff0c;大家注意保温哦。冬吃萝卜&#xff0c;夏吃姜&#xff0c;在快要到来的冬季大家可以选择多吃点萝卜。 配图是本周末去商场抓娃娃的时候拍的照片&#xff0c;现在抓娃娃单次普遍都控制在1块钱以下了&#xff0c;还记得多年前的抓…

qt继承结构

一、 继承结构 所有的窗口类均继承自QWidget类&#xff0c;因此QWidget类本身包含窗口的特性。QWidget对象本身既可以作为独立窗口&#xff0c;又可以作为组件&#xff08;子窗口&#xff09;。 通过构造函数可以创建以上两种形态的QWidget&#xff1a; // 参数1&#xff1a;使…

[C#][winform]基于yolov8的道路交通事故检测系统C#源码+onnx模型+评估指标曲线+精美GUI界面

【重要说明】 该系统以opencvsharp作图像处理,onnxruntime做推理引擎&#xff0c;使用CPU进行推理&#xff0c;适合有显卡或者没有显卡windows x64系统均可&#xff0c;不支持macOS和Linux系统&#xff0c;不支持x86的windows操作系统。由于采用CPU推理&#xff0c;要比GPU慢。…

【重学 MySQL】七十一、揭秘数据库魔法——深入探索并引入视图

【重学 MySQL】七十一、揭秘数据库魔法——深入探索并引入视图 视图的定义视图的作用视图的注意事项 在MySQL数据库中&#xff0c;视图&#xff08;View&#xff09;是一种非常强大且灵活的工具&#xff0c;它为用户提供了以更安全、更清晰的方式查看和管理数据的途径。 视图的…

《计算机视觉》—— 换脸

效果如下&#xff1a; 完整代码&#xff1a; import cv2 import dlib import numpy as npJAW_POINTS list(range(0, 17)) RIGHT_BROW_POINTS list(range(17, 22)) LEFT_BROW_POINTS list(range(22, 27)) NOSE_POINTS list(range(27, 35)) RIGHT_EYE_POINTS list(range(36…

【深入解析】ChatGPT各版本在论文写作中的五大表现差异

学境思源&#xff0c;一键生成论文初稿&#xff1a; AcademicIdeas - 学境思源AI论文写作 人工智能在自然语言处理领域已取得了显著进展&#xff0c;尤其是OpenAI的ChatGPT系列在文本生成和理解方面表现突出。然而&#xff0c;不同版本的ChatGPT在论文写作中的表现存在明显差异…

Python 从入门到实战37(进程间通信)

我们的目标是&#xff1a;通过这一套资料学习下来&#xff0c;可以熟练掌握python基础&#xff0c;然后结合经典实例、实践相结合&#xff0c;使我们完全掌握python&#xff0c;并做到独立完成项目开发的能力。 上篇文章我们讨论了通过multiprocessing模块创建进程操作的相关知…

力扣 142.环形链表Ⅱ【详细解释】

一、题目 二、思路 三、代码 /*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*/ public class Solution {public ListNode detectCycle(ListNode hea…

javaWeb项目-ssm+jsp房屋出租管理系统功能介绍

本项目源码&#xff08;点击下方链接下载&#xff09;&#xff1a;java-ssmjsp房屋出租管理系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具&#xff1a;IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架&#xff1a;ssm、Springboot 前端&#xff…

[含文档+PPT+源码等]精品基于springboot实现的原生Andriod大学校园食堂外卖系统App

基于Spring Boot实现的原生Android大学校园食堂外卖系统App的背景可以从以下几个方面进行阐述&#xff1a; 一、项目背景与需求 随着移动互联网技术的快速发展和智能手机的普及&#xff0c;大学生对于便捷、高效的校园生活服务需求日益增长。大学校园食堂作为学生们日常用餐的…

【电商项目】1分布式基础篇

1 项目简介 1.2 项目架构图 1.2.1 项目微服务架构图 1.2.2 微服务划分图 2 分布式基础概念 3 Linux系统环境搭建 查看网络IP和网关 linux网络环境配置 补充P123&#xff08;修改linux网络设置&开启root密码访问&#xff09; 设置主机名和hosts映射 主机名解析过程分析&…