Как вернуть объекты с помощью StreetMap Premium mmpk - PullRequest
0 голосов
/ 09 мая 2020

Я разрабатываю приложение с использованием ArcGIS Runtime SDK для Java и пытаюсь вернуть маршрут от точки до ближайшего объекта (например, больницы), используя ArcGIS StreetMap Premium (SMP) mmpk

Я создал параметры для ClosestFacilityTask (cft) и загрузил файл базы геоданных SMP mmpk, а затем создал параметр запроса типа «Больница» для таблицы GeodatabaseFeatureTable «Landuse_FacilityAreas_g2_288k» :

final ListenableFuture<ClosestFacilityParameters> parameters = cft.createDefaultParametersAsync();

        parameters.addDoneListener(() -> {
            try {
                ClosestFacilityParameters cfp = parameters.get();
                cfp.setReturnRoutes(true);
                cfp.setReturnDirections(true);

                Point fromMapPoint = new Point(103.847376, 1.390431, SpatialReference.create(4326));
                Incident incident =  new Incident(fromMapPoint);
                cfp.setIncidents(Arrays.asList(incident));

                Geodatabase geoDB = new Geodatabase("D:\\Map Data\\Singapore\\p14\\asiapacific.geodatabase");
                geoDB.loadAsync();
                geoDB.addDoneLoadingListener(() -> {

                    QueryParameters qp = new QueryParameters();
                    ArcGISFeatureTable facilityTable = geoDB.getGeodatabaseFeatureTable("Landuse_FacilityAreas_g2_288k");

                    qp.setWhereClause("Type='Hospital'");
                    cfp.setFacilities(facilityTable, qp);

                    ListenableFuture<ClosestFacilityResult> solveResult = cft.solveClosestFacilityAsync(cfp);
                    solveResult.addDoneListener(() -> {
                        try {
                            ClosestFacilityResult cfr = solveResult.get();  

                            for (int i = 0; i < cfr.getIncidents().size(); i++) {
                                List<Integer> ranked = cfr.getRankedFacilityIndexes(i);

                                for (int x : ranked) {
                                    ClosestFacilityRoute route = cfr.getRoute(x, i);
                                    graphicsOverlay.getGraphics().add(new Graphic(route.getRouteGeometry(), new SimpleLineSymbol(SimpleLineSymbol.Style.DASH, 0xFF0000FF, 3)));
                                }
                            }
                        } catch (Exception e) {
                            e.printStackTrace();
                        }

                    });

                });

            } catch (Exception e) {
                e.printStackTrace();
            }

        });

Однако он возвращает следующую ошибку: SQL ошибка или отсутствует база данных: такого столбца нет: Введите

Может ли кто-нибудь помочь мне в этом? Большое спасибо!

Джеймс

...