当前位置: 首页 > 面试题库 >

Java,将经/纬转换为UTM

袁枫涟
2023-03-14
问题内容

有谁知道用Java将地球表面位置从经纬度转换为UTM的方法(例如WGS84)?我目前正在查看Geotools,但是不幸的是解决方案并不明显。


问题答案:

根据一些示例代码,我能够使用Geotools
2.4获得一些有用的东西。

double utmZoneCenterLongitude = ...  // Center lon of zone, example: zone 10 = -123
int zoneNumber = ...                 // zone number, example: 10
double latitude, longitude = ...     // lat, lon in degrees

MathTransformFactory mtFactory = ReferencingFactoryFinder.getMathTransformFactory(null);
ReferencingFactoryContainer factories = new ReferencingFactoryContainer(null);

GeographicCRS geoCRS = org.geotools.referencing.crs.DefaultGeographicCRS.WGS84;
CartesianCS cartCS = org.geotools.referencing.cs.DefaultCartesianCS.GENERIC_2D;

ParameterValueGroup parameters = mtFactory.getDefaultParameters("Transverse_Mercator");
parameters.parameter("central_meridian").setValue(utmZoneCenterLongitude);
parameters.parameter("latitude_of_origin").setValue(0.0);
parameters.parameter("scale_factor").setValue(0.9996);
parameters.parameter("false_easting").setValue(500000.0);
parameters.parameter("false_northing").setValue(0.0);

Map properties = Collections.singletonMap("name", "WGS 84 / UTM Zone " + zoneNumber);
ProjectedCRS projCRS = factories.createProjectedCRS(properties, geoCRS, null, parameters, cartCS);

MathTransform transform = CRS.findMathTransform(geoCRS, projCRS);

double[] dest = new double[2];
transform.transform(new double[] {longitude, latitude}, 0, dest, 0, 1);

int easting = (int)Math.round(dest[0]);
int northing = (int)Math.round(dest[1]);


 类似资料:
  • 问题内容: 如何在Java中将经纬度转换为北向和东向? 问题答案: 我假设您的意思是英国OSGB向东和向北。这个三角函数背后的三角函数很有趣,但是您可以为此使用JCoord库,这很容易(如果占用大量CPU)。 为了跟进下面@DD的评论,JCoord有一个问题,因为在从Easting / Northing转换为Lat / Long时必须确保使用正确的基准,反之亦然。 使用@DD的代码: 这将返回使用

  • 问题内容: 我正在尝试将经纬度对转换为像素坐标。我发现了这种墨卡托投影,但我不理解代码。x_adj,y_adj变量是什么因素?当我在没有这些常量的情况下运行代码时,我的经/纬对就不在地图上,并且x和y像素坐标也不是我想要的。 问题答案: 这些变量从何而来 选择这些变量以使计算出的坐标与地图的背景图像匹配。如果知道地图的投影参数,则可以计算它们。但是我相信,它们很可能是通过反复试验而获得的。 如何计

  • 问题内容: 我具有纽约市纽约市的纬度/经度值;40.7560540,-73.9869510和地球的平面图像,即1000px×446px。 我希望能够使用Javascript将纬度/经度转换为X,Y坐标,该点将反映该位置。 因此,图像左上角的X,Y坐标将是;289、111 注意事项: 不用担心要使用哪种投影的问题,可以自己做假设,也可以按照自己知道的可行的方法进行操作 X,Y可以形成图像的任意一角

  • 问题内容: 给定纬度和经度,我们如何使用Javascript或Python将其转换为街道地址? 问题答案: 大多数人在99%的时间内将您链接到Google Maps的API。不错的答案。但是- 注意禁止用途,使用限制和使用条款!尽管许多分布式应用程序并未违反使用限制,但对于Web应用程序而言却是相当有限的。TOS不允许您将皮肤上的数据重新用于Google应用程序中。您不希望因Google发出的终止

  • 问题内容: 我需要将纬度经度值转换为像素位置以及相反的操作。我发现许多解决方案都来自lat / lng-> pixel,但反之则找不到任何东西。 一些注意事项: 地图是固定大小,无缩放,无图块。 我不需要任何超级准确的信息,这并不重要。 最好是墨卡托投影,但不是必需的。我实际上并没有显示结果。(任何2D投影) 我不能依赖任何基于Web的API,即:没有Google Maps 只要不依赖任何平台特定

  • 问题内容: 我有一些需要转换为.java的.class文件,所以我做到了: 而且一直以来我都有相同的错误 错误:找不到ClassName.class 你们是否知道可能是什么原因?我做了javap的人,据我所知语法是正确的。如果还有另一种将其转换为.java文件的方法,我非常愿意尝试。任何想法是极大的赞赏? 问题答案: 调用以读取字节码 该命令采用不带扩展名的类名。尝试 将.class文件转换回.j