android中的标记google maps json

时间:2018-06-14 14:01:53

标签: android json google-maps

我有一个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);

谢谢

1 个答案:

答案 0 :(得分:1)

执行此操作的一种方法是将Marker添加if语句包围您的代码,如下所示:

if(i == 0 || i == (array.length() - 1)){
    MarkerOptions options = new MarkerOptions();
    options.position(location);
    mMap.addMarker(options);
}

这样只会添加第一个位置和最后一个位置。