【问题标题】:How to draw a curved line between two coordinates using Osmdroid library如何使用 Osmdroid 库在两个坐标之间绘制曲线
【发布时间】:2019-06-27 08:51:56
【问题描述】:

我发现谷歌地图提供了 PolylineOptions 但我无法找到 Osmdroid 的任何内容。

如果有人可以通过示例提出解决方案,那将非常有帮助。

【问题讨论】:

  • 请提及您正在使用的名作/图书馆。是osmdroid吗?
  • 感谢您的回复,我正在使用“com.github.MKergall:osmbonuspack:6.5.3”库

标签: android openstreetmap osmdroid polyline osmbonuspack


【解决方案1】:

您可能无法绘制真正的曲线,但您应该能够创建看起来是弯曲的折线。折线由不弯曲的直线段组成。

您所指的 Google Map API 似乎也只支持没有曲线的折线。见Google Map documentation

折线是一系列相连的线段,可以形成您想要的任何形状,并可用于在地图上标记路径和路线。

Osmdroid 库支持折线和多边形。详情可见the Osmdroid documentation

您可以轻松创建Polyline

List<GeoPoint> geoPoints = new ArrayList<>();
geoPoints.add(start);
//... add other points that should form the curve
geoPoints.add(end);

//add your points here
Polyline line = new Polyline();   //see note below!
line.setPoints(geoPoints);
map.getOverlayManager().add(line);

棘手的部分是计算两个已知坐标之间的点。

【讨论】:

  • 感谢您的回答,但如何计算应在两个坐标(源和目标)之间形成曲线的其他点。
  • @DheerajKumarSingh 我想这取决于曲线应该代表什么。你没有在你的问题中指定。
  • 我们使用哪种算法。请建议任何链接。
  • @DheerajKumarSingh 您应该能够使用 osmdroid 库获得类似的结果。第一个结果来自这个 SO question stackoverflow.com/questions/47950659/…,你可以看到他们也只使用折线并且基本上添加了很多点,所以它看起来是一个很好的曲线。您还可以从 bazier 曲线中看到算法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-18
  • 2022-08-22
  • 2020-06-04
  • 2020-03-06
  • 1970-01-01
相关资源
最近更新 更多