我必须在Google地图上从选定的已知点(LatLng)到200米左右的距离绘制一条曲线。 200m之后的点(LatLng)不应在水(海)中。因此,
方法:
1。在距拾取点200m处找到另一个点(LatLng)。
2。点(LatLng)不应在水(海)中。
已编辑的问题:
请忽略“曲线线”。它可以是一条直线,主要问题是我上面提到的两点。
答案 0 :(得分:0)
这是一个模棱两可的问题的不完整答案。
您表示“曲线”,但未指定曲线功能,因此无法提供专门的帮助。
如果“弯曲线”是指围绕某个点的圆圈,那么您可能会对android-maps-utils中的SphericalUtil类感兴趣,该类可从某个点查找“偏移”(computeOffset
)-但是这假设一个从中心点开始的圆-很难应用于未知的曲线函数。当然,地图本身提供了addCircle
。
此外,要确定地球表面上是否有任何一个点在水中,您可以按照以下答案使用Google Maps Reverse Geocoding:https://stackoverflow.com/a/9644812/2711811。它提到了使用“ type”字段(对于水来说是“ natural_feature”)。
但是,这个答案留下了一个普遍的问题,即“如何在距中心点200米的水中找不到点”,而没有一种不确定的迭代方法-(即,一直采集随机点直到不在水中),如果中心点位于150米的岛上)。要解决此问题,您必须将点空间限制在陆地上,这意味着您需要了解陆地/海洋。
距离中心点200米处的随机点示例:
SphericalUtil.computeOffset(pickupPoint, 200, new Random(System.currentTimeMillis()).nextDouble * 360)
随时为您的问题添加更多细节。