Как сохранить файл в геойсоне, используя открытую карту улиц в андроид студии? - PullRequest
0 голосов
/ 11 апреля 2019

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

Я уже пытался использовать 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 && 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 мне нужно это сделать?

...