Josileudo Rodrigues
Josileudo Rodrigues

Reputation: 2009

How to save a file in geojson using open street map in android studio?

I need to save my points within a geojson, but I do not know how

I already tried using a KML, but I could not because I do not know if I need to use a new class or not

As I do not know if I should put within a new class or within the onCreate, it ends up always giving error in the end and I can not solve it for lack of information and contact with this area, as I am new, please help me, It's a college job.

 @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 && 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);

    }

This is my code, I made it up to that point. How do I add the GeoJson inside it, should I put it inside the onCreate? Should I create a new java file to deploy the library or from version 6 do I need to do this?

Upvotes: 0

Views: 298

Answers (0)

Related Questions