Как извлечь все свойства объекта в список массивов для использования в счетчике - PullRequest
0 голосов
/ 07 января 2020

У меня есть gist, созданный мной, который возвращает тип json.

Я надувал эту суть как layer на своей карте. У меня есть searchBar, который можно использовать в качестве поискового запроса для объектов карты и зданий. Как получить все функции со свойством name в моем arrayList, чтобы я мог надуть счетчик?

@Override
    public boolean onMapClick(@NonNull LatLng point) {
        PointF pointf = mapboxMap.getProjection().toScreenLocation(point);
        RectF rectF = new RectF(pointf.x - 10, pointf.y - 10, pointf.x + 10, pointf.y + 10);
        List<Feature> featureList = mapboxMap.queryRenderedFeatures(rectF, geoJsonLayerId);
        if (featureList.size() > 0) {
            for (Feature feature : featureList) {
                Toast.makeText(SearchActivity.this, feature.getStringProperty("name"),
                        Toast.LENGTH_SHORT).show();
            }
            return true;
        }
        return false;
    }
    @Override
    public void onMapReady(@NonNull final MapboxMap mapboxMap) {
        SearchActivity.this.mapboxMap = mapboxMap;
        mapboxMap.setStyle(Style.MAPBOX_STREETS, style -> {
            mapboxMap.addOnMapClickListener(SearchActivity.this);
            addGeoJsonSourceToMap(style);
// Create FillLayer with GeoJSON source and add the FillLayer to the map
            style.addLayer(new FillLayer(geoJsonLayerId, geoJsonSourceId)
                    .withProperties(fillOpacity(0.5f)));
                    GeoJsonSource source = style.getSourceAs("population-source");
                    if (source != null){
                        List<Feature> features = source.querySourceFeatures(Expression.get("name"));
                        //set autocomplete textview
//Here, I want to fetch all names of buildings from my feature layer into my spinner array for the user to query rendered features,
                       String[] queries = getResources().getStringArray(features);
                       ArrayAdapter<String> adapter = new ArrayAdapter<>((this), android.R.layout.simple_list_item_1, queries);
                        search.setAdapter(adapter);
                        search.setThreshold(1);
                    }
        });
    }
    private void addGeoJsonSourceToMap(@NonNull Style loadedMapStyle) {
        try {
// Add GeoJsonSource to map
            loadedMapStyle.addSource(new GeoJsonSource(geoJsonSourceId, new URI("URI LINK")));
        } catch (Throwable throwable) {
            Timber.e("Couldn't add GeoJsonSource to map - %s", throwable);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...