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開發一個比較頭疼的問題,遇到類似的問題的朋友,希望這篇東西會有益處。
對 于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
總結
- 上一篇: 今天下午爽了一把!
- 下一篇: 园子里关于罗辑树与视觉树的文章