0

我正在创建一个插件,我需要知道

  • 最小和最大纬度
  • 最小和最大经度

该信息显示在项目设置窗口的统计选项卡中。(菜单项目 -> 项目设置 -> 统计选项卡)

我通过以下方式获得统计信息:

 Statistics stat = StatisticsService.GetStatistics(PetrelProject.PrimaryProject);

然后为了获得纬度和经度信息,我这样做:

var latitud = stat.AxisInfo.OfType<PropertyInfoItem>().FirstOrDefault(item => item.Name == "Lat");
var longitud = stat.AxisInfo.OfType<PropertyInfoItem>().FirstOrDefault(item => item.Name == "Long");

但是,我通过在调试时查看数据得出了这个解决方案。我不知道这是否会成为每个项目的数据结构。

此外,AxisInfo 项中的数据的精度低于项目的统计选项卡中显示的精度。

还有其他方法可以获取项目的纬度和经度吗?

4

1 回答 1

0

统计信息是获取此信息的唯一一种快速方法(否则您需要“遍历”项目中的所有对象),但您需要使用 X 和 Y 而不是 Lat/Long(即动态转换)。您可以通过 ICoordinateService -> CreateOperationToReference -> Convert 将 Point3(X,Y,Z) (其中 Z 可以为 0)转换为大地坐标点

于 2013-07-19T09:56:57.337 回答