如何在Google地图上以距用户输入点已定义的距离(米)绘制多边形(矩形)

A.有限

此Android应用程序将用于帮助定义边界或城市边界等。用户将在Google地图上绘制一个定义边界的矩形,该应用程序将按预先定义的米数增加矩形的长度和宽度。

我知道API中有一种方法可以计算坐标之间的距离,但是这里我从米开始,希望找到新的(要绘制的)较大多边形的坐标。有人知道我将如何进行计算吗?提前致谢!

安东尼奥

您可以使用SphericalUtil.computeOffset从方法谷歌地图API的Android实用工具库

// The distance you want to increase your square (in meters)
double distance = 104.52;

// A List of LatLng defining your user's input
// (Two latLng define a square)
List<LatLng> positions = new ArrayList<>();
positions.add(new LatLng(40.22861, -3.95567));
positions.add(new LatLng(40.22884, -3.95342));

// Create a LatLngBounds.Builder and include your positions
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (LatLng position : positions) {
    builder.include(position);
}

// Calculate the bounds of the initial positions
LatLngBounds initialBounds = builder.build();

// Increase the bounds by the given distance
// Notice the distance * Math.sqrt(2) to increase the bounds in the directions of northeast and southwest (45 and 225 degrees respectively)
LatLng targetNorteast = SphericalUtil.computeOffset(initialBounds.northeast, distance * Math.sqrt(2), 45);
LatLng targetSouthwest = SphericalUtil.computeOffset(initialBounds.southwest, distance * Math.sqrt(2), 225);

// Add the new positions to the bounds
builder.include(targetNorteast);
builder.include(targetSouthwest);

// Calculate the bounds of the final positions
LatLngBounds finalBounds = builder.build();

您可以使用以下函数来绘制边界以查看是否一切正常:

private void drawBounds (LatLngBounds bounds, int color) {
    PolygonOptions polygonOptions =  new PolygonOptions()
            .add(new LatLng(bounds.northeast.latitude, bounds.northeast.longitude))
            .add(new LatLng(bounds.southwest.latitude, bounds.northeast.longitude))
            .add(new LatLng(bounds.southwest.latitude, bounds.southwest.longitude))
            .add(new LatLng(bounds.northeast.latitude, bounds.southwest.longitude))
            .strokeColor(color);

    mMap.addPolygon(polygonOptions);
}

例如:

drawBounds (initialBounds, Color.BLUE);
drawBounds (finalBounds, Color.RED);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Google地图上以距用户输入点已定义的距离(米)绘制多边形(矩形)

来自分类Dev

如何在Google地图上删除绘制的多边形

来自分类Dev

在Google地图上绘制多边形

来自分类Dev

无法在Google地图上绘制多边形

来自分类Dev

如何将数据库中存储的多边形绘制到Google地图上

来自分类Dev

如何在地图上添加多边形

来自分类Dev

每隔X米²在Google地图上的多边形内添加标记²Android Studio

来自分类Dev

ggmap包在地图上绘制填充的多边形

来自分类Dev

计算在Android应用程序中在Google地图上绘制的多边形的面积

来自分类Dev

如何让用户在开放的街道地图上构建多边形?

来自分类Dev

如何从谷歌地图上完全删除圆,多边形

来自分类Dev

如何计算Google地图上两点之间的距离(以米为单位)

来自分类Dev

使用Google地图在多边形内绘制较小的多边形

来自分类Dev

使用Google地图在多边形内绘制较小的多边形

来自分类Dev

使用JavaScript在Google地图中绘制多边形

来自分类Dev

在Google地图中绘制和删除多边形

来自分类Dev

无法在Google地图中绘制多边形

来自分类Dev

如何在Android的Google地图上绘制自由手形

来自分类Dev

如何绘制与点簇区域相对应的多边形?

来自分类Dev

如何在现代openGL中用3D点绘制多边形?

来自分类Dev

如何在MATLAB中绘制某些多边形区域之外的点

来自分类Dev

如何在红色矩形内移动此多边形

来自分类Dev

我必须在地图上实现一个矩形和多边形。将矩形分成网格,删除所有不属于多边形的网格

来自分类Dev

如何计算地理位置和给定多边形之间的距离(以米为单位)?

来自分类Dev

通过加入最外面的标记以编程方式在地图上绘制多边形

来自分类Dev

HTTP请求后Android在谷歌地图上绘制多边形

来自分类Dev

使用时间滑块在地图上绘制多边形 + 时间戳

来自分类Dev

排序多边形的点以进行绘制

来自分类Dev

如何使用带有derby数据库的jsf在Google地图上动态创建多边形?

Related 相关文章

  1. 1

    如何在Google地图上以距用户输入点已定义的距离(米)绘制多边形(矩形)

  2. 2

    如何在Google地图上删除绘制的多边形

  3. 3

    在Google地图上绘制多边形

  4. 4

    无法在Google地图上绘制多边形

  5. 5

    如何将数据库中存储的多边形绘制到Google地图上

  6. 6

    如何在地图上添加多边形

  7. 7

    每隔X米²在Google地图上的多边形内添加标记²Android Studio

  8. 8

    ggmap包在地图上绘制填充的多边形

  9. 9

    计算在Android应用程序中在Google地图上绘制的多边形的面积

  10. 10

    如何让用户在开放的街道地图上构建多边形?

  11. 11

    如何从谷歌地图上完全删除圆,多边形

  12. 12

    如何计算Google地图上两点之间的距离(以米为单位)

  13. 13

    使用Google地图在多边形内绘制较小的多边形

  14. 14

    使用Google地图在多边形内绘制较小的多边形

  15. 15

    使用JavaScript在Google地图中绘制多边形

  16. 16

    在Google地图中绘制和删除多边形

  17. 17

    无法在Google地图中绘制多边形

  18. 18

    如何在Android的Google地图上绘制自由手形

  19. 19

    如何绘制与点簇区域相对应的多边形?

  20. 20

    如何在现代openGL中用3D点绘制多边形?

  21. 21

    如何在MATLAB中绘制某些多边形区域之外的点

  22. 22

    如何在红色矩形内移动此多边形

  23. 23

    我必须在地图上实现一个矩形和多边形。将矩形分成网格,删除所有不属于多边形的网格

  24. 24

    如何计算地理位置和给定多边形之间的距离(以米为单位)?

  25. 25

    通过加入最外面的标记以编程方式在地图上绘制多边形

  26. 26

    HTTP请求后Android在谷歌地图上绘制多边形

  27. 27

    使用时间滑块在地图上绘制多边形 + 时间戳

  28. 28

    排序多边形的点以进行绘制

  29. 29

    如何使用带有derby数据库的jsf在Google地图上动态创建多边形?

热门标签

归档