查看: 243|回复: 0

CityMaker通过经纬度创建cgc2000平面的对象

[复制链接]

176

主题

240

帖子

8310

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
8310
发表于 2019-6-23 15:06:31 | 显示全部楼层 |阅读模式
  Gvitech.CityMaker.FdeGeometry.IPoint point = new Gvitech.CityMaker.FdeGeometry.GeometryFactory().CreatePoint(Gvitech.CityMaker.FdeGeometry.gviVertexAttribute.gviVertexAttributeZ);
            //现在的是经纬度的,要转为cgc2000的
            Gvitech.CityMaker.FdeGeometry.ICRSFactory coorFactory = new Gvitech.CityMaker.FdeGeometry.CRSFactory();
            Gvitech.CityMaker.FdeGeometry.ISpatialCRS source = coorFactory.CreateWGS84();
            Gvitech.CityMaker.FdeGeometry.ISpatialCRS target = (Gvitech.CityMaker.FdeGeometry.ISpatialCRS)coorFactory.CreateFromWKT("PROJCS[[这里是参数]]");
            Gvitech.CityMaker.FdeGeometry.GeoTransformer tr = new Gvitech.CityMaker.FdeGeometry.GeoTransformer();
            tr.SetCRS(source, target);
            double xx = obj.经度.ToDouble(), yy = obj.纬度.ToDouble();
            bool ret = tr.TransformXY(ref xx, ref yy);
            if (!ret) return null;
            point.SetCoords(xx ,yy , 20, 0, 0);
            point.SpatialCRS = target;
            _dynamicTableLabel.Position = point;

例如:114.32,21.354,那么xx=458754,yy=2458652。随便写的,做个比方。

QQ|手机版|GIS3D 基地 ( 京ICP备16033688号

GMT+8, 2019-7-18 02:28 , Processed in 0.216064 second(s), 30 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表
 
Skyline中文社区-总群
帮主 gis3d 海洪