sharpmap 2.0 坐标系转换 更新
来源:互联网 发布:sqlserver添加字段 编辑:程序博客网 时间:2024/06/15 21:44
sharpmap 2.0的坐标系统没有多弄懂,至于屏幕坐标如何转map 坐标,个人仅仅使用空间建立对应坐标关机,进行计算。
借鉴 网上一篇文章,http://hi.baidu.com/zhouyang027/item/59633425770bd953c28d595b
但是似乎开源代码总是更新。写上自己的修改后的 代码
ICoordinateFactory<Coordinate> coordinatefactory = new CoordinateFactory();
ICoordinateSystemFactory<Coordinate> cFac = new CoordinateSystemFactory<Coordinate>(coordinatefactory,geometryfactory);
IEllipsoid ellipsoid = cFac.CreateFlattenedSphere( 6377563.396, 299.32496, LinearUnit.Meter,"Airy 1830");
IHorizontalDatum datum = cFac.CreateHorizontalDatum(DatumType.HorizontalGeocentric, ellipsoid, null,"Airy 1830");
//创建地理坐标系
Coordinate min = coordinatefactory.Create(-180, -90);
Coordinate max = coordinatefactory.Create(180, 90);
IExtents<Coordinate> wgs84Extents = geometryfactory.CreateExtents(min, max);
IGeographicCoordinateSystem gcs =
cFac.CreateGeographicCoordinateSystem(wgs84Extents, AngularUnit.Degrees, datum,
PrimeMeridian.Greenwich,
new AxisInfo( AxisOrientation.East,"Lon"),
new AxisInfo( AxisOrientation.North,"Lat"),"Airy 1830");
//Collection<ProjectionParameter> parameters = new Collection<ProjectionParameter>(5);
IList<ProjectionParameter> parameters = new List<ProjectionParameter>();
parameters.Add(new ProjectionParameter("latitude_of_origin", 49));
parameters.Add(new ProjectionParameter("central_meridian", -2));
parameters.Add(new ProjectionParameter("scale_factor", 0.9996012717));
parameters.Add(new ProjectionParameter("false_easting", 400000));
parameters.Add(new ProjectionParameter("false_northing", -100000));
IProjection projection = cFac.CreateProjection("Transverse Mercator", parameters ,"Transverse_Mercator");
IProjectedCoordinateSystem coordsys =
cFac.CreateProjectedCoordinateSystem( gcs, projection,
LinearUnit.Meter, new AxisInfo( AxisOrientation.East,"East"),
new AxisInfo( AxisOrientation.North,"North"),"OSGB 1936 / British National Grid");
ICoordinateTransformation trans = ctff.CreateFromCoordinateSystems(gcs, coordsys);
//new CoordinateTransformationFactory<Coordinate>().CreateFromCoordinateSystems(gcs, coordsys);
//Coordinate workpoint = new Point(e.X, e.Y);
Coordinate workpoint = new CoordinateFactory().Create(e.X, e.Y);
ICoordinate pUtm = trans.MathTransform.Transform(workpoint);
IPoint click = geometryfactory.CreatePoint(pUtm);
ICoordinate pGeo2 = trans.MathTransform.Inverse.Transform(pUtm);
- sharpmap 2.0 坐标系转换 更新
- sharpmap 2.0 坐标转换
- SharpMap
- 坐标系转换
- 坐标系转换
- 坐标系转换
- 转换坐标系
- 坐标系转换
- 各地图坐标系转换(WGS84坐标系,GCJ02坐标系,BD09坐标系)
- 各种经纬度坐标系转换-百度坐标系、火星坐标系、国际坐标系
- 坐标系转换矩阵生成
- 坐标系转换简介
- 坐标系的转换
- 平面的坐标系转换
- cocos2d坐标系转换
- FME 坐标系转换
- 机器人坐标系转换
- 【iOS开发】---- 坐标系转换
- liftweb下载源文件及文档的jar包
- 当前项目可能用到的网址
- 用java把MS office(ppt、excel、word、txt) 转换成 flash,并进行播放(linux、windows)
- 在Debian下安装使用Windows下的字体
- binary_search
- sharpmap 2.0 坐标系转换 更新
- 为什么中断不能休眠
- jQuery鼠标悬浮菜单自动缩放效果
- mysql-oracle
- 最简单的MFC应用程序
- awk重定向符号> 和 >>
- RichEdit使用小结
- linux下的静态链接库和动态链接库总结
- Debian Code::Blocks中文化