我有一个hicking应用程序,它从我的数据库中获取一系列标记并在地图上绘制它们,然后绘制连接所有标记的折线。我想要做的是,绘制连接标记的折线,而不是显示10或20或100个标记,而不是仅显示2,即开始的标记和结束的标记。
非常感谢任何帮助。 下面是我用来绘制折线的函数。
private void createPolylinesFromLatLng(ArrayList<LatLng> polylist){
PolylineOptions options = new PolylineOptions().width(5).color(Color.BLUE).geodesic(true);
for (int z = 0; z < polylist.size(); z++) {
LatLng point = polylist.get(z);
options.add(point);
totalDistanceInMeters = SphericalUtil.computeLength(polylist);
test=String.format("%.2f",totalDistanceInMeters);
}
这就是我将标记检索到数组中的方法
JSONArray array = new JSONArray(response);
for (int i = 0; i < array.length(); i++) {
JSONObject jo = array.getJSONObject(i);
Double lat = Double.parseDouble(jo.getString("lat"));
Double lng = Double.parseDouble(jo.getString("lon"));
polyline = new LatLng(Double.parseDouble(jo.getString("lat")),
Double.parseDouble(jo.getString("lon")));
polylist.add(polyline);
// location = new LatLng(lat,lng);
location=polyline;
MarkerOptions options = new MarkerOptions();
options.position(location);
mMap.addMarker(options);
谢谢
答案 0 :(得分:1)
执行此操作的一种方法是将Marker
添加if
语句包围您的代码,如下所示:
if(i == 0 || i == (array.length() - 1)){
MarkerOptions options = new MarkerOptions();
options.position(location);
mMap.addMarker(options);
}
这样只会添加第一个位置和最后一个位置。