Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于 ArcGIS 的坐标系转换

基于 ArcGIS 的坐标系转换

作者头像
被水淹没
发布于 2023-02-25 11:21:23
发布于 2023-02-25 11:21:23
3K00
代码可运行
举报
文章被收录于专栏:迈向架构师迈向架构师
运行总次数:0
代码可运行

基于 ArcGIS 的坐标系转换

在开发 GIS 相关系统的时候,我们常常遇见坐标转换的问题。

这里先大致介绍下坐标系的原理。

坐标系

我们常用到的坐标系一般分为两大类

  1. 地理坐标系(GCS)
  2. 投影坐标系(PCS)

地理坐标系就是把地球当成一个球体来看,以球心为参照点,通过经纬度来定位某个坐标点。

投影坐标系是指把地球这个球体垂直投影在一个平面。

图片引用自 数据规划那点事儿

投影坐标系

由于我们地球并非一个完美球体,而是凹凸不平的球体。面对地球表面的复杂地理环境,各地所使用的坐标系也就各不相同。

凹凸不平的地球

我国常见的地理坐标系有:

  • 北京54 坐标系
  • 西安80 坐标系
  • WGS-84 坐标系
  • 大地2000 坐标系
  • 其他独立坐标系(如火星坐标系、百度坐标系等,做了一定的变形与加密,目的是为了保护真实坐标,防止被恶意利用。)

地理坐标系进行水平面投影后,即可得到投影坐标系,常用投影坐标系

  • UTM 投影
  • 高斯-克吕格投影
  • 兰伯特正形圆锥投影

WKID

这里还得介绍下 WKID,由于各地使用了不同的坐标系、不同的投影方式、不同的投影分带,我们为众多的坐标系统打上一个唯一编号,也就是 WKID。

WKID 是一个ID,它的内容被称为WKT(Well-known Text),WKT 的二进制表现方式叫做WKB(well-known binary) 。WKT 包含内容如下:

  1. 总坐标系名
  2. 地理图形坐标系统名
  3. 基准面定义
  4. 椭球体的名字。长半轴和反扁率
  5. 本初子午线名和其与格林威治子午线的偏移值
  6. 投影方法类型(如横轴莫卡托)
  7. 投影参数列表(如中央经线等)
  8. 一个单位的名称和其米和弧度单位的转换参数
  9. 轴线的名称和顺序
  10. 在预定义的权威坐标系中的编码(如 EPSG)

举例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
["UTM Zone 19, Northern Hemisphere",(总体投影坐标带名字)
  GEOGCS["Geographic Coordinate System",(地理坐标系统名)      
    DATUM["NAD83",(基准面)
      SPHEROID["GRS 1980",6378137,298.2572220960423]椭球体,半径和反偏率
    ],
    PRIMEM["Greenwich",0],(中央经线,子午线)
    UNIT["degree",0.0174532925199433](转换因子 ""degree",0.0174532925199433" ""degree",0.0174532925199433")
  ],
  PROJECTION["Transverse_Mercator"], (投影方式)
  PARAMETER["latitude_of_origin",0], (起始经度)
  PARAMETER["central_meridian",-69], (中央经线)
  PARAMETER["scale_factor",0.9996],  (缩放比率)
  PARAMETER["false_easting",500000], (坐标整体向东偏移)
  PARAMETER["false_northing",0],     (坐标向北偏移)
  UNIT["Meter",1]                    (单位米)
]                     

重点主题来了

在开发 GIS 相关系统的时候,我们常常遇见坐标转换的问题。

比较常见的转换,例如WGS-84百度BD09坐标系、转大地2000坐标系等网上都有很多实现,国内的地图服务商(如百度、腾讯等)也有提供转换接口可供使用,但当你遇到一些比较特别的坐标系的时候,就需要自己来转换了。

经调研,有以下几种实现方式:

  • 手动实现
  • GDAL (OSGeo)
  • GeoTools (OSGeo)
  • ArcGIS

手动实现:通过三参数七参数来计算出不同坐标系的转换结果,由于计算过程复杂,参数一般也不公开,需要向政府申请获取,总体来说比较麻烦。

GDAL:GDAL 是栅格和矢量地理空间数据格式的翻译库,隶属于OSGeo(开源地理空间基金会)下的开源产品,它提供了任意栅格/矢量文件转换与处理。(如果有需要进行栅格/矢量文件转换与处理的话,可以选择 GDAL-ORG)

GeoTools:也隶属于OSGeo(开源地理空间基金会)下的开源产品,为地理空间数据提供工具。(如果单纯转坐标系,可以选择,GeoTools 只需引入包即可进行转换,很方便)

ArcGIS:由ESRI出品的一个地理信息系统系列软件。

考虑到后续可能要转 GIS 地图,所以这里选了 ArcGIS 的方式来转换坐标系。

java8 最高可使用100.4.0版本,如果是 java11 可以自己填最新的 ArcGIS 版本号。

正式开始

这里先放个调用 ArcGIS 的示例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SpatialReference 空间参考坐标系A = SpatialReference.create( wkidA );
SpatialReference 空间参考坐标系B = SpatialReference.create( wkidB );
Point A= new Point(x, y, 空间参考坐标系A);
Point B= (Point) GeometryEngine.project(A,空间参考坐标系B);

如果是某地区的独立坐标,可能没有 wkid,这时就得自己编写 WKT 文本(相当于自定义一个 wkid)。

这里是去官方拷了下最接近我的需求的 CGCS2000_3_Degree_GK_CM_114E的 WKT 文本,然后稍微修改了下变成了符合我需要的坐标系:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 自定义一个空间参考坐标系    
String xx2000WktMercator = "PROJCS[\"CGCS2000_3_Degree_GK_CM_114E\"" +
        ",GEOGCS[\"GCS_China_Geodetic_Coordinate_System_2000\"" +
        ",DATUM[\"D_China_2000\"" +
        ",SPHEROID[\"CGCS2000\",6378137.0,298.257222101]]" +
        ",PRIMEM[\"Greenwich\",0.0]" +
        ",UNIT[\"Degree\",0.0174532925199433]]" +
        ",PROJECTION[\"Gauss_Kruger\"]" +
        ",PARAMETER[\"False_Easting\",500000.0]" +
        ",PARAMETER[\"False_Northing\",0.0]" +
        ",PARAMETER[\"Central_Meridian\",114.0]" +
        ",PARAMETER[\"Scale_Factor\",1.0]" +
        ",PARAMETER[\"Latitude_Of_Origin\",0.0]" +
        ",UNIT[\"Meter\",1.0]]";

// 创建自定义独立坐标系
SpatialReference xx2000sp = SpatialReference.create(xx2000WktMercator);
// 创建 WGS84 坐标系
SpatialReference wgs84sp = SpatialReference.create(4326);

定义了需要的坐标系后就可以实现从一个独立坐标系转换为 WGS84 的功能,然后再从 WGS84 转成其他的坐标系,如百度的 BD09 等:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
// 自定义独立坐标系的点数据
Point pointXx2000 = new Point(lon, lat, xx2000sp);
// 把独立坐标系的点数据转化为 WGS84 点数据
Point pointWgs84 = (Point) GeometryEngine.project(pointXx2000, wgs84sp);
// 获取点数据中的经纬度, X为经度lon,Y为纬度lat
double pointWgs84X = pointWgs84.getX();
double pointWgs84Y = pointWgs84.getY();

环境配置

ArcGIS 不像 GeoTools 那么方便(直接导包即可使用),所以需要配置一下。

第一步:设置私服地址

由于 ArcGIS 的 maven 库是私服的,需要自己设置私服地址。

maven设置:settings.xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>*,!arcgis,!arcgis-plugin</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

重点在<mirrorOf>*,!arcgis,!arcgis-plugin</mirrorOf>,这里我 maven 之前设置过私服,所以要排除掉 ArcGIS 的私服下载,这样的话 maven 会使用项目POM.xml中的自定义配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--自定义的私服:包括阿里云私服以及arcgis地图工具的私服 -->
<repositories>
    <repository>
        <id>aliyun</id>
        <name>aliyun Repository</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>arcgis</id>
        <url>https://esri.bintray.com/arcgis</url>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>arcgis-plugin</id>
        <url>https://esri.bintray.com/arcgis</url>
    </pluginRepository>
</pluginRepositories>

<dependencies>
    <!--ArcGIS Runtime SDK jar dependency  java8最高使用100.4.0版本,如果是java11可以自己填最新版本号-->
    <dependency>
        <groupId>com.esri.arcgisruntime</groupId>
        <artifactId>arcgis-java</artifactId>
        <version>100.4.0</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <!--ArcGIS Java Maven Plugin-->
        <plugin>
            <groupId>com.esri.arcgisruntime</groupId>
            <artifactId>arcgis-java-maven-plugin</artifactId>
            <version>1.0</version>
            <configuration>
                <!--specify the SDK version-->
                <version>100.4.0</version>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.0</version>
            <configuration>
                <release>11</release>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.6.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>java</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>
                <mainClass>com.mycompany.app.App</mainClass>
            </configuration>
        </plugin>
        <plugin>
            <groupId>io.takari</groupId>
            <artifactId>maven</artifactId>
            <version>0.7.4</version>
        </plugin>
    </plugins>
</build>

plugin 填写后可以直接执行 maven 命令下载 ArcGIS 依赖库

Mavendependency:unpack

或者在 IDEA 里双击执行:

等同 Mavendependency:unpack

以上操作会自动将本地库下载解压到本机的$USER_HOME/.arcgis文件夹中:

$USER_HOME/.arcgis

也可以直接手动把db文件夹下的.arcgis解压到上面的文件夹中。

API 将自动在此目录中查找以查找本机库(也可以手动指定,如设置环境变量或放至应用根目录,请查阅官方sdk指南)。

如果未正确配置本机库,你将看到类似于以下内容的异常:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Caused by: java.lang.RuntimeException: Could not find runtime in any of:
- A directory specified by calling ArcGISRuntimeEnvironment.setInstallDirectory()
- The current directory C:\Users\johndoe\my-project-directory
- A location specified by the environment variable ARCGISRUNTIMESDKJAVA_100_4_0
- Within the ".arcgis" directory in the user's home path C:\Users\johndoe\.arcgis

手动设置本地库的方法:

设置环境变量:ARCGISRUNTIMESDKJAVA_10****** 指向arcgis的根目录(环境变量名需要使用当前版本的变量名,而 arcgis 本地依赖库目录无须版本号):

配置环境变量 ARCGISRUNTIMESDKJAVA_100_4_0 指向自定义文件夹 D:testArcGIS

或者直接把本地依赖库放到应用根目录里:

应用根目录

实例

自己实际用的工具类示例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import com.esri.arcgisruntime.geometry.GeometryEngine;
import com.esri.arcgisruntime.geometry.Point;
import com.esri.arcgisruntime.geometry.SpatialReference;
/**
* 地图坐标转换工具类
*/
public class MapCoordTransUtils {
    /**
     * fs2000 转 wgs84
     */
    private static CoordinatesDTO fs2000ToWgs84(Double lat, Double lon) {
        // 自定义一个空间参考坐标系:佛山2000独立系 
        // 通过zf公开文件得知的值:中央子午线113度和700KM偏移
        String fs2000WktMercator = "PROJCS[\"CGCS2000_3_Degree_GK_CM_113E\"" +
                ",GEOGCS[\"GCS_China_Geodetic_Coordinate_System_2000\"" +
                ",DATUM[\"D_China_2000\"" +
                ",SPHEROID[\"CGCS2000\",6378137.0,298.257222101]]" +
                ",PRIMEM[\"Greenwich\",0.0]" +
                ",UNIT[\"Degree\",0.0174532925199433]]" +
                ",PROJECTION[\"Gauss_Kruger\"]" +
                ",PARAMETER[\"False_Easting\",700000.0]" +
                ",PARAMETER[\"False_Northing\",0.0]" +
                ",PARAMETER[\"Central_Meridian\",113.0]" +
                ",PARAMETER[\"Scale_Factor\",1.0]" +
                ",PARAMETER[\"Latitude_Of_Origin\",0.0]" +
                ",UNIT[\"Meter\",1.0]]";

        SpatialReference fs2000sp = SpatialReference.create(fs2000WktMercator);
        SpatialReference wgs84sp = SpatialReference.create(4326);
        // FS2000点数据
        Point pointFs2000 = new Point(lon, lat, fs2000sp);
        // 把FS2000点数据转化为WGS84点数据
        Point pointWgs84 = (Point) GeometryEngine.project(pointFs2000, wgs84sp);
        // 获取点数据中的经纬度, X为经度lon,Y为纬度lat
        double pointWgs84X = pointWgs84.getX();
        double pointWgs84Y = pointWgs84.getY();
        return new CoordinatesDTO(pointWgs84Y, pointWgs84X);
    }

    /**
     * 佛山2000转百度09
     *
     * @param lat =y
     * @param lon =x
     * @return
     */
    public static CoordinatesDTO fs2000ToBD09(Double lat, Double lon) {
        // 先转wgs84
        CoordinatesDTO wgs84 = fs2000ToWgs84(lat, lon);
        // 把wgs84点坐标转化为bdo9点坐标
        // 这里是直接使用别人写好的工具类:
        // https://blog.csdn.net/a13570320979/article/details/51366355 
        // 而且改名为:MapCoordConversionUtils
        double[] gps84ToBd09 = MapCoordConversionUtils.gps84_To_bd09(wgs84.getLat(), wgs84.getLon());
        return new CoordinatesDTO(gps84ToBd09[0], gps84ToBd09[1]);
    }
}

自己 build 用的 dockerfile

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 这里填写中间件版本,不填版本号默认最新版
FROM tomcat:9.0.21-jdk8

# 使用root用户
USER root

# 进入目录
WORKDIR /usr/local/

# 创建项目文件夹,并将外部文件夹内容添加进去
RUN mkdir project
ADD ./project ./project
RUN cd project

# 配置环境变量 
ENV ARCGISRUNTIMESDKJAVA_100_4_0 /usr/local/project

# 国内镜像
RUN sed -i s@/archive.ubuntu.com/@/mirrors.aliyun.com/@g /etc/apt/sources.list
# 安装环境 arcgis 需要 [libgl1-mesa-glx]
RUN apt-get clean && apt-get update && apt install -y nano vim libgl1-mesa-glx

#开放端口
EXPOSE 8080

#启动命令
CMD ["java","-jar","/usr/local/project/springboot.jar","--spring.profiles.active=docker"]

疑难杂症

找不到依赖库解决方法

  • Windows
    • 下载DirectX4.0,安装dll以及C++
  • Linuxdocker也适用):
    • sudo apt update
    • sudo apt install libgl1-mesa-glx
    • 安装 libgl1-mesa-glx 依赖 ↑

可供参考资料

ArcGIS Runtime SDK 官方文档[1]

WKID 官方文档[2]

GIS坐标系转换指南-叫我三三就好[3]

geotools 官网[4]

gdal 官网[5]

gdal 坐标参考系和坐标转换教程[6]

[1]

ArcGIS Runtime SDK 官方文档: https://developers.arcgis.com/java/get-started/

[2]

Projected Coordinate Systems(WKID 官方文档): https://developers.arcgis.com/javascript/3/jshelp/pcs.html

[3]

这可能是最简单的GIS坐标系转换指南了-叫我三三就好: https://zhuanlan.zhihu.com/p/122217326

[4]

geotools 官网: https://www.geotools.org/

[5]

gdal官网: https://gdal.org/

[6]

gdal 官网的坐标参考系和坐标转换教程: https://gdal.org/tutorials/osr_api_tut.html

今天的分享就先到这,本文主要讲了如何使用 ArcGIS 来转换坐标系数据。

下一篇分享如何使用 GDAL 实现任意栅格/矢量文件转换。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 迈向架构师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GIS世界里坐标系“黑话”
世界大地测量系统(World geodetic system,简称WGS)是指1960年以来, 由美国国防制图局(DMA)建立的四个世界大地测量系统(WGS60、WGS66、WGS72和WGS84)的统称
追风骚年
2021/11/19
2.5K0
使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换
我使用GDAL库写了四个函数分别进行投影坐标与地理坐标(经纬度)之间的转换,投影坐标和图上坐标(行列号)之间的转换。有需要的朋友可以参考。 直接上代码吧,因为代码很简单(Python版本)。
卡尔曼和玻尔兹曼谁曼
2019/01/22
9.1K0
使用GDAL进行影像投影坐标、地理坐标、图上坐标的转换
经纬度坐标和投影坐标的转换
昨天,有朋友要我帮忙看看一个将经纬度坐标转换成墨卡托投影(墨卡托投影有很多变种,我也不知道他说的是哪一种)的程序,他说转换以后的坐标精度太差。当时,他的程序没怎么看懂,然后研究了一下Geotools,自己写了一个转换小程序,很简单的几行代码!
卡尔曼和玻尔兹曼谁曼
2019/01/22
3K0
常用坐标系
    随着接触的地图种类越来越多,每种产品对地图服务的坐标系的要求不同,今天遇到了整理的好文,整理记录分享。
sunsky
2022/06/14
4.7K0
常用坐标系
关于坐标系——在规划常用软件中
规划工作中最常接触的就是空间数据了,我们的操作也常常是在某个具体空间上。为了方便所有空间数据的统一处理,我们需要引入一个中间量,所有数据都参照它,“它”就是坐标系了。我们常用的Sketch、CAD、ArcGIS里面都是有坐标系的,如果我们可以建立起一个坐标系的概念,那么这些软件中的不同数据都可以拉通使用了(还包括从网络上获取到的各种数据)。
Sidchen
2020/08/02
1.8K0
Java【代码 04】坐标系说明+WGS84\GCJ02\BD09坐标系转换工具+Java坐标系转换及验证源代码分享(粘贴可用)
开发地图应用服务时,一定会接触到各种坐标系,而保证坐标系的正确与合理是一切数据分析的前提,总的来说,坐标系可以分为两大类:地理坐标系GCS(Geographic Coordinate System)和投影坐标系PCS(Projected Coordinate System),地理坐标系进行地图投影后就变成了投影坐标系。例如我们常见的世界地图,使用的就是一种墨卡托投影。
yuanzhengme
2025/07/24
1880
Python批量将投影坐标系转为地理坐标系
  本文介绍基于Python语言中的ArcPy模块,批量将多个遥感影像由投影坐标系转为地理坐标系的方法。
疯狂学习GIS
2024/09/17
4140
Python批量将投影坐标系转为地理坐标系
GDAL坐标转换
最近研究了一下GIS、测绘学的坐标转换的问题,感觉大部分资料专业性太强,上来就是一通专业性论述;但感觉对于相关从业者来说,其实不必了解那么多背景知识的;就通过GDAL这个工具,来简单总结下坐标转换相关的问题。 GDAL坐标转换其实也是调用proj4来实现,但是proj4有个特别麻烦的地方,就是坐标系描述的部分特别繁复,需要对专业知识有一定的了解。使用GDAL则相对简单很多。
charlee44
2022/05/05
2K0
GDAL坐标转换
矢量数据投影转换
接着上一篇博文中,我们得到了WGS84坐标系下的中国省区图,而我们一般中国地图中使用的是割圆锥投影。
卡尔曼和玻尔兹曼谁曼
2019/01/22
2K0
GDAL对缺失投影定义的AIG文件根据经纬度坐标提取像元值
了解到gdal能够完成这项任务,但是之前没有接触过gdal,所以现在网络上查找资料,发现如下链接所示的教程。
用户8908394
2021/08/10
2K0
GDAL对缺失投影定义的AIG文件根据经纬度坐标提取像元值
如何处理地图投影转换
最近学习地理信息可视化总是遇到投影的麻烦,包括前段时间输出两篇关于simple features的分享中,其中没有特别处理投影的问题,老司机一看就能看出其中存在的投影问题。
数据小磨坊
2018/08/16
1.9K0
如何处理地图投影转换
FreeJTS部标视频平台:车载坐标系与地图坐标系转换
最近在开发部标平台中进行轨迹回放的定位接口中,返发现回的是WSG-84坐标系下的经纬度信息,但项目前端使用的是高德地图,发现位置有偏移。经了解,需要进行车载坐标系和地图坐标系进行转换。
TSINGEYE清眸物联
2023/01/04
1K0
FreeJTS部标视频平台:车载坐标系与地图坐标系转换
让GIS三维可视化变得简单-地理坐标系统
地理位置也就是坐标说是 GIS 的灵魂不为过吧,像天气预报、火箭发射包括地震、火山等事故发生时,新闻媒体就会说东经 XX 度、北纬 YY 度发生了什么什么,还有高德百度的地图导航、定位等等都需要用到坐标系统,因为没有准确的位置信息就无法表达地物的位置关系,地图查询分析等等也就无从谈起了
isboyjc
2022/03/28
1.2K0
让GIS三维可视化变得简单-地理坐标系统
投影坐标系转地理坐标系的GDAL实现
  在之前的博客中,我们曾多次介绍过将图层的地理坐标系转为投影坐标系的方法,也就是投影操作——例如ArcGIS矢量图层投影与地理坐标系转为投影坐标系——ArcMap,以及Google Earth Engine谷歌地球引擎地理坐标系、投影坐标系的变换与重投影,还有ArcMap通过模型构建器导出地理与投影坐标系转换的Python代码等。而在本文中,我们将反过来,介绍把一个栅格图像原本的投影坐标系转为地理坐标系的方法。
疯狂学习GIS
2024/04/12
6000
投影坐标系转地理坐标系的GDAL实现
GDAL命令:一行代码转换坐标系
  本文介绍基于gdal模块,在命令行中通过GDAL命令的方式(不是Python或者C++代码,就是gdal模块自身提供的命令行工具),对栅格遥感影像数据加以投影,即将原本的地理坐标系转为投影坐标系的方法。
疯狂学习GIS
2024/03/18
1.1K0
GDAL命令:一行代码转换坐标系
利用ArcGIS Python批量处理地理数据的坐标系
试想一下,你是一名GIS工作新人,你的领导总是让你做一些基础的工作,这一次他交给你政府和甲方提供的shp格式用地数据、兴趣点数据、街道数据等,你需要将分散在各个文件夹的一些数据集转换为统一的坐标系,然后将其导入到地理数据库中。你可能会在ArcGIS Pro中手动完成这些工作,但是如果你需要重复这些工作,那么手动完成这些工作就会变得很繁琐。在这种情况下,你可以使用30行Python代码自动化完成这些工作流程,然后你就可以摸鱼了。。。
renhai
2023/11/24
5880
利用ArcGIS Python批量处理地理数据的坐标系
WKT_WK是什么品牌
WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。它的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。
全栈程序员站长
2022/09/20
7330
Web墨卡托公开的小秘密
所谓地图投影,是利用一定数学法则把地球表面的经、纬线转换到平面上的理论和方法。由于地球是一个赤道略宽两极略扁的不规则的梨形球体,故其表面是一个不可展平的曲面,所以运用任何数学方法进行这种转换都会产生误差和变形,为按照不同的需求缩小误差,就产生了各种投影方法,eg:墨卡托投影,高斯克吕格投影, Lambert__投影,UTM__投影…
用户9580384
2022/10/05
3K0
Web墨卡托公开的小秘密
从零开始搭建一个GIS开发小框架(四)——扩展功能:CGCS2000坐标转WGS84坐标
2000国家大地坐标系,是我国当前最新的国家大地坐标系,英文名称为China Geodetic Coordinate System 2000,英文缩写为CGCS2000。
天堂向左
2022/12/01
1.8K0
从零开始搭建一个GIS开发小框架(四)——扩展功能:CGCS2000坐标转WGS84坐标
ArcMap通过模型构建器导出地理与投影坐标系转换的Python代码
  本文介绍在ArcMap软件中,通过创建模型构建器(ModelBuilder),导出地理坐标系与投影坐标系之间相互转换的Python代码的方法。
疯狂学习GIS
2022/08/10
1K0
ArcMap通过模型构建器导出地理与投影坐标系转换的Python代码
推荐阅读
相关推荐
GIS世界里坐标系“黑话”
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验