`
wangzheguilai
  • 浏览: 20753 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类

GIS 中地理坐标和屏幕坐标的标准转换方法

阅读更多

在GIS中,当你拿到一个图层的地理坐标后,如果需要绘制到屏幕上,那么不可避免的需要在地理坐标和屏幕坐标之间进行转换,转换的方法相信每一个做GIS的都会有自己的实现方法,本文描述的是和ArcGIS、WMS、OpenLayers完全一致的坐标转换方法,当然这三个工具、标准、脚本也是采用的相同的方法;
因为采用完全一致的坐标转换方法,因此在我自己实现的WMS服务程序中提供的含透明通道的图,可以完全和ArcGIS提供的图在WEB客户端进行精确的匹配;
现在来介绍坐标转换的原理,其实该原理很简单,就是将视图的中心点和视野的中心点进行配对,然后给定一个地理坐标根据该坐标和视野中心点的偏移和比例尺来进行计算就可以获得屏幕坐标,反之亦然;
下面就是将窗口坐标转换为地理坐标的代码:
1
ptGeo.x = geo_center_.x + ( ptWnd.x - see_center_.x ) * resolution_ ;
2
ptGeo.y = geo_center_.y - ( ptWnd.y - see_center_.y ) * resolution_ ;
下面是将地理坐标转化为窗口坐标的代码:
1
ptWnd.x = see_center_.x + ( long )( ( ptGeo.x - geo_center_.x ) / resolution_ + 0.5 );
2
ptWnd.y = see_center_.y - ( long )( ( ptGeo.y - geo_center_.y ) / resolution_ + 0.5 );
在上面的代码中,see_center_ 是屏幕坐标的窗口中心、geo_center_ 是地理坐标的视野中心,而 resolution_ 就是当前的比例尺;
然而最关键的是,当传入的视野和窗口的比例不一致时,如何进行处理,标准的做法就是分别计算水平和垂直的比例尺,然后取其中较大的那个值作为比例尺,也就是说比例尺的调整向着地理视野更小的方向进行调整,参考如下的代码:
view sourceprint?

void Coord_Transform::Reset_Resolution( GeoRect & extent , DevRect & client )

{

    //  calc geo_center_ Member

    geo_center_.x = ( extent.left + extent.right ) / 2.0 ;

    geo_center_.y = ( extent.top + extent.bottom ) / 2.0 ;

    //  calc see_center_ Member

    see_center_.x = ( client.left + client.right ) / 2 ;

    see_center_.y = ( client.top + client.bottom ) / 2 ;



    //  calc resolution_ Member

    double RoH = extent.Height( ) / client.Height( ); //    Resolution of Height

    double RoW = extent.Width( ) / client.Width( );  // Resolution of Width

    this->resolution_ = RoH > RoW ? RoH : RoW ;

    this->geo_change_ = true ;

}
在 WMS 协议中,如果请求的图片大小和视野的宽高比不成比例时也是要求将图片较小的一边增加,让地理视野和图片的比例一致,然后进行绘制,最后一步将生成的图片进行不等比放缩到原始请求的图片大小,这是为了保证客户端采用非矩形点阵的显示设备时能够正常显示地理图;

 

分享到:
评论

相关推荐

    GIS地理坐标系与投影坐标转换技术资料

    ArcGIS坐标转换方法 4参数与7参数坐标转换算法 椭球体与大地基准 常用的地理坐标系参数 投影坐标系转换算法 高斯投影参数说明 3度带与6度带 投影坐标转换-高斯投影-代号计算公式 墨卡托投影 WGS84与Web墨卡托坐标互...

    GIS(地理信息)+坐标转换+十进制度转度分秒(度分秒转十进制度)+公式

    GIS(地理信息)+坐标转换+十进制度转度分秒(度分秒转十进制度)+公式 GIS工作者,经常出现坐标格式转换的问题,将十进制度转换为度分秒格式(十进制度->度分秒)例如:87.509614 44.075376 ----->  87°30′34....

    GIS工具箱【含坐标拾取、坐标系转换、随机坐标生成】

    本人开发的GIS工具箱,集成了坐标拾取器、坐标系转换工具和随机坐标生成工具;已被300人的公司广泛使用。良心资源,童叟无欺! 打包出售,更实惠! 也可根据需要单独购买 坐标系转换工具 ...

    GIS坐标转换 JAVA版

    我是为了将EPSG:4326坐标转换成EPSG:900913坐标,找到的工具,然后添加了两者之间的转换方式! 使用方式: private static Projection proj = ProjectionFactory .getNamedPROJ4CoordinateSystem("epsg:900913");...

    gis与gps坐标转换

    gis与gps转换 主要是坐标之间的转换 因为gis与gps使用的坐标计算方法不一样

    GIS中的坐标系定义与转换.mht

    自 "Mapinfo上的GIS系统开发"一文在计算机世界网上刊登后,有好几位网友向我询问坐标系定义与转换方面的问题,问题可归结为 (1) 地图在Mapinfo上显示得很好,但在MapX中却显示不出来或显示得不对;(2) GPS定位得到的...

    地理坐标转换小工具集

    坐标转换小工具,支持北京54,西安80,wgs84下经纬度和xy坐标系之间的转换,可设置四参数、七参数,空间直角坐标系,大地坐标,平面坐标等类型的转换

    GIS中的坐标系定义与转换

    GIS中的坐标系定义与转换,  

    坐标系转换工具【支持批量】

    【GIS工具箱】集成了坐标拾取器、坐标系转换工具和随机坐标生成工具;已被300人的公司广泛使用。良心资源,童叟无欺! 打包出售,更实惠! https://download.csdn.net/download/jingqia/75970880

    CGCS2000、WGS84、百度高德等火星坐标、深圳独立坐标等常见坐标格式批量转换软件

    一、本软件为博主本人开发,所有坐标转换精度均经实测验证,可放心使用。 二、本软件支持常见坐标,如CGCS2000、百度坐标、高德坐标、WGS84坐标、深圳独立坐标的相互单点转换。 三、本软件支持百度与CGCS2000、WGS84...

    76.(cesium篇)cesium笛卡尔坐标(世界坐标)与屏幕坐标转换.zip

    该资源包的执行效果查看地址:https://blog.csdn.net/m0_60387551/article/details/123184049 “地图之家”专栏中的“76.(cesium篇)cesium笛卡尔坐标(世界坐标)与屏幕坐标转换”。如下载有问题,可联系博主。

    GIS_火星坐标_真实坐标_转换程序源码_珍藏级

    GIS行业应用代码,解决天朝坐标和真实坐标的相互转换问题,提供了两种算法实现,价值极高,珍藏级!可应用于单机、网络、B/S体系结构。

    GIS随机坐标生成工具

    【GIS工具箱】集成了坐标拾取器、坐标系转换工具和随机坐标生成工具;已被300人的公司广泛使用。良心资源,童叟无欺! 打包出售,更实惠! https://download.csdn.net/download/jingqia/75970880

    ARCGIS54至80坐标转换

    使用ARCGIS进行坐标系转换:北京54坐标系西安80坐标转换

    地理坐标转换小工具集(GIS)

    坐标转换小工具,支持北京54,西安80,wgs84下经纬度和xy坐标系之间的转换,可设置四参数、七参数,空间直角坐标系,大地坐标,平面坐标等类型的转换

    坐标转换工具箱

    坐标系统转换工具箱,支持批处理,支持多种坐标系统。

    GIS--坐标转换

    地理坐标、高斯平面直角坐标和平面直角坐标间的转换,内容通俗易懂,并提供示例源码.

    GIS坐标问题总结.doc

    我这有2个不同坐标的shp要素,这2个要素是同一地理位置的,但是在arcmap中打开不能显示在同一范围内,所以我将其中一个要素的坐标转换成另一个要素的坐标,但是转换后,2个要素还是不能显示在同一范围内。...

    界址点标准格式转换器(国土用地报备坐标转换).rar

    1、坐标格式转换:支持txt格式及csv格式的坐标格式文件2、拐点坐标CAD成图:可将拐点坐标转换成CAD图形,分 X,Y 及 Y,X 两种形式3、导出excel格式拐点坐标表(非CASS格式)本程序完全免费,在使用过程中,...

    【GIS坐标系转换专题】坐标系转换相关基本理论

    【GIS坐标系转换专题】坐标系转换相关基本理论

Global site tag (gtag.js) - Google Analytics