首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >移动标记的特定距离(以米为单位)

移动标记的特定距离(以米为单位)
EN

Stack Overflow用户
提问于 2017-03-21 20:54:33
回答 1查看 2.2K关注 0票数 1

我有一个项目的集合,其中一些可能有相同的坐标。

因此,它们在Google中被显示为一个标记,因为这些标记是在彼此之上绘制的。

为了解决这个问题,我试图将这些标记“移动”几米,这样标记就不会碰撞。

我想把他们搬到离他们的位置5米的地方。

我做了以下另一个所以回答

代码语言:javascript
复制
double newLat = item.getLatitude() + (Math.random() - .005) / 15000;    
double newLon = item.getLongitude() + (Math.random() - .005) / 15000;    

问题是,这会移动一些项目,但似乎有些是400万,另一些是300万,如果可能的话,我希望确保我将在4-6米(最小/最大)之间。

我怎样才能改变我的公式来做到这一点?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-21 21:48:53

我认为最好的选择是使用来自SphericalUtil. computeOffsetGoogle API实用程序库方法

computeOffset 公共静态LatLng computeOffset(LatLng距离、双距离、双航向) 返回由于在指定的标题中从原点移动一段距离而产生的LatLng (从北以顺时针方向表示)。 参数: 开始--从LatLng开始。 距离-旅行的距离。 航向-从北向顺时针方向的航向。

在这种情况下,您可以将distance设置为5米,并将heading参数随机设置为0到360度之间的值:

代码语言:javascript
复制
Random r = new Random();
int randomHeading = r.nextInt(360);
LatLng newLatLng = SphericalUtil.computeOffset(oldLatLng, 5, randomHeading);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42937949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档