如何创建一个包含纬度和经度的数组并使用 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以上是关于如何创建一个包含纬度和经度的数组并使用 for 循环在 android 中标记谷歌地图上的位置的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JSON 纬度数组和 JSON 经度数组在 Google 地图上显示折线?
通过使用纬度和经度的导航调用 maps.app(Apple 地图)
如何使用 Here Map for android SDK 获取纬度和经度?