2017-02-08 31 views
0

Я некоторое время отвлекался на это и не нашел рабочего решения: Я хочу получить GeoJSON-String с собственного веб-сервера ArcGIS. Я хочу использовать REST-API и работать в браузере. Я просто должен ввести свое имя пользователя и пароль, и после моей аутентификации я могу использовать ссылку для получения GeoJSON-String. В Android я попробовал его с различными решениями, один - конечно же - должен был следовать инструкциям на Esri-Website. Здесь они объясняют, как установить Имя пользователя и Пароль для создания UserCredential. UserCredential теперь передается методу для создания нового ArcGISDynamicMapServiceLayer вместе с REST-Link. Таким образом, они получают новый слой, но нет способа, где вы можете передать UserCredential и Ссылка, чтобы получить только строку. Поскольку я хочу получить полигоны, я подумал, что ArcGISFeatureLayer может помочь мне. Но если я передаю данные User-Informations и Link, я просто верну нуль-Objekt.Доступ к GeoJSON-String с помощью Esri REST-API в Android с Token

Вот отрывок из моих самых-hopefull код:

String url = "https://domain.de/arcgis/rest/services/FeatureEditor/FeatureEditor/FeatureServer/13/query?where=fahrzeug_id+%3D+21+AND+auftrag_revisionnewest+%3D+1+AND+auftrag_id+%3D+45&geometryType=esriGeometryEnvelope&spatialRel=esriSpatialRelIntersects&units=esriSRUnit_Foot&outFields=*&returnGeometry=true&outSR=4326&returnDistinctValues=false&returnIdsOnly=false&returnCountOnly=false&returnExtentOnly=false&returnZ=false&returnM=false&f=geojson"; 
UserCredentials creds = new UserCredentials(); 
creds.setSSLRequired(true); 
creds.setUserAccount("username", "password"); 
ArcGISFeatureLayer featureLayer = new ArcGISFeatureLayer(url,(ArcGISFeatureLayer.Options)null,creds); 

Так что лучше было бы получить только GeoJSON-String как с, доступную ссылку. Но как я могу получить доступ к HTTP с помощью Имя пользователя и Пароль?

ответ

0

Если вы хотите выполнить этот стиль запроса в ArcGIS Android SDK, вам нужно будет сделать это с созданием FeatureLayer, а затем с помощью класса Query определить эквивалент вашей строки запроса. Это возвращает вам FeatureSet, который содержит функции, которые должны иметь информацию, которую вы ищете, но она не будет в форме GeoJSON. В FeatureSet есть метод toJSON, который может дать вам то, что вы ищете, но я не уверен. Если вы просто хотите получить чистый ответ JSON, вам придется выполнять запросы HTTP самостоятельно, настраивая любую аутентификацию, необходимую API REST в вашем запросе, а затем обрабатывая ответ.