所以我使用 JMapViewer,在这张地图上我有一些具有一定经度和纬度的地图标记
因此,要在此特定地图标记旁边插入一个文本字段,我需要将经度和纬度转换为带有 X 和 Y 的点,以将其提供给标签的 setBound。
谢谢!
请注意,我需要这样做,以便如果我移动地图,文本会随着地图移动,因此当地图标记消失时,文本也会消失
所以我使用 JMapViewer,在这张地图上我有一些具有一定经度和纬度的地图标记
因此,要在此特定地图标记旁边插入一个文本字段,我需要将经度和纬度转换为带有 X 和 Y 的点,以将其提供给标签的 setBound。
谢谢!
请注意,我需要这样做,以便如果我移动地图,文本会随着地图移动,因此当地图标记消失时,文本也会消失
JMapViewer
有几个变体getMapPosition()
返回Point
给定的大地坐标。您可以看到该方法是如何在 中使用paintMarker()
,由 调用的paintComponent()
。有关OsmMercator
椭球体和投影的详细信息,请参见。
您需要将角坐标 (lat, lon) 转换为笛卡尔坐标 (x, y)。看看 GeoTools 的GeodeticCalculator。特别是使用 0 度和 90 度的方位角来计算距笛卡尔地图原点的水平和垂直距离。