MapX的坐标问题

我们知道,一个GIS开发包或者GIS平台,和一般的图形系统的差别就在于其管理的对象都是有空间参考(或者叫地理参考)的,简而言之,空间参考就是坐标系,但坐标系不是简单的笛卡尔坐标系,因为地球是圆的。有关的文献可以参考一般的地图学教材。

对 于GIS系统,坐标系是和每个对象对应的,也就是说,任何一个空间对象(Feature)都必须有一个空间参考,但在实现中,一般是一个图层对应一个空间 参考,也就是坐标系。而整个地图也有一个空间参考,并且有的系统,这个参考还分为实际内部数据的和显示的(例如MapX)。

MapX的空 间参考可以通过CoordSys object来设置。设置的类型包括平面坐标(笛卡尔坐标,Non-Earth),经纬度以及各类投影坐标系统。然后这个CoordSys对象可以和图 层、Map对象关联,或者说,每个Layer对象和Map对象都有自己的空间参考。

在MapX中,图层的空间参考可以通过Layer.CoordSys属性来获取或者设置。

MapX 的Map对象的空间参考则可以通过Map.DisplayCoordSys和Map.NumericCoordSys属性来设置,前者是显示的坐标,后者 是实际的坐标。如果你把前者设置为经纬度,后者设置为投影坐标,那么通过Map的工具量测得到就是前者的坐标单位,而通过FeatureFactory对 象添加属性,使用的坐标就是后者。

那么对应层和Map对象空间参考不一致的情况,显示的时候就要实时(onfly)变换。

在我们使用FeatureFactory添加坐标的时候,一定要清楚当前地图的NumericCoordSys属性的设置。

而创建一个Point的对象的时候,使用的也是NumericCoordSys这个坐标体系。

对于一个没有添加任何数据的MapX控件,其Map的NumericCoordSys属性为平面坐标,如果使用Layers.Add添加图层,这个属性就自动变为添加的第一个图层的空间参考。

如果加载GeoSet,则坐标体系通过GeoSet创建。

通过MapX的Layers.Add方法新建图层,一般不需要指定图层的空间参考,也无法在LayerInfo对象中指定文件图层对象的空间参考,这时,创建的图层的空间参考为MapX的空间参考(NumericCoordSys)。

另外,使用平面坐标(Non-Earth)时,需要指定其范围,缺省好像是-100到100,太小,但也不能太大,不确定的情况下,使用int.max就合适,太大数据溢出,就等于很小了。

坐标是GIS开发一个比较头疼的问题,遇到类似的问题的朋友,希望这篇东西会有益处。

转载于:https://www.cnblogs.com/maweifeng/archive/2006/09/23/512705.html

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

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

相关文章

简明 Python 教程学习笔记_2_函数

1. Python 内建函数 Python 内建函数:https://docs.python.org/zh-cn/3.9/library/functions.html#classmethod Python 解释器内置了很多函数和类型,您可以在任何时候使用它们。以下按字母表顺序列出它们。 内置函数 abs() delattr() hash() memo…

LaTeX2e类和包的设计(一)

LaTeX2e类和包的设计(一)一、类和包版本介绍LaTeX2.09对用户书写class和package提供的支持很少,用户不得不使用底层命令。LaTeX2e提供了许多用于组织package文件的高级命令,同时在已有class和package的基础上建立另一个class或pac…

C++学习之路 | PTA乙级—— 1005 继续(3n+1)猜想 (25分)(精简)

1005 继续(3n1)猜想 (25分) 卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候,我们需…

python实现地牢迷宫生成

python实现地牢迷宫生成基本属性生成房间生成墙壁生成门口生成通道基本属性 定义当前地牢的等级,地图长宽,房间数量,房间的最小最大长度,如下 class Map:def __init__(self):self.width 30self.heigh 30self.level 1self.roo…

Parameterize Method(令函数携带参数)

若干函数做了类似的工作,但在函数体中却包含了不同的值 重构:建立单一函数,以参数表达那些不同的值。

「谷歌大脑」提出通过对长序列进行摘要提取,AI可自动生成「维基百科」

原文来源:arXiv作者:Peter J. Liu、Mohammad Saleh、Etienne Pot、Ben Goodrich、Ryan Sepassi、Łukasz Kaiser、Noam Shazeer「雷克世界」编译:嗯~阿童木呀最近,经过研究证明,生成英文维基百科(English W…

redis基本用法学习(C#调用CSRedisCore操作redis)

除了NRedisStack包,csredis也是常用的redis操作模块(从EasyCaching提供的常用redis操作包来看,CSRedis、freeredis、StackExchange.Redis应该都属于常用redis操作模块),本文学习使用C#调用CSRedis包操作redis的基本方式…

简明Python教程学习笔记_3_模块

模块 如果你想要在其他程序中重用很多函数,那么你该如何编写程序呢?你可能已经猜到了,答案是使用模块。模块基本上就是一个包含了所有你定义的函数和变量的文件。为了在其他程序中重用模块,模块的文件名必须以.py为扩展名。 pyt…

年轻的程序员该如何规划自己的未来

下面是网友良少给我的回信,觉得其中一些内容具有警世作用,征得良少本人同意后,特公开其回信-------------------------------------------------------------------------------------------------------------------------- 孝祥:您好!非常感谢您的邀请…

C++学习之路 | PTA乙级—— 1006 换个格式输出整数 (15分)(精简)

1006 换个格式输出整数 (15分) 让我们用字母 B 来表示“百”、字母 S 表示“十”&#xff0c;用 12…n 来表示不为零的个位数字 n&#xff08;<10&#xff09;&#xff0c;换个格式来输出任一个不超过 3 位的正整数。例如 234 应该被输出为 BBSSS1234&#xff0c;因为它有 …

python: 使用socket实现局域网不同主机通信。解决ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

目录1 socket的使用1.1 TCP方法1.2 UDP方法2 局域网内连接2.1总结1 socket的使用 1.1 TCP方法 在socket中使用socket.socket建立会话&#xff0c;如果是服务器&#xff0c;需要绑定服务器地址和端口号&#xff0c;然后进行循环监听&#xff0c;当有客户端连接时再接收数据。 …

Replace Parameter with Explicit Methods(以明确函数取代参数)

函数的行为&#xff0c;完全取决于参数值 public void setValue(final String name, final int value) {if ("height".equals(name)) {this.height value;return;}if ("width".equals(name)) {this.width value;return;}Assert.shouldNeverReachHere();…

德勤:2018年科技、传媒和电信行业未来趋势预测

来源&#xff1a;亿欧近日&#xff0c;德勤发布了《2018科技、传媒和电信行业预测》报告&#xff0c;对世界与中国的科技、传媒和电信行业在未来1-5年的趋势进行了预测。该报告通过与世界各国行业主管和评论家的数百场访谈及对世界各地数万名消费者进行的调查&#xff0c;分析了…

简明Python教程学习笔记_4_数据结构

在Python中有三种内建的数据结构——列表、元组和字典。 列表 list是处理一组有序项目的数据结构&#xff0c;即你可以在一个列表中存储一个 序列 的项目。假想你有一个购物列表&#xff0c;上面记载着你要买的东西&#xff0c;你就容易理解列表了。只不过在你的购物表上&…

動態修改SiteMapPath路徑

http://www.purecs.net/Threads/t376.aspx在網頁上放置一個SiteMapPath可以提供使用者一個清楚的瀏覽路標指示&#xff0c;如果你的SiteMap是靜態不會變動的倒是很簡單&#xff0c;只要編寫好一個XML檔放上去&#xff0c;其它的事就可以不用管了&#xff0c;但是在動態網頁中Si…

C++学习之路 | PTA乙级—— 1007 素数对猜想 (20分)(精简)

1007 素数对猜想 (20分) 让我们定义d ​n ​​ 为&#xff1a;d ​n ​​ p ​n1 ​​ −p ​n ​​ &#xff0c;其中p ​i ​​ 是第i个素数。显然有d ​1 ​​ 1&#xff0c;且对于n>1有d ​n ​​ 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。 现给…

python: SHA256算法的实现和消息的哈希散列值计算

目录1 SHA2562 实现原理2.1 消息预处理2.2 使用的常量和循环移位函数2.3 主循环3 结果4 对中文编码1 SHA256 SHA256是SHA-2下的一个子算法&#xff0c;与之类似的还有SHA224、SHA384、SHA512&#xff0c;算法原理基本一致。 哈希算法通过对消息进行计算&#xff0c;生成一定长…

财报上的云计算战场: 巨头们垄断加剧

来源&#xff1a; 第一财经一周之内&#xff0c;四大云业务巨头公司前后脚发布财报。亚马逊的云业务&#xff08;AWS&#xff09;依然跑在了最前面&#xff0c;以174亿美元排在首位。微软、谷歌、阿里巴巴也没有放慢步伐。阿里云去年累计的营收超过了百亿&#xff1b;微软的Azu…

Preserve Whole Object(保持对象完整)

从某个对象中取出若干值&#xff0c;将它们作为某一次函数调用的参数 int low daysTempRange().getLow(); int height daysTempRange().getHigh(); withinPlan plan.withinRange(low, high); 重构&#xff1a;改为传递整个对象 withinPlan plan.withinRange(daysTempRan…

简明Python教程学习笔记_5_解决问题

问题 我提出的问题是&#xff1a; 我想要一个可以为我的所有重要文件创建备份的程序。 尽管这是一个简单的问题&#xff0c;但是问题本身并没有给我们足够的信息来解决它。进一步的分析是必需的。例如&#xff0c;我们如何确定该备份哪些文件&#xff1f;备份保存在哪里&#…