Как сохранить полигон из карты Google в базу данных sqLite - PullRequest
2 голосов
/ 26 марта 2020

Я работаю с Google Maps в android студии, в которой я рисую многоугольник на карте. до этого все шло отлично, но теперь я хотел сохранить этот полигон в базе данных sqlite и затем извлечь эти данные в listView. Теперь я не понимаю, как реализовать это в моем коде. если у кого-то есть идеи по этому поводу, то, пожалуйста, спасите меня.

вот мой код, где я рисую полигон:

     @Override
public void onMapReady(final GoogleMap googleMap) {
    final List<LatLng> latLngList = new ArrayList<>(); // list of polygons
    final List<Marker> markerList = new ArrayList<>();
    mMap = googleMap;


    LatLng center = new LatLng(currentLocation.getLatitude(), currentLocation.getLongitude());
    final MarkerOptions markerOptions = new MarkerOptions().position(center).title(center.latitude + ":" + center.longitude);
    mMap.clear();
    googleMap.animateCamera(CameraUpdateFactory.newLatLng(center));
    googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(center, 18));
    googleMap.addMarker(markerOptions);

    mMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {

        @Override
        public void onMapClick(final LatLng latLng) {
            int height = 50;
            int width = 30;
            BitmapDrawable bitmapdraw = (BitmapDrawable)getResources().getDrawable(R.mipmap.marker);
            Bitmap b = bitmapdraw.getBitmap();
            Bitmap smallMarker = Bitmap.createScaledBitmap(b, width, height, false);
            /*Marker marker = googleMap.addMarker(markerOptions);*/
            Marker marker = mMap.addMarker(new MarkerOptions().position(latLng).draggable(true).icon(BitmapDescriptorFactory.fromBitmap(smallMarker)));
            markerList.add(marker);
            latLngList.add(latLng);

            drawPolygon(latLngList);
            polygon.setClickable(true);
        }
    });

    mMap.setOnMapLongClickListener(new GoogleMap.OnMapLongClickListener() {
        @Override
        public void onMapLongClick(LatLng latLng) {
            polygon.remove();
            /*marker.remove();
            markerList.remove(marker);*/

        }
    });
}

private void drawPolygon(List<LatLng> latLngList) {

    if (polygon != null) {
        polygon.remove();
    }

    PolygonOptions polygonOptions = new PolygonOptions();
    polygonOptions.fillColor(0x7F228B22);
    polygonOptions.strokeColor(Color.GREEN);
    polygonOptions.strokeWidth(5);
    polygonOptions.addAll(latLngList);
    polygon = mMap.addPolygon(polygonOptions);
}

мой список будет выглядеть как [! [this] [1]] [1]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...