Как сохранить файл в geojson с помощью open street map в android studio?

#java #android #geojson #osmdroid #osmbonuspack

#java #Android #geojson #osmdroid #osmbonuspack

Вопрос:

Мне нужно сохранить свои точки в geojson, но я не знаю как

Я уже пытался использовать KML, но не смог, потому что не знаю, нужно ли мне использовать новый класс или нет

Поскольку я не знаю, должен ли я помещать в новый класс или в onCreate, в конце концов он всегда выдает ошибку, и я не могу ее решить из-за отсутствия информации и контактов с этой областью, поскольку я новичок, пожалуйста, помогите мне, это работа в колледже.

  @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //onde mostra a imagem do mapa
        Context ctx = getApplicationContext();
        Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));

        setContentView(R.layout.activity_main);

        //Essa é para poder utilizar as permissões
        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        osm = (MapView) findViewById(R.id.mapaId);
        osm.setTileSource(TileSourceFactory.MAPNIK);
        osm.setUseDataConnection(true);
        osm.setMultiTouchControls(true);
        osm.setClickable(true);
        osm.setBuiltInZoomControls(true);

        if (Build.VERSION.SDK_INT >= M) {
            if (ContextCompat.checkSelfPermission(this, Manifest.permission.INTERNET) != PackageManager.PERMISSION_GRANTED ||
                    ContextCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
                String[] permissoes = {Manifest.permission.INTERNET, Manifest.permission.WRITE_EXTERNAL_STORAGE};
                requestPermissions(permissoes, PERMISSAO_REQUERIDA);
            }
        }

        osm.setMapListener(new MapListener() {
            @Override
            public boolean onScroll(ScrollEvent event) {
                Log.i("Script()", "onScroll ()");
                return true;
            }

            @Override
            public boolean onZoom(ZoomEvent event) {
                Log.i("Script()", "onZoom ()");
                return false;
            }
        });

        mc = (MapController) osm.getController();
        GeoPoint center = new GeoPoint(-5.1251, -38.3640);
        mc.setZoom(14);
        mc.animateTo(center);
        addMarker(center);


        locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED amp;amp; ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            // TODO: Consider calling
            // .
            return;
        }
        locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);

        MapEventsOverlay mapEventsOverlay = new MapEventsOverlay(this, this);
        osm.getOverlays().add(0, mapEventsOverlay);

        // Aqui adiciona a escala do mapa
        ScaleBarOverlay scaleBarOverlay = new ScaleBarOverlay(osm);
        osm.getOverlays().add(scaleBarOverlay);

        kmlDocument = new KmlDocument();
    //    kmlDocument.parseGeoJSON(geoJsonString);

       /* this.mLocationOverlay = new MyLocationNewOverlay(new GpsMyLocationProvider(ctx),osm);
        this.mLocationOverlay.enableMyLocation();
        osm.getOverlays().add(this.mLocationOverlay);*/

        this.mCompassOverlay = new CompassOverlay(this, new InternalCompassOrientationProvider(ctx), osm);
        this.mCompassOverlay.enableCompass();
        osm.getOverlays().add(this.mCompassOverlay);

    }
  

Это мой код, я сделал это до этого момента. Как мне добавить GeoJSON внутри него, должен ли я поместить его в onCreate? Должен ли я создать новый java-файл для развертывания библиотеки или мне нужно это делать с версии 6?

Комментарии:

1. Извините, но я понятия не имею, что вы на самом деле хотите сделать. В частности, какие «точки» вы хотите сохранить? Я не вижу данных, которые были бы кандидатом на сохранение в вашем примере. У вас есть только некоторые общие настройки библиотеки osmdroid — и предполагается, что эта библиотека отображает карту (= набор изображений, называемых плитками) и некоторые дополнительные наложения на карту (контакты и так далее). Если вы хотите извлечь некоторые данные из openstreet map, эта библиотека вам вообще не поможет.

2. здравствуйте, эта библиотека, которую я использую, показывает мне карту, и она по-прежнему ничего не сохраняет внутри GeoJSON, поэтому я смиренно прошу вас помочь мне вставить в нее GeoJSON

3. Я все еще не понимаю, чего вы хотите достичь.

4. Что я хочу сделать, это сохранить свои координаты (широту и долготу), чтобы я мог сохранить эту информацию внутри GeoJSON

5. И откуда берутся эти координаты? Вы имеете в виду текущее местоположение / местоположение вас (вашего устройства) с помощью GPS?