|
BLOG
|
Hey Nicole, Sorry for the slow reply. Not sure how to do that off the top of my head, because I'm not familiar with Web App Builder but if it's the developer edition then you should be able to include custom JS in the app header and use something like the code here to parse the URL and then window.open() to open a fresh URL passing appropriate parameters. I'm assuming you want to open the different app in a new window, but I think this should help. If you got it figured out, please let me know how you did it. Also, it might be worth posting the question in https://community.esri.com/community/gis/web-gis/web-appbuilder's GeoNet space. Cheers, Nick.
... View more
05-26-2017
01:42 PM
|
0
|
0
|
595
|
|
POST
|
Yep. I agree. Keeping a reference is usually the right approach. In very rare cases I've found the need to pass AGSGraphicsOverlay objects around and not necessarily know where they came from or who they belonged to but still know a little about them. In that case you could extend the AGSGraphicsOverlay class something like this: extension AGSGraphicsOverlay {
fileprivate struct AssociatedKeys {
static var referenceNameKey = "geodev_referenceName"
}
var referenceName:String? {
get {
return objc_getAssociatedObject(self, &AssociatedKeys.referenceNameKey) as? String
}
set {
objc_setAssociatedObject(self, &AssociatedKeys.referenceNameKey, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
}
}
}
For more info on associated objects and Swift, see here.
... View more
05-05-2017
01:00 PM
|
1
|
1
|
748
|
|
POST
|
Impossible to say without more information, but I can take a guess. It sounds like you might be creating a desktop locator rather than a Runtime locator, depending on your Python code, but I don't know if you can't open it or you can't call it. If I were you I would generate an MMPK as I outline above (you can of course use Python to do that). That will include your locator ready for runtime use which you can access off the LocatorTask property of the MMPK. It'll also include the VTPK. A benefit there is that the basemap and locator will packaged together and you don't have to worry about deploying them both. But really this is beyond the scope of this thread. You should contact support who can walk you through figuring out the issue.
... View more
04-20-2017
11:05 AM
|
0
|
2
|
1277
|
|
POST
|
Hi Kamal, I would open a support ticket, or ask in the ArcGIS Pro forum. It'll be a balance for the time being. Once we support taking a Vector Tile Service offline from ArcGIS Online, you will be well served by the ArcGIS Online basemap and features approach. However, given the size of the TPKs if you include levels up to level 20 (which may be related to the error you are seeing in 1), if I were you I would use a side-loaded Vector Tile Package on the device. Of course, as you say, locator will still need to be generated in ArcGIS Pro. Yes, when you create an MMPK or export data, you will have options to clip to a given area. That might be the visible map area or some other area you define. That should allow you to export only the area you need. I will check whether the same is true for the locator and will update this answer. [UPDATE: Yes, the locator and network model are clipped appropriately, see the post script below]. Cheers, Nick. P.S. Here are instructions for exporting just the part you need to an MMPK (assuming you've already got the source MMPK open in Pro - I used the USA Northeast Region, but more instructions are here and here😞 Open the Analysis Tab. Pick “Tools” to show the GP Tool browser on the right. Find and select the “Create Mobile Map Package” tool. Specify an output MMPK. This is what you will use in the Runtime app. Specify a locator. USA comes with the source MMPK and will be clipped with the data. Check the “Clip Features” box to exclude data outside of the extent we’ll set up. Set up the extent. The drop-down has convenient options. Here I’ve zoomed the map display to what I want and I pick “Current Display Extent”. Click Run. As long as you’re properly licensed to use StreetMap Pro (your Org Admin must enable this), in a bit you’ll have an MMPK (see step 4) that includes Routing and Geocoding.
... View more
04-13-2017
12:28 PM
|
1
|
5
|
1277
|
|
POST
|
Hi Kamal, A reply of yours (which you now seem to have replaced with this one) said you have licensed Streetmap Premium North America. That leads me to wonder why you are using ArcGIS Online at all. You have the source data to generate MMPKs (including geocoder and network model) of just the area you need, so I don't see that publishing to ArcGIS Online and then taking the data offline buys you anything. In that reply you also asked about TPKs vs VTPKs. Since you have the source data, and you want to go offline, I would go for VTPKs if at all possible. These are much smaller, take a much shorter time to create, and are rendered at the best resolution your device can manage. This code will get you roughly to Manhattan. Play with the scale and lat/long to start exactly where you want: self.map.initialViewpoint = AGSViewpoint(latitude: 40.7128, longitude: -74.0059, scale: 200000) Also take a look at the Bookmarklets here. Add the "Get Map Info" bookmarklet to your browser's favorites bar, then open the ArcGIS Online map viewer and navigate to the map area you want. Click the bookmarklet favorite and you'll get a display of some map info. Cheers, Nick. P.S. A couple of observations: you seem to be deleting and replacing replies (e.g. the one that mentioned StreetMap Premium and asked about TPKs vs VTPKs), and this topic has strayed to other topics that would be better discussed in another forum, DM, or by opening a support ticket (especially the case of "Staging failed" which we'll need much more log info to diagnose). Keeping discussions in the right place improves the chance that other people can benefit from them.
... View more
04-07-2017
12:23 PM
|
2
|
8
|
1412
|
|
POST
|
Absolutely. So far we've been talking about taking existing data that you've obtained elsewhere as a CSV or Shapefile, but it sounds like you actually might simply want an empty FeatureService+Layer for redlining (or perhaps one for points, one for lines, and one for polygons). You can do this at the developer portal (log in with your org credentials). This will give you a lot of control over attribute names and types that go with each record. This DevLab explains how to do that: Create a new dataset Once you create a layer through the developer portal you will see it in the main ArcGIS Online My Content browser. But there is another option that might work for you. You can create a Feature Layer directly in the My Content browser from a Template. Select Create->Feature Layer, and look at the From Template tab. There's a Road Closures template that could work for you. Here's a blog post about that functionality. [Update: Here's the documentation on that too] Nick P.S. I recommend you take a look at all the DevLabs, but in particular the Data section sounds like it could be useful to you.
... View more
04-04-2017
11:56 AM
|
0
|
11
|
1412
|
|
POST
|
Hi Kamal, If the layers are based off CSVs, that's correct. If they're based off Shapefiles, my above description will get you a single Service with multiple Layers without using ArcMap or ArcGIS Pro. But I'm not sure I understand "customize shapefile at own level". Perhaps you mean modifying shapefiles (changing data, adding or removing fields)? If so, there is some limited stuff you can do in the browser. You can of course edit data and then you can export a FeatureLayer as a Shapefile using the Extract Data analysis tool. In fact, you might be able to use this workflow to upload multiple CSVs, extract them as multiple Shapefiles which you would then put into one folder locally before zipping and uploading that to create a single Service with multiple Layers. It's convoluted, but it should work. You're also able to add and delete fields from a Feature Layer if you own it. This is done from the Table View in the ArcGIS Online Map Viewer. In general, the Desktop tools significantly simplify many of these workflows. With Desktop you have good ways to script these workflows too with arcpy, although the new ArcGIS API for Python might be worth looking at for scripting some of this ArcGIS Online administration without a need for Desktop. Hope that helps, Nick
... View more
04-04-2017
07:51 AM
|
0
|
13
|
1412
|
|
POST
|
Hey Kamal, Services with Multiple Layers For creating multiple layers within one service from CSVs, as Yue mentions you currently have to use the Desktop tools. There are plans for an enhancement to enable this without Desktop tools but I don't have a timeline. If you had Shapefiles instead of CSVs, you could combine the Shapefiles for each layer you want in a single folder, zip up that folder, and upload it. The zip file name will determine the Service name and each Shapefile will become a Layer within that Service (note: a "Shapefile" is made up many constituent parts - you would combine all those parts from all the Shapefiles in one flat folder, zip that up and upload it). I did that here (here is the REST endpoint). Additionally, if you uploaded a File Geodatabase, that can be published as a Service with many Layers. REST Actions to Create Replica When you use the Runtime's AGSGeodatabaseSyncTask, it's using the REST Create Replica endpoint behind the scenes. Since you're using the Runtime you don't have to worry about this as it wraps all that up for you. Yue was just referring to that. I would add to Yue's response below that you don't need to dig into the REST APIs if you're OK with the Runtime SDK samples, but if you really want to get into the weeds, use the REST docs as reference. Incidentally, you might find these two videos from the recent Developer Summit useful if you want to find out more about your options for working offline with the Runtime: ArcGIS Runtime: Working with Maps Online and Offline and ArcGIS Runtime: Editing Your Data Online and Offline Cheers, Nick.
... View more
04-03-2017
07:49 PM
|
0
|
15
|
1412
|
|
POST
|
Thanks for the additional info, Yue Wu. Kamal Mittal To clarify, even though you need to provide a geometry to the AGSGenerateGeodatabaseParameters.extent property, setting the layer options as you did should override that and return all data.
... View more
03-30-2017
12:56 PM
|
0
|
1
|
1757
|
|
POST
|
Hey Kamal, Could you be a little more specific about what error you're getting?
... View more
03-29-2017
09:19 PM
|
0
|
1
|
1757
|
|
POST
|
Hi, It's not included in the SDK, but I have written an implementation for the 10.2.x Runtime: GitHub - nixta/clusterlayer-plugin-ios: A cluster layer extension to the ArcGIS Runtime for iOS I'm in the process of updating it for the new v100 Runtime but that's still a little way off. I'm curious. Were you looking for a cluster layer for the old v10.2 Runtime or the new v100 Runtime? Cheers, Nick.
... View more
03-29-2017
10:43 AM
|
2
|
4
|
3184
|
|
POST
|
Not at this time. However, if you have an offline geodatabase (you can get that by taking a FeatureService offline, from ArcGIS Desktop's "Export for Runtime" tool, or from an MMPK), you could query against that. It's not as streamlined as using a Locator for geocoding (for example, the performance may not be optimized for geolocating, you might get more or fewer results than expected, you will not get a suggestions API, the geodatabase file could end up larger than the locator file would have), but depending on your requirements it could serve your purpose. When you take the feature service offline, ensure that you include the field(s) you want to search on. Then once you have your AGSGeodatabaseFeatureTable, you can call queryFeaturesWithParameters:completion. Depending on the geometry type of the feature service you may need to process the results to get a suitable extent to zoom to. Nick.
... View more
03-27-2017
11:01 AM
|
1
|
1
|
1113
|
|
POST
|
Hi Kamal, I'm not sure I understand what you mean by "like streetmap premium or Google map". As it is, the tool can download the basemap types listed when you click the basemap picker below the zoom controls. The full set of Esri-provided basemaps that are available can be found in this group. You would modify this code to add any other suitable service layers ("suitable" means they must have offline enabled). Generating a TPK through the tool requires that the tiles are hosted by ArcGIS Online or ArcGIS Server and the tile service is configured to enable TPK export (see step 6 here). So you cannot get Google Maps. Related, we have negotiated with our various data providers to enable the data to be taken offline so you don't have to worry about that. This applies to all the maps in the group I link to above. If you have Streetmap Premium, you can generate your own TPKs/VTPKs/MMPKs but you will currently need to use the desktop tools to do that. Cheers, Nick.
... View more
03-27-2017
10:50 AM
|
0
|
1
|
2392
|
|
POST
|
Hi Kamal, You could try this tool: Tile Package Estimator Sign in with an ArcGIS Online Org or Developer account and you can get an estimate for how big the TPK will be. The tool can also create a TPK to download (once it's generated, you'll see a download icon). Note that a TPK covering high zoom levels will be very large. There is also a limit of 100,000 tiles for the TPKs these services generate. Going to level 17 and not including Staten Island will be about 28,000 tiles (about 385Mb). 438,000 tiles to level 19 (so you couldn't generate that TPK from these services). Vector Tile Basemaps in a VTPK would be a much smaller size but you currently need the source data (e.g. Streetmap Premium) and ArcGIS Pro to create those. Cheers, Nick. P.S. Note: this tool is not an official Esri tool and is not supported but it's not doing anything unusual: See the source here.
... View more
03-27-2017
08:15 AM
|
0
|
6
|
2392
|
|
POST
|
Hi Kamal. At this time you need to use ArcGIS Desktop or ArcGIS Pro to generate these. The locator can also be part of a Mobile Map Package.
... View more
03-27-2017
07:41 AM
|
0
|
3
|
1113
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 11-05-2025 10:52 AM | |
| 1 | 11-04-2025 08:55 AM | |
| 1 | 11-04-2025 08:38 AM | |
| 1 | 11-01-2025 03:25 PM | |
| 1 | 10-29-2025 10:28 AM |