如何创建一个包含纬度和经度的数组并使用 for 循环在 android 中标记谷歌地图上的位置

Posted

技术标签:

【中文标题】如何创建一个包含纬度和经度的数组并使用 for 循环在 android 中标记谷歌地图上的位置【英文标题】:How can I create an array that contains latitude and longitude and use for loop to mark the positions on google map in android 【发布时间】:2015-01-29 00:05:27 【问题描述】:

我刚刚开始在 android 中编码,很长一段时间后,我的谷歌地图开始工作,并且能够在上面放置标记。

接下来我要做的是创建一个 latlng 数组并使用 for 循环在谷歌地图上放置一个标记。我不知道该怎么做。有人可以帮助我。到目前为止,我已经完成了以下操作。

ArrayList<Markers> mMap = new ArrayList<Markers>();

public ArrayList arraylist[] = new ArrayList(
                            new LatLng(30.243442, -1.432320)),

我想稍后扩展它,因此我想使用数组列表。

我了解 for 循环的工作原理,但我无法弄清楚如何使用它来实现它,因为我无法将这些位置从数组中获取到我的地图上的标记。

      for (i = 0; i < cars.length; i++) 
mMap.addMarker(new MarkerOptions()
        .position(new LatLng(10, 10))
        .title("Hello world"));
        

我在这个阶段完全迷失了。有人可以指导和帮助我。

谢谢。

【问题讨论】:

【参考方案1】:

首先,您需要一个存储 LatLng 对象的数组。所以,像这样声明一个:

ArrayList<LatLng> locations;

你还需要初始化你的 ArrayList:

locations = new ArrayList();

现在您可以使用 ArrayList.add 方法将位置添加到数组中:

locations.add(new LatLng(latitude, longitude));

现在您有了一个填充了一些 LatLng 的 ArrayList,您可以使用 foreach 循环对它们进行迭代,如下所示:

for(LatLng location : locations) 
    mMap.addMarker(new MarkerOptions() 
        .position(location)
        .title(...)

上面基本上是这样写的:

对于位置数组列表中的每个位置,添加一个新标记,其中标记的位置是我们从 out 数组中检索到的位置

将它们捆绑在一起:

ArrayList<LatLng> locations = new ArrayList();
locations.add(new LatLng(30.243442, -1.432320));
locations.add(new LatLng(... , ...));
.
.
.

for(LatLng location : locations)
    mMap.addMarker(new MarkerOptions()
        .position(location)
        .title(...)

【讨论】:

嗨,由于某种原因,.add 带有红色下划线。你能解释一下为什么吗? 你的答案应该包含对你的代码的解释和它如何解决问题的描述。 我不知道为什么。当您将鼠标悬停在/单击它时,它是否提供消息?也许您是从类的主体而不是内部方法调用locations.add? 上面写着 ArrayList 类型中的 add(int, LatLng) 方法不适用于参数 (double, double) 如果您像这样声明 ArrayList:ArrayList。那么您只能为 ArrayList 中的每个条目添加一个 LatLng。换句话说,数组的类型是 LatLng。听起来你正在尝试传入一个整数和一个 LatLng(你是在做类似 arrayList.add([some number], [someLatLng]) 的事情吗?见我上面的答案 - 我只传递一个 LatLng 每个数组条目。您应该考虑阅读有关在 Java 中创建和使用 ArrayLists 的内容。

以上是关于如何创建一个包含纬度和经度的数组并使用 for 循环在 android 中标记谷歌地图上的位置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JSON 纬度数组和 JSON 经度数组在 Google 地图上显示折线?

使用经度和纬度选择半径内的对象[重复]

通过使用纬度和经度的导航调用 maps.app(Apple 地图)

如何使用 Here Map for android SDK 获取纬度和经度?

我如何从 struct 获取纬度和经度并在 mapbox Swift 上显示它们

如何从 CLLocation 变量中提取经度和纬度?