Android 找一个距离取货点(LatLng)X米/公里的点(LatLng),且不应在水中(海上)

Android 找一个距离取货点(LatLng)X米/公里的点(LatLng),且不应在水中(海上),android,google-maps,Android,Google Maps,我必须在谷歌地图上从一个选定的已知点(LatLng)到大约200米的距离画一条曲线。200m后的点(板条)不应在水(海)中。所以 如何: 1。在距离拾取点200米处找到另一个点(LatLng)。 2。该点(LatLng)不应位于水(海)中。 编辑的问题: 请忽略“曲线”。它可以是一条直线,主要问题是我上面提到的两点。这是对一个有点模糊的问题的不完整回答 您指示“curve line”,但没有指定曲线函数,因此无法提供具体的帮助 如果“曲线线”是指围绕点的圆,则您可能会对中的SphereCalt

我必须在谷歌地图上从一个选定的已知点(LatLng)到大约200米的距离画一条曲线。200m后的点(板条)不应在水(海)中。所以

如何:

1。在距离拾取点200米处找到另一个点(LatLng)。

2。该点(LatLng)不应位于水(海)中。

编辑的问题:


请忽略“曲线”。它可以是一条直线,主要问题是我上面提到的两点。

这是对一个有点模糊的问题的不完整回答

您指示“curve line”,但没有指定曲线函数,因此无法提供具体的帮助

如果“曲线线”是指围绕点的圆,则您可能会对中的SphereCaltil类感兴趣,该类提供了从点查找“偏移”(
computeOffset
)的功能,但它假设从中心点开始的圆很难应用于未知曲线函数。当然,地图本身提供了
addCircle

此外,要确定地球表面的任何一点是否在水中,您可以使用谷歌地图反向地理编码,如以下答案所示:。它提到使用“类型”字段,这是水的“自然特征”

但这个答案留下了一个普遍的问题,即“如何在距离中心点200米的地方找到一个不在水中的点”,而没有一个不确定的迭代方法(即,保持随机点直到不在水中——如果中心点在150米的岛上,这种方法就会失败)。要解决这个问题,你必须将你的点空间限制在陆地上,这意味着你必须了解陆地/海洋

距离中心点200米处的随机点示例:

SphericalUtil.computeOffset(pickupPoint, 200, new Random(System.currentTimeMillis()).nextDouble * 360)

请随意为您的问题添加更多细节。

请忽略问题中的“曲线”,它可以是一条直线。主要问题是从距离200m的已知点找到一个点,该点不应在水中。