一个坐标系查询网站python获取所有坐标系

news2024/9/25 13:22:12

技术路线选择

我是使用的vue 3开发的网页界面,element-plus构建网页组件,openlayer展示地图,express提供后端API,vercel进行在线部署。

图片

python获取所有坐标系

想要展示所有坐标系,那需要先获取坐标系,怎么获取了?可以读取gdal,也可以读取其他库,这里我使用了地理与气象分析包gma导出坐标系的相关信息,代码如下:

import json
import os
from multiprocessing import Pool, cpu_count
from gma import crs

def process_crs(CRS_ID):
    try:
        SR = crs.SpatRef(CRS_ID)

        CRS_information_dict = {
            "CRS_ID": CRS_ID,
            "Name": SR.Name,
            "AreaOfUse": SR.AeraOfUse,
            "PlotAeraOfUse": SR.PlotAeraOfUse,
            "Search_infomation": str(CRS_ID) + SR.Name.replace(" ", ""),
            "PROJJSON": json.loads(SR.Export('PROJJSON'))
        }
        return CRS_information_dict
    except Exception as e:
        return None

def save_to_json(data, filename):
    with open(filename, 'w') as json_file:
        json.dump(data, json_file, indent=4)

def main():
    # 获取系统的 CPU 核心数量
    num_cores = cpu_count()
    print(f"Using {num_cores} cores.")

    # 创建一个进程池
    with Pool(processes=num_cores) as pool:
        # map 函数将 CRS_ID 范围分配给进程池中的进程
        results = pool.map(process_crs, range(1, 50000))

    # 过滤掉处理过程中返回 None 的结果
    filtered_results = [crs_info for crs_info in results if crs_info is not None]

    # 将所有CRS信息的列表转换为JSON格式的字符串
    CRS_information_json = json.dumps(filtered_results, indent=4)

    # 保存到文件CRS.json中
    output_path = 'crs坐标系处理//CRS.json'
    save_to_json(filtered_results, output_path)

if __name__ == '__main__':
    main()

基于这个代码,我们就能获取到坐标系的原始信息,并且将各个坐标系的属性信息写入了json文件中。json文件已上传到github仓库中,感兴趣的可以自己下载一下。

搭建网站前端

网站的前端我使用了vue3框架+element-plus组件+vite+pinia状态管理+openlayer搭建地图界面。都是无关遥感地信的知识,我这里就不多介绍了。

图片

前端路线选择

最后,为了练手,我还加了一个中英文字典进行网页的语言切换,搭建起来的网页长这样:

图片

为了方便大家使用底图,我添加了7种高分辨率的遥感底图(星图、esri、必应、吉林、google(需要有条件的同学才能用)、mapbox等。



搭建网站后台

网站后台使用的express,只开发了一个API接口,是用来处理前端发送EPSG数字,后端收到后开始查询,再把查询到的信息发送给前端。

图片

另外,开发过程我用了swagger,能比较方便的测试API。

总结

epsg.ruiduobao.com是一个完全开源、免费、无需登陆的坐标系查询网站,欢迎大家使用。

其他

下面这些是我做过的遥感地信相关领域的开源项目,欢迎大家在GitHub上标星:

名称网址GitHub仓库
中国长时间序列省市县数据CTAmapwww.shengshixian.comhttps://github.com/ruiduobao/shengshixian.com
空间数据介绍网www.gisrsdata.comhttps://github.com/ruiduobao/gisrsdata.com
土地覆盖和DEM数据下载网www.landcover100.comhttps://github.com/ruiduobao/landcover100
省市县乡村五级区划查询下载网map.ruiduobao.comhttps://github.com/ruiduobao/gaode_MAP_CUN
epsg坐标系查询网站epsg.ruiduobao.comhttps://github.com/ruiduobao/epsg.ruiduobao.com

参考

网站源码和坐标系json文件.https://github.com/ruiduobao/epsg.ruiduobao.com

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

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

相关文章

【开源】基于JAVA+Vue+SpringBoot的贫困地区人口信息管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 人口信息管理模块2.2 精准扶贫管理模块2.3 特殊群体管理模块2.4 案件信息管理模块2.5 物资补助模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 人口表3.2.2 扶贫表3.2.3 特殊群体表3.2.4 案件表3.2.5 物资补助表 四…

机器人学、机器视觉与控制 上机笔记(2.1章节)

机器人学、机器视觉与控制 上机笔记(2.1章节) 1、前言2、本篇内容3、代码记录3.1、新建se23.2、生成坐标系3.3、将T1表示的变换绘制3.4、完整绘制代码3.5、获取点*在坐标系1下的表示3.6、相对坐标获取完整代码 4、结语 1、前言 工作需要,想同…

HTTP协议笔记

HTTP协议笔记 参考: (建议精读)HTTP灵魂之问,巩固你的 HTTP 知识体系 《透视 HTTP 协议》——chrono 目录: 1、说说你对HTTP的了解吧。  1. HTTP状态码。  2. HTTP请求头和响应头,其中包括cookie、跨域响…

AcWing 1238 日志统计(双指针算法)

题目概述 小明维护着一个程序员论坛。现在他收集了一份”点赞”日志,日志共有 N 行。 其中每一行的格式是: ts id表示在 ts 时刻编号 id 的帖子收到一个”赞”。 现在小明想统计有哪些帖子曾经是”热帖”。 如果一个帖子曾在任意一个长度为 D 的时间段…

《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)

文章目录 1.1 MySQL 概览:版本、特性和生态系统1.1.1 基础知识1.1.2 重点案例1.1.3 拓展案例 1.2 安装和配置 MySQL1.2.1 基础知识1.2.2 安装步骤1.2.3 重点案例1.2.4 拓展案例 1.3 基础命令和操作1.3.1 基础知识1.3.2 重点案例1.3.3 拓展案例 1.1 MySQL 概览&#…

JUC ThreadLocal

文章目录 ThreadLocal ^1.2^ 的作用使用场景示例1ThreadLocal 变量初始化ThreadLocal 源码分析源码分析总结 内存泄漏问题示例说明new Thread 方式 执行结果pool 方式执行结果原因解析总结 ThreadLocal 1.2 的作用 ThreadLocal 为每个线程提供单独的变量副本。每个变量副本都是…

史上最全嵌入式(学习路线、应用开发、驱动开发、推荐书籍、软硬件基础)

废话不多说直接上思维导图! 如果有觉得图片看不清楚的,有疑问的,可在评论区进行留言! 群号: 228447240 嵌入式总括 嵌入式书籍推荐 嵌入式软件知识 嵌入式硬件知识 嵌入式应用开发 嵌入式驱动开发 嵌入式视频推荐: 韦…

WebSocket相关问题

1.WebSocket是什么?和HTTP的区别? WebSocket是一种基于TCP连接的全双工通信协议,客户端和服务器仅需要一次握手,两者之间就可以创建持久性的连接,并且支持双向数据的传输。WebSocket和HTTP都是基于TCP的应用层协议&am…

【PyTorch][chapter 15][李宏毅深度学习][Neighbor Embedding-LLE]

前言: 前面讲的都是线性降维,本篇主要讨论一下非线性降维. 流形学习(mainfold learning)是一类借鉴了拓扑流行概念的降维方法. 如上图,欧式距离上面 A 点跟C点更近,距离B 点较远 但是从图形拓扑结构来看, …

书生·浦语大模型全链路开源体系

1,简述大模型的定义与特点: 大模型是指参数数量大于10亿的模型,它的特点包括:模型规模大,数据规模大,计算规模大和任务数量 2. 分析大模型成为通用人工智能的重要途径的原因: 大模型能够从大…

2023年的技术变革,我不是破坏大环境的人

文章目录 前言2023年的技术变革人工智能的崛起元宇宙的跌落物联网的渗入 技术变革的背后技术变革的影响积极的影响负面的影响 技术变革带来的思考 前言 2023无疑是一个充满变革和创新的一年,这背后离不开技术的发展和进步。不论是人工智能的崛起,还是元…

[word] word表格内容自动编号 #经验分享#微信#其他

word表格内容自动编号 在表格中的内容怎么样自动编号?我们都知道Word表格和Excel表格有所不同,Excel表格可以轻松自动编号,那么在Word表格中如何自动编号呢? 1、选中内容后,点击段落-自动编号,选择其中一…

数据结构——C/栈和队列

🌈个人主页:慢了半拍 🔥 创作专栏:《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》 🏆我的格言:一切只是时间问题。 ​ 1.栈 1.1栈的概念及结构 栈:一种特…

计算机缺失concrt140.dll怎么修复?分享5种有效的修复方法

在计算机系统运行过程中,如果发现无法找到“concrt140.dll”这个特定的动态链接库文件,可能会引发一系列问题和故障。首先,我们需要了解“concrt140.dll”是Microsoft Visual Studio中用于实现并行计算框架的重要组件,它的缺失会导…

HarmonyOS 鸿蒙应用开发(十、第三方开源js库移植适配指南)

在前端和nodejs的世界里,有很多开源的js库,通过npm(NodeJS包管理和分发工具)可以安装使用众多的开源软件包。但是由于OpenHarmony开发框架中的API不完全兼容V8运行时的Build-In API,因此三方js库大都需要适配下才能用。 移植前准备 建议在适…

RabbitMQ的延迟队列实现[死信队列](笔记二)

上一篇已经讲述了实现死信队列的rabbitMQ服务配置&#xff0c;可以点击: RabbitMQ的延迟队列实现(笔记一) 目录 搭建一个新的springboot项目模仿订单延迟支付过期操作启动项目进行测试 搭建一个新的springboot项目 1.相关核心依赖如下 <dependency><groupId>org.…

Linux | 进度条 | Linux简单小程序 | 超级简单 | 这一篇就够了

进度条—实例示范 在学习了基本的Linux指令&#xff0c;Linux上vim编译器等等之后&#xff0c;我们就来学习写代码喽~ 今天就给大家详细讲解一下进度条的编写&#xff0c;需要的效果如下图&#xff1a; 进度条—必备知识 回车和换行 在我们学习编程语言中&#xff0c;经常…

【力扣 - 回文链表】

题目描述 给你一个单链表的头节点 head &#xff0c;请你判断该链表是否为回文链表。如果是&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 提示&#xff1a; 链表中节点数目在范围[1, 100000] 内 0 < Node.val < 9 方法一&#xff1a;将值复制到数…

jsp教材管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 教材管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&…

网工内推 | 高级网工,IE认证优先,最高15K,五险一金

01 丰沃创新(北京)科技有限公司 招聘岗位&#xff1a;高级网络工程师 职责描述&#xff1a; 1. 主要负责移动营运商数据中心机房网络的维护工作&#xff1b; 2. 负责防火墙策略调整&#xff0c;负责交换机路由器等网络设备的配置&#xff1b; 3. 负责云专线的入网配置&#…