Невозможно установить несколько маркеров динамически на Google Maps Android - PullRequest
0 голосов
/ 26 июня 2019

Я использую толкатель для определения местоположения с другого устройства. на моей карте я хочу динамически отображать несколько маркеров из данных толкателя.

Я пробовал несколько решений; но никто не помог достичь того, что мне было нужно, попробовал это сообщение

Вот мой код

JSONObject jsonObject1 = new JSONObject(DataFromPusher);
JSONArray jsonArray = jsonObject1.getJSONArray("Userlocation");
    for (int i =0; i < jsonArray.length(); i++)
    {
        jsonObject = jsonArray.getJSONObject(i);
        lat = jsonObject.getString("Userlatitude");
        lng = jsonObject.getString("Userlongitude");
        cor = new LatLng(Double.parseDouble(lat),Double.parseDouble(lng));
        runOnUiThread(new Runnable() {
        @Override
        public void run() {
        if (marker != null){
        marker.remove();
        }
        marker = mMap.addMarker(new MarkerOptions().position(cor).title(lat+ "  " +lng)
        .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_GREEN)));
    }
});
}

Ответ толкача:

{
    "Userlocation": [
        {
        "Userlatitude": "12.9325340",
        "Userlongitude": "77.5450430"
        },
        {
        "Userlatitude": "12.9325350",
        "Userlongitude": "77.5450440"
        }
    ]
}

1 Ответ

0 голосов
/ 26 июня 2019

попробуйте

            for (int i = 0; i < jsonArray.length(); i++) {
                JSONObject jsonObject;
                try {
                    jsonObject = jsonArray.getJSONObject(i);

                    String name = jsonObject.getString("name");
                    String lat = jsonObject.getString("lat");
                    String lng = jsonObject.getString("lng");

                    final MarkerOptions markerOptions = new MarkerOptions();
                    markerOptions.position(new LatLng(Double.parseDouble(lat), Double.parseDouble(lng)));
                    markerOptions.snippet(name);
                    Marker marker = googleMapWhole.addMarker(markerOptions);
                    markerList.add(marker);

                } catch (JSONException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}
...