supermap idesktop产品postgis数据源支持地方坐标系

本文主要是介绍supermap idesktop产品postgis数据源支持地方坐标系,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者:Neshoir

背景

​ 在supermap idesktop早期版本中postgis数据源不支持地方坐标系,但项目上的矢量数据坐标系均为南京地方坐标系,目前需要用supermap平台,数据需迁移到postgis数据源,针对数据集重设地方坐标系不起作用。原因是不是epsg标准坐标系,postgis不支持。由于postgis支持扩展,所以咱们可以自实现。

数据
  • 样例数据zf_jnwg_1.shp文件,带有南京地方坐标系信息。
步骤
  1. 生成wkt和proj格式的坐标系信息,借助于gdalsrsinfo工具,如截图。

在这里插入图片描述

  1. 在pg库中,将得到的南京地方坐标系的wkt和proj信息插入到spatial_ref_sys表中,定义epsg为9999。
INSERT INTO "spatial_ref_sys" ("srid","auth_name","auth_srid","srtext","proj4text") VALUES (9999,'EPSG',9999,'PROJCS["NJ08_118_50_CM",GEOGCS["GCS_GRS_1980",DATUM["Not_specified_based_on_GRS_1980_ellipsoid",SPHEROID["GRS_1980",6378137,298.257222101]],PRIMEM["Greenwich",0],UNIT["Degree",0.017453292519943295]],    PROJECTION["Transverse_Mercator"],PARAMETER["false_easting",500000],PARAMETER["false_northing",0],    PARAMETER["central_meridian",118.833333333],PARAMETER["latitude_of_origin",0],    PARAMETER["standard_parallel_1",0],PARAMETER["standard_parallel_2",0],PARAMETER["scale_factor",1],    UNIT["Meter",1]]','+proj=tmerc +lat_0=0 +lon_0=118.833333333 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs ');
  1. 在idesktop中打开pg数据源,导入该数据集,查看坐标系为4490,查看数据集范围值是投影坐标系下的坐标值。

在这里插入图片描述

在这里插入图片描述

  1. 在pg库更新该数据集的几何对象的坐标系为9999。
# 更新几何对象的坐标系
SELECT UpdateGeometrySRID('zf_jnwg','smgeometry',9999);
# 刷新pg,触发事务
# 查询其对象的坐标系,可以从结果中看到已经是9999了。
SELECT st_srid("zf_jnwg".smgeometry) FROM "zf_jnwg";
# 查询数据集在系统表中的坐标系,可以从结果中看到已经是9999了。
SELECT geometry_columns.srid FROM geometry_columns WHERE geometry_columns.f_table_name='zf_jnwg';
  1. 在idesktop对针对zf_jnwg数据集重设南京地方坐标系,设置后关闭pg数据源和刷新pg库,这一步关键,需要触发smregister表中该数据集坐标系信息的修改。
  • idesktop里查看结果

    在这里插入图片描述

    • pg库查看该数据集的坐标系情况
    SELECT smregister.smsrid,smregister.smprojectinfo FROM smregister WHERE smregister.smdatasetname='zf_jnwg';
    

    在这里插入图片描述

结论
  • 能正常做浏览,编辑,叠加分析,导出shp等操作,结果都是正确,arcmap和qgis也能正常浏览也能识别到其坐标系。但是不保存在生产环境上的复杂操作会有任何风险。

    在这里插入图片描述

这篇关于supermap idesktop产品postgis数据源支持地方坐标系的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/744998

相关文章

java实现多数据源切换方式

《java实现多数据源切换方式》本文介绍实现多数据源切换的四步方法:导入依赖、配置文件、启动类注解、使用@DS标记mapper和服务层,通过注解实现数据源动态切换,适用于实际开发中的多数据源场景... 目录一、导入依赖二、配置文件三、在启动类上配置四、在需要切换数据源的类上、方法上使用@DS注解结论一、导入

Spring Boot配置和使用两个数据源的实现步骤

《SpringBoot配置和使用两个数据源的实现步骤》本文详解SpringBoot配置双数据源方法,包含配置文件设置、Bean创建、事务管理器配置及@Qualifier注解使用,强调主数据源标记、代... 目录Spring Boot配置和使用两个数据源技术背景实现步骤1. 配置数据源信息2. 创建数据源Be

Spring Boot集成Druid实现数据源管理与监控的详细步骤

《SpringBoot集成Druid实现数据源管理与监控的详细步骤》本文介绍如何在SpringBoot项目中集成Druid数据库连接池,包括环境搭建、Maven依赖配置、SpringBoot配置文件... 目录1. 引言1.1 环境准备1.2 Druid介绍2. 配置Druid连接池3. 查看Druid监控

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

Python多重继承慎用的地方

《Python多重继承慎用的地方》多重继承也可能导致一些问题,本文主要介绍了Python多重继承慎用的地方,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录前言多重继承要慎用Mixin模式最后前言在python中,多重继承是一种强大的功能,它允许一个

SpringBoot多数据源配置完整指南

《SpringBoot多数据源配置完整指南》在复杂的企业应用中,经常需要连接多个数据库,SpringBoot提供了灵活的多数据源配置方式,以下是详细的实现方案,需要的朋友可以参考下... 目录一、基础多数据源配置1. 添加依赖2. 配置多个数据源3. 配置数据源Bean二、JPA多数据源配置1. 配置主数据

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题

《SpringBoot利用dynamic-datasource-spring-boot-starter解决多数据源问题》dynamic-datasource-spring-boot-starter是一... 目录概要整体架构构想操作步骤创建数据源切换数据源后续问题小结概要自己闲暇时间想实现一个多租户平台,