POST
|
Thanks for the feedback Akhil. I created a newmobile cache from the same feature class and put a new project onto my handheld. I added a feature and then synced it back. There were no problems. The feature showed up in Arc Map. If the featureclass was modified do I have any options to get the data off the handheld? That's a good question. I have read some people were able to modify the checksum value located in the amp file on the field computer and get the data to sync. I have personally not tried this nor know what the checksum value needs to be changed to in order for you to be able to sync your data. I would check on the forums or online if anyone else had this issue and solved it. There are 2 general rules I tell everyone in my office. 1. Do not touch my mxds, unless following specific procedures and never save the mxd once using it. 2. Do not touch the structure or abilities of a featureclass using for ArcGIS Mobile because it will cause my app to not sync anymore. Once again I do have procedures that allows my co-workers to modify the data within my featureclasses but nothing to add or remove fields or change from an un-registered featureclass to a registered feature class and etc. Sorry I couldn't be of much else help to you. Working with the MXDs and FeatureClasses for the use of ArcGIS Mobile is very particular, if you touch it, you will likely break the sync component.
... View more
05-23-2014
12:14 PM
|
0
|
0
|
660
|
POST
|
Hi John, Ok I understand what you are trying to do but I am not sure why you would like to synchronize to the MXD as opposed to the service URL? Is there any benefit of using the MXD path? I am not sure if you can even sync with the MXD path. If you do get this to work, please post the solution if possible. Cheers.
... View more
05-23-2014
11:46 AM
|
0
|
0
|
245
|
POST
|
I will try to help but I am still using 10.0. When you create a mobile project using Project Center, you need to indicate where the mobile services are located. This is where it is important to use the Fully Qualified Domain Name. In your case try to make an project with either of the server names you have provided. servername.bcc.scgov.local:6080 ags2.scgov.net Once you are out in the field collecting data and trying to sync you need to make sure that the external server name is being used. There may be some adjustments required if you are using an SSL certificate. If you want to use the internal server name, that's fine but you will need a VPN connection to your network. One way to test if your project is using an internal server name is to collect a few points of data, then connect the computer to your network via Ethernet (or a Ethernet to USB adapter) and press sync. If the sync works then you are obviously doing something right, but just using an internal server name. I don't have any experience with an SSL, my field computers are connected to a VPN for syncing so they don't have any problems. If I remove the VPN connection, field teams would not be able to sync. I hope this helps. Regards, Akhil P.
... View more
05-23-2014
07:27 AM
|
0
|
0
|
993
|
POST
|
HI John, I am a little confused on what you want to do. Do you want to use the ArcGIS Mobile SDK to sync to the server? Do you want to use ArcObjects and a MXD and use the GP Tools? Or something else? When using the ArcGIS Mobile SDK it is possible to program your own sync code, this is what I do for my own application. I will quickly give a rough idea.
MobileCache mobileCache = new MobileCache("physical location of your mobilecache on the field computer");
MobileServiceConnection msc = new MobileServiceConnection();
msc.Url = "your arcgisserver name + /arcgis/services/ + name of the service + /MapServer/Mobileserver");
msc.CreateCache(mobileCache.StoragePath);
mobileCache.Open();
foreach (Layer aLayer in mobileCache.Layers)
{
if(aLayer.Name == "the name of the layer you are trying to sync")
{
FeatureLayer aFeatureLayer = (FeatureLayer)aLayer;
FeatureLayerSyncAgent flsa = new FeatureLayerSyncAgent(aFeatureLayer);
flsa.MapDocumentConnection = msc;
flsa.SynchronizationDirection = SyncDirection.Bidirectional;
SyncResults results = new SyncResults();
results = flsa.Synchronize();
}
}
I hope this helps/is what you are looking for. If you have any other questions feel free to ask on the forums. Regards, Akhil P.
... View more
05-23-2014
07:17 AM
|
0
|
0
|
245
|
POST
|
Maybe the featureclass was modified after the mobilecache was create for the field computers, thus causing a checksum problem for syncing. I would suggest creating a new featureclass with global IDs and then creating a project and loading it into each of your field computers. Then try syncing again. If that works then I do believe that the featureclass was modified. Otherwise you may need to provide more information about he featureclass and how you loaded the the project onto each computer.
... View more
05-23-2014
06:56 AM
|
0
|
0
|
660
|
POST
|
Hi, This thread is for ArcGIS Mobile and I am confused by your first question. Maybe your first question should be in another section or could you clarify how you are creating bookmarks and where they are located on your interface. Once again I think you are looking at a web app (mentioned in your title). For your second question it does seem possible to do what you are asking but I need to understand your workflow. Please provide a real example so that we can talk about the same objects. I am going to take a shot at what you are trying to explain and see if this workflow matches what you requirements. 1. Employee goes to a park named St. Peters Park. 2. Employee open the ArcGIS Mobile project with 2 layers, one called Parks (polygon) and the second layer called Benches (point) (there could be other layers like lamps, garbage cans, etc). 3. Employee uses the GPS and collects the location of a bench in the park. The Attribute table appears, they fill out the all of the attributes necessary, like number of seats, colour, and associated park name (dropdown of 400 park names). 4. Employee finishes collecting the bench, but is not sure if they recorded the correct park name because there are so many names, plus the clients would be unsure if the associated park name was correct, meaning that the data could have errors. Hence you would like to automate the park name portion so that the users don't have select a park name from the list of 400. Yes this would be possible as long as you have these 3 things. 1. A parks polygon layer. Each park should have a field called parkname or name and it should be populated with the appropriate park name. 2. A different point layers for example Bench, Lamp, GarbageCan but with a common field called ParkName or Park. This field would be auto-populated using the same code, you really don't want different field names for each of these layers for the parkname. 3. A GPS or use Sketch Point (by map) to indicate where the point feature is located. In this case when you collect a Bench point using GPS the current GPS location must be inside the actual park, same goes for if you manually indicate where the bench is (not using GPS). The general concept of this workflow is simply called a Spatial Intersect. I am personally using this feature for a similar usecase like you. Here's roughly what you need to do. 1. Get the feature you are creating/editing: //pass the feature object into your method Intersect (Feature feature)
{
2. Obtain the layer you will be intersecting with
FeatureLayer parksFeatureLayer = MobileApplication.Current.Proeject.FindFeatureLayer("Parks");
3. Perform a query (spatial).
QueryFilter spatialQueryFilter = new QueryFilter(feature.Geometry, GeometricRelationshipType.Intersect);
FeatureDataTable featureDataTable = parksFeatureLayer.GetDataTable(spatialQueryFilter);
4. Get data from the parks layer
If(featureDataTable.Rows.Count !=0)
{
DataRow aRow = featureDataTAble.Rows[0];
string parkName = aRow.Field<string>("name");
}
5. Set the parkname into the feature you are collecting. I have not tested this particular line of code but I think it should work.
feature.FeatureDataRow["name"] = parkName;
}
I hope this helps. Please inform us of your findings. Regards, Akhil P.
... View more
05-23-2014
06:44 AM
|
0
|
0
|
170
|
POST
|
Hi Luka, I am replying here so that everyone can see how to do this. First make and an extension to your Out-Of-The-Box WPF ArcGIS Mobile Application. There are guides on how to make an extension. The code to get rid of the menu items under the GPS symbol in the top right corner is: MobileApplication.Current.GpsMenuItems.Clear(); When users click on the GPS Icon in the top right corner no menu items will appear. Meaning users will not be able to see their GPS status or Connect or Disconnect the GPS. But if you remove the menu items to below the GPS Icon, users won't be able to connect to the GPS unless you have coded a function to connect to the GPS. In my application I have a button as part of the IStartUp Pages which will allow the users to click on own (coded) connect to GPS button. Here's the code on how to connect to the GPS using code: SerialPortGpsConnection aSerialPortGpsConnection = (SerialPortGpsConnection)MobileApplication.Current.GpsConnectionManager.GpsDisplay.GpsConnection; aSerialPortGpsConnection.PortName = "Auto"; SerialPortGpsConnection.Open(); I would put this into a try and catch in the case that you don't have a physical gps connected yet, or if the GPS is not yet sending NMEA strings to the computer/ArcGIS Mobile. If you have any further questions please let me know. Regards, Akhil P.
... View more
05-23-2014
05:39 AM
|
0
|
0
|
176
|
POST
|
Hi, I personally still use the 10.0 SDK. I had a look at the latest SDK because I also use the DisplayExpression object. In this link, click on Index, then Find (CTRL + F), type DisplayExpression, you will see that the property is within the MobileCacheMapLayerDefinition object. http://resources.arcgis.com/en/help/windows-mobile-sdk/3.1/apiref/index.html If you don't mind, once you do get it to work, please share the code for others. I hope this helps.
... View more
05-07-2014
06:58 AM
|
0
|
0
|
260
|
POST
|
Hi, You can set default values from the database side, for example when you create your featureclass you can state default values, coded domains and ranges. I don't think you can create default values from the Mobile Project Center, mind you I am still using 10.0.
... View more
04-24-2014
07:14 AM
|
0
|
0
|
176
|
POST
|
Are you guys registering your featureclasses/featuredatasets as versioned? Or are you not registering as versioned? There are 3 options: Not registering as version = fast sync from my experience Registering as versioned without moving edits to base = fast sync but to the delta tables - meaning the actual feature classes doesn't contain the updated features until you reconcile Registering as versioned with moving edits to base = slow sync, writes to the delta tables and then moves the data to the actual featureclass. I personally don't register as versioned, it write straight to the featureclasses and all you have to do in ArcMap is press the little refresh button. If I registered as version and move edits to base then I wouldn't have to press the refresh button in ArcMap, but my mobile app would take forever to sync. I hope this helps.
... View more
04-16-2014
05:30 AM
|
0
|
0
|
656
|
POST
|
I have personally used ArcPad several years ago when I was a GIS student and it is definitely good for basic GIS personnel. ArcGIS Mobile was meant to be used by people with no GIS experience because the out-of-the-box-solution provides a simple and easy to use interface for data collection. Depending on what equipment you are using this will require some hardware setup, for example if you are using a laptop and an external GPS, your employees will need to know how to setup a GPS to work with ArcGIS Mobile. When I first embarked on my project the hardest thing for me to figure out was the GPS. The greatest feature of ArcGIS Mobile is that you can code you own extensions to make workflows that meet your business requirements. For example I am using the out-of-the-box-solution but I coded my own data collection functions and I got rid of the ESRI's Data Collection feature. If you are a programmer and have a lot of time, you can create something really impressive, but it is tough. I do not have any experience with Collector but I am quite interested in it when it becomes more mature. Regards, Akhil P.
... View more
04-11-2014
07:54 AM
|
0
|
0
|
170
|
POST
|
My application is very unique in the way I use it. I actually use the out-of-the-box solution, for the forms (attribute form) and nice interface it has. But all of the data collection and other features are through my code, not ESRI's Data Collection tasks. In addition, I am able to change the service that my app uses before loading ArcGIS Mobile, I will give you an example that is similar but nothing to do with my type of data. Service #1: Layer name: Temperature Layer Type: Point Classes and Symbology: - 0 to 12 degrees Celsius = Blue circle, size 8 pt - 13 to 18 degrees Celsius = Orange circle, size 8 pt - >19 degrees Celsius = Red circle, size 8 pt I can tell my app to load this service and my field teams can collect data using this classification and symbology. The next day my boss may want a different number of classes and symbology. Service #2: Layer name: Temperature Layer Type: Point Classes and Symbology: - 0 to 9 degrees Celsius = Blue fill with black beaker (multi-layer character marker symbol), size 12 pt - 10 to 12 degrees Celsius = Yellow fill with black beaker, size 12 pt - 13 to 8 degrees Celsius = Orange fill with black beaker , size 12 pt - >19 degrees Celsius = Red fill with black beaker, size 12 pt I have an app on the server, using ArcObjects to create an MXD with the classes and symbology that my boss would need (custom classes and symbology) and it will then create a service that my Mobile app can use for data collection. I no longer manually create the MXD required for a mobile application, normally it would take me 1 to 5 hours to create a perfect MXD and then publish it. Instead my app can create a service in less than 30 seconds. My organization's requirements were to have a separate FeatureDataSet for every deployment into the field. So in this example, as long as the layer's name is Temperature, my application will understand how to collect data and symbolize it accordingly. I agree the table in the link I gave you is really not detailed for what we need, your best bet is trial and error. I was very lucky that a customized multi-layer character marker symbol worked in both ArcGIS Mobile and in our Silverlight Web Mapping application. Once again I have yet to try Poly Lines and Polygons. I'm sure my managers would want this kind of feature in the future. Regards, Akhil P.
... View more
04-11-2014
07:28 AM
|
0
|
0
|
401
|
POST
|
I am still using 10.0 but I'm sure I had this problem several years ago. When you use ArcGIS Project Center make sure you are using the fully qualified domain name (FQDN) of the server. Before adding the service to your project, you need to type in the name of the server of where your services are located. In some cases you need the FQDN depending on how the server is setup. An example without FQDN: MyGISServer/Arcgis/mobile With FQDN: MyGISServer.division.local/Arcgis/mobile I hope this helps.
... View more
04-11-2014
07:08 AM
|
0
|
0
|
492
|
POST
|
Greetings, Here is a link to the supported symbology: http://resources.arcgis.com/en/help/windows-mobile/app/index.html#//007v00000006000000 I think it is a little old but should be still valid. I personally use the CharacterMarker Symbols and I code the symbology using the MultiLayer object. Meaning I can make my own custom symbols from different Fonts and CharacterMarkers. I exclusively use Point symbols for now, I have not tried line or polygons yet. I hope this helps.
... View more
03-28-2014
11:05 AM
|
0
|
0
|
401
|
POST
|
Hi Tim, I am still a little confused as to how you want to accomplish your tasks, but I can give you my workflow with a rough example and hopefully it can shed some light on this. Layer name: Person Fields: Methodology, Height_1, Height_2. Default Values from the Geodatabase: "", 99, 99 When the user clicks on Collect Height on the interface, a IPage will appear with 2 buttons, Laser or Measuring Tape. If the user clicks on Laser, the Methodology field will automatically have the word "Laser" inserted and then the Height_1 field will be made available in the attribute form. But Height_2 will be hidden and set to " ". If the user clicks on Measuring Tape, then the Methodology field will automatically have the words "Measuring Tape" and then the Height_2 field will be made available in the attribute form. But Height_1 will be hidden and set to " ". I am modifying the Feature's DataRow values and hiding fields from the Attribute form accordingly. PS: I'm still using ArcGIS Mobile 10.0 and this was a just a simple example of what I do for my Sampling module. I hope this helps.
... View more
03-28-2014
08:07 AM
|
0
|
0
|
389
|
Title | Kudos | Posted |
---|---|---|
1 | 02-07-2013 06:53 AM |
Online Status |
Offline
|
Date Last Visited |
08-10-2021
08:07 AM
|