POST
|
Hi! We´re using AGSGDB for offline features in our app. We´ve added a field on our server side database. On such an event, the app detects a change in schema, does a full sync-recreate offline database cycle in order to be able to present this new field in the offline database. This has been working good for us, but now one of the clients are struggling syncing back features to the feature layer with the new field ("MaltAntPl"). The following server log message seem to correlate with this particular client: SEVERE Invalid index for field: MaltAntPl in Layer: Planting. System/SyncTools.GPServer Not sure if related, but we are also tracking the users "last login date", and here we see that the device probably has a bad Date&Time and Locale setting. Any ideas what may cause this? -Any tips on how we can get new fields in the offline GDB without a full re-create?:) Cheers, Kristoffer
... View more
06-30-2015
12:26 AM
|
0
|
3
|
4719
|
POST
|
Yesterday new iOS-clients were no longer able to do initial AGSGDB-offline-sync with our AGS server. Runtime SDK throws the following error upon generateGeodatabaseWithParameters: Error Domain=NSURLErrorDomain Code=-1100 "The requested URL was not found on this server." UserInfo=0x174c77100 {NSErrorFailingURLStringKey=http://xxxxx/MapServer/_ags_data%7B7D7A28CBA33E44DC9939B255BA521B5E%7D.geodatabase?token=mSynh8LuH0jBPn-_zGE1Wb59XV6lmRq4PQL0hc4EVJeoeV2q5Uil7NFjBsffo-YP, I could not find too much of interest AGS server logs, but windows event viewer had an interesting entry: w3wp.exe IIS APPPOOL\ArcGISWebAdaptorAppPool ArithmeticException Overflow or underflow in the arithmetic operation. http://xxxxx/MapServer/_ags_data{E8151DFCCE0F4F22A34CF29C87D3DEAF}.geodatabase?token=mSynh8LuH0jBPn-_zGE1WbbETv3l91Oi0NeUeM6wtLrdQ2AaZ2uj90u7pGLK2V6v /arcgis/rest/directories/arcgisoutput/xxxxxMapServer/_ags_data{E8151DFCCE0F4F22A34CF29C87D3DEAF}.geodatabase I did some testing and found that if I trimmed down the size of the initial sync-db by adding a filter to one of our feature classes (with a lot of large attachments), I was able to continue syncing. The arithmentic exception leads me to believe that this has to do with some variable getting an overflow storing the size of our offline gdb. Thus, if this is a bug, it does not really belong in the Runtime SDK, it´s probably somewhere in the sync-tool on the server side - old clients are still able to sync - I don´t believe this is a client side issue. I don´t have the exatct number on how large the db has become, but I believe it is in the 0.5-1GB range. Thanks, Kristoffer
... View more
06-03-2015
12:52 AM
|
0
|
4
|
4272
|
POST
|
Hi! This app does not have an online mode - as it mainly operate in a disconnected environment. We figured it´s more user friendly to hide the concept of online and offline mode to the end users - all they need to know about is a "synchronize"-operation, and the app always run in "offline" mode. Also, it is hard for us to build the re-create offline gdb into the workflow - the dataset is large and expensive to re-create when not on wifi (both in terms of cellular fees and time). Thanks for clearifying this!
... View more
12-12-2014
11:11 AM
|
0
|
0
|
193
|
POST
|
We don´t maintain any popups. In the app, I´m setting up the popup using poupInfo = [AGSPopupInfo popupInfoForGDBFeatureTable:agsFeature.table]; [[AGSPopup alloc] initWithGDBFeature:gdbFeature popupInfo:popupInfo]; Creating a default AGSPopupInfo on the information from the feature table.
... View more
12-12-2014
12:55 AM
|
0
|
4
|
733
|
POST
|
If you by refresh mean synchronizing the AGSGDBGeodatabase, then yes.
... View more
12-12-2014
12:38 AM
|
0
|
6
|
733
|
POST
|
Hi! The admin performs a restart of the feature service in order to get the new values visible on the rest interface.
... View more
12-12-2014
12:30 AM
|
0
|
8
|
733
|
POST
|
Hi! The admin adds new coded values to an existing schema. An example looking at ArcGIS rest services directory for one of the layers: MyFieldName ( type: esriFieldTypeString , alias: MyAlias , editable: true , nullable: true , length: 30 , Coded Values: , , , ...72 more... ) After creating an offline gdb on the client, these 72 values propagate out to the popups editor in the client, making the end user choose which value to set for this field. But, when admin adds value 73, we´ve not been able to get this last value out to the client. It seems that synchonization does not update the schema/available coded values for the feature tables? Thanks!
... View more
12-11-2014
11:24 PM
|
0
|
10
|
733
|
POST
|
Hi, An app use the AGSPopupsContainerViewController for offline feature editing (AGSGDBFeatures obtained from an offline synced AGSGDBFeatureTable). The popups editor is nice and implementation is efficient.. But this setup seem to have some limitations: The administrator of this app sometimes needs to do domain changes to the feature services, i.e adding coded values for some of the fields. Now, these changes does not seem to propagate out to the clients when synchonizing the offline database. I´ve been able to work around this by setting up a temporary AGSFeatureLayer with a corresponding AGSFeature, matching the AGSGDB table and feature.. But yeah, it´s not a very pretty fix. Any ideas on how to make a better solution to this?
... View more
12-11-2014
02:22 AM
|
0
|
12
|
5248
|
POST
|
Hi Thomas, there are some implementations out there doing similar stuff, for example the GeoWebCache. But I´d start at looking at the Tile Info section of an ESRI tiled map service layer definition, or the GetCapabilities´ TileMatrixSet for a WMTS service. It describes the tiling scheme for the service.
... View more
11-25-2014
11:42 PM
|
0
|
0
|
911
|
POST
|
You don´t need the server in order to cache the data - the clients may do this for you. A tile can be built from a regular request to the WMS-service. All you need to know is the extent of the tile. This you can calculate from some well-known tiling scheme. So, for an area of interest, calculate all the tiles/extends you´d like to prepare for offline, and download them all, and save them to the device in some nice z/y/x pattern so that it´s easy to fetch them later. Then, build a tiled layer using the same well-known tiling scheme. When this tiled layer requests data from the area of interest, return the tiles already stored from disk.
... View more
11-18-2014
03:32 AM
|
1
|
2
|
911
|
POST
|
Hey Thomas Svitil Any luck on this topic? I do have a fair amount of experience on this subject and I´d be happy to detail a bit more on what we´ve been doing in our projects.
... View more
11-17-2014
11:47 PM
|
0
|
4
|
911
|
POST
|
One possible strategy is to use some well known tiling-scheme to build up a cache. Then, download all required tiles for an area of interest onto the device - according to this scheme. Add a tiled map service layer, consuming these tiles from local storage.
... View more
11-06-2014
06:19 AM
|
3
|
0
|
911
|
POST
|
Hi, Thanks for looking into this. A (perhaps) related issue: We also experience, that on this large offline gdb, the first edit is very slow - the [agsgdbfeaturetable save:agsgdbfeature error] takes about 5-15 seconds. The following edits are fast. On the edit operations though, we´re able to run the operation in background threads, to not block ui. But on the synchronization operation we do not get callbacks running on background threads; ui blocks.
... View more
11-03-2014
08:46 AM
|
0
|
0
|
652
|
POST
|
Hi, I´m having an issue when editing a feature using the AGSPopupsContainerViewController. For a particular field, the datatype is esriFieldTypeDate, and when eiting this field, I´d like to only show the year in the date-picker. I´m setting it up something like this: AGSPopupInfo *popupInfo = [AGSPopupInfo popupInfoForGDBFeatureTable:myGdbFeatureTable]; for (AGSPopupFieldInfo *fieldInfo in popupInfo.fieldInfos) { if ([info.fieldName isEqualToString:nameOfDateField]) { info.dateFormat = AGSPopupFieldInfoDateFormatYear; } } AGSPopup *popup = [[AGSPopup alloc] initWithGDBFeature:myGdbFeature popupInfo:popupInfo]; [popupVC setPopups:@[popup]]; But, for any format I´m setting, the format is the default month-day-year. Ideas, anyone? Thanks, Kristoffer
... View more
11-02-2014
01:40 AM
|
0
|
0
|
2409
|
Title | Kudos | Posted |
---|---|---|
1 | 11-18-2014 03:32 AM | |
3 | 11-06-2014 06:19 AM |
Online Status |
Offline
|
Date Last Visited |
11-10-2022
08:24 AM
|