1. 基于SpatialReference对象的坐标转换

1.1 示例简介

Geometry类是所有几何形体对象的父类,它是一个抽象类,IGeometry接口定义了所有的几何对象都有的方法和属性。

下面介绍基于Geometry对象的坐标转换的主要接口。

Transform方法

函数原型:

bool Transform(ISpatialReference spatialReference);

bool Transform(CoordinateTransformation coordTransform);

函数说明:

该方法用于几何体的投影转换,当参数为坐标转换对象时投影转换过程中会忽略原来的空间参考。

参数说明:

名称

说明

spatialReference

空间参考对象

coordTransform

坐标转换对象

返回值

投影转换成功时为true,否则为false

1.2 示例代码

项目路径

百度云盘地址下/PIE示例程序/SpatialReference. CoordinateTransform

视频路径

百度云盘地址下/PIE视频教程/ Geometry的坐标转换avi

示例代码

  private void GeometryTest()
{
// 空间参考WKT字符串
string str_BJ54 = "GEOGCS[\"GCS_Beijing_1954\",DATUM[\"D_Beijing_1954\",
SPHEROID[\"Krasovsky_1940\",6378245,298.3]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",
0.017453292519943295]]";
string str_BJ54_18 = "PROJCS[\"Beijing_1954_GK_Zone_18\",GEOGCS[\"GCS_Beijing_1954\",
DATUM[\"D_Beijing_1954\",
SPHEROID[\"Krasovsky_1940\",6378245,298.3]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",
0.017453292519943295]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",
],PARAMETER[\"False_Northing\",0],PARAMETER[\"Central_Meridian\",105],PARAMETER
[\"Scale_Factor\",1],PARAMETER[\"Latitude_Of_Origin\",0],UNIT[\"Meter\",1]]"; ISpatialReference spatialReference1 = new GeographicCoordinateSystem();
spatialReference1.ImportFromWkt(str_BJ54);
1 ISpatialReference spatialReference2 = new ProjectedCoordinateSystem();
spatialReference2.ImportFromWkt(str_BJ54_18); // 定义点
IPoint point = new PIE.Geometry.Point();
point.PutCoords(, , 0.0); // 设置空间参考
IGeometry geo = point as IGeometry;
geo.SpatialReference = spatialReference1; // 空间参考变换
geo.Transform(spatialReference2);
}

2. 基于CoordinateTransformation对象的坐标转换

2.1 示例简介

同一个地图上显示的地理数据的空间参考必须是一致的,因此需要实现空间坐标系的相互转换。ICoordinateTransformation接口主要实现了获取源坐标系统和目标坐标系统、实现坐标转换的方法。

下面对基于CoordinateTransformation对象的坐标转换的方法进行介绍。

TransformEx方法

函数原型:

bool TransformEx(int count, array<double>pX, array<double>pY,  array<double> pZ, array<int> pSuccess);

函数说明:

该方法用于坐标系统的坐标转换。

参数说明:

名称

说明

count

要转换的个数

pX

X坐标

pY

Y坐标

pZ

Z坐标

pSuccess

转换结果数组

返回值

坐标转换是否成功,转换成功返回1,否则返回0

2.2 示例代码

示例代码

   private void CoordinateTransformationTest()
{
// 空间参考WKT字符串
string str_BJ54 = "GEOGCS[\"GCS_Beijing_1954\",DATUM[\"D_Beijing_1954\",
SPHEROID[\"Krasovsky_1940\",6378245,298.3]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",
0.017453292519943295]]";
string str_BJ54_18 = "PROJCS[\"Beijing_1954_GK_Zone_18\",GEOGCS[\"GCS_Beijing_1954\",
DATUM[\"D_Beijing_1954\",
SPHEROID[\"Krasovsky_1940\",6378245,298.3]],PRIMEM[\"Greenwich\",0],UNIT[\"Degree\",
0.017453292519943295]],PROJECTION[\"Transverse_Mercator\"],PARAMETER[\"False_Easting\",
],PARAMETER[\"False_Northing\",0],PARAMETER[\"Central_Meridian\",105],PARAMETER
[\"Scale_Factor\",1],PARAMETER[\"Latitude_Of_Origin\",0],UNIT[\"Meter\",1]]"; // 生成空间参考对象
ISpatialReference spatialReference1 = SpatialReferenceFactory.CreateSpatialReference(str_BJ54);
ISpatialReference spatialReference2 = SpatialReferenceFactory.CreateSpatialReference(str_BJ54_18); // 坐标转换
int count = ;
double[] px = new double[] { , , };
double[] py = new double[] { , , };
double[] pz = new double[] { , , };
int[] pSuccess = new int[];
CoordinateTransformation coordTF = new CoordinateTransformation(spatialReference1, spatialReference2);
coordTF.TransformEx(count, px, py, null, pSuccess);
}

PIE SDK Geometry的坐标转换的更多相关文章

  1. PIE-SDK For C++ Geometry的坐标转换

    1. 基于SpatialReference对象的坐标转换 1.1 示例简介 Geometry类是所有几何形体对象的父类,它是一个抽象类,IGeometry接口定义了所有的几何对象都有的方法和属性. 下 ...

  2. PIE SDK屏幕坐标和地图坐标转换

    1. 功能简介 屏幕坐标和地图坐标转换,就是字面意思,将电脑屏幕的坐标转换为带有空间信息的地图坐标,主要运用PIE SDK地图控件的ToMapPoint()方法,而地图坐标转换为设备坐标(屏幕),用的 ...

  3. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  4. PIE SDK与GeoServer结合说明文档

    1.  GeoServer简介 GeoServer是OpenGIS Web服务器规范的J2EE实现的社区开源项目,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新.删除.插入操 ...

  5. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  6. PIE SDK 坐标系创建、定义、对比

    1.    坐标系创建 1.1    从WKT字符串导入空间参考 ISpatialReference接口是一个任何空间参考对象都实现的接口,它包含了所有空间参考对象都公有的方法和属性,如获得空间参考对 ...

  7. PIE SDK Command、Tool、Control的调用和拓展

    1.功能简介 在一个项目中,是通过小组成员共同开发的,难以避免的是当项目功能集成的时候会出现很多兼容性问题,开发讲究高内聚低耦合,利用Command.Tool和Control的使用,可以提升集成的效率 ...

  8. PIE SDK矢量自定义渲染

    1. 功能简介 PIE SDK中关于矢量渲染提供了多种方案,包括简单渲染.分级渲染.唯一值渲染,这几种渲染方式具有一定的通用性,可以满足用户绝大多数的需求. 当面对复杂的业务,当前渲染方案无法满足用户 ...

  9. PIE SDK元素的保存与打开

    1.功能简介 绘制元素之后需要对元素进一步的保存操作,可以利用PIE SDK的ExportElementsCommand命令保存成xml格式的文件,打开元素可以利用ImportElementsComm ...

随机推荐

  1. [GO]二维数组的介绍

    package main import "fmt" func main() { ][]int // 有几个方括号就是几维数据 // 有几个方括号就需要几重循环 k := ; i&l ...

  2. ASP.NET MVC5 Authentication Filters执行链

    注意区分认证和授权: The following  are the differences in short: Authentication(认证): It is a process of verif ...

  3. 平方十位数——第八届蓝桥杯JavaB组(国赛)第一题

    原创 标题:平方十位数 由0~9这10个数字不重复.不遗漏,可以组成很多10位数字.这其中也有很多恰好是平方数(是某个数的平方). 比如:1026753849,就是其中最小的一个平方数. 请你找出其中 ...

  4. HTML5+CSS3从入门到精通随书光盘 ISO 镜像视频教程​

    HTML5+CSS3从入门到精通(清华社“视频大讲堂”大系)通过基础知识+中小实例+综合案例的方式,讲述了用HTML5+ CSS3设计构建网站的必备知识,相对于权威指南.高级程序设计.开发指南同类图书 ...

  5. Arduino I2C + DS1307实时时钟

    主要特性 DS1307是Maxim的串行.I2C实时时钟芯片.主要特性有: 工作电压:主电源电压4.5~5.5V,电池电压2.0~3.5V 功耗:电池供电.备份模式时<500nA 接口:I2C, ...

  6. thedao

    TheDao 简化版解释 the Dao 合约 contract f1{ function transfer() { if (acccount[m]>=100) { m.send(100) ac ...

  7. Ubuntu chmod 命令可以用来修改文件或文件夹的读写权限

    chmod 命令有两种使用方式 —————————————————————————— (1)chmod [ u / g / o / a ] [ + / - / = ] [ r / w / x ] fi ...

  8. Kotlin 字符模板

    Kotlin的字符模板和c语言的格式化输出有点像. 先来说说Kotlin 的字符模板怎么弄. fun main(args:Array<String>) { var name="T ...

  9. Ext中setValue和setRawValue

    Ext.getCmp('modifyStatus').setValue(record.get('status').trim()); Ext.getCmp('modifyStatus').setRawV ...

  10. 关于DataGridView的ClearSelection方法

    最近做winform项目,遇到一个问题.  纠结了几天,最终解决了,记录一下! 新建一个Form窗体,拽一个DataGridView上去,然后写一个方法 private void BindData() ...