|
POST
|
So, I have some information, but it means you'll have to write some code yourself 🙂 Take a look at this code form Terraformer, which shows how to decompress this geometry using JavaScript. You'd have to translate that to Swift of course but it should show how to do it. function decompressGeometry(str) {
var xDiffPrev = 0;
var yDiffPrev = 0;
var points = [];
var x, y;
var strings;
var coefficient;
// Split the string into an array on the + and - characters
strings = str.match(/((\+|\-)[^\+\-]+)/g);
// The first value is the coefficient in base 32
coefficient = parseInt(strings[0], 32);
for (var j = 1; j < strings.length; j += 2) {
// j is the offset for the x value
// Convert the value from base 32 and add the previous x value
x = (parseInt(strings[j], 32) + xDiffPrev);
xDiffPrev = x;
// j+1 is the offset for the y value
// Convert the value from base 32 and add the previous y value
y = (parseInt(strings[j + 1], 32) + yDiffPrev);
yDiffPrev = y;
points.push([x / coefficient, y / coefficient]);
}
return points;
} This pull request also includes a test that could help. If you come up with a Swift version of this, please share! I won't have time to try until next week, but it should be achievable. For reference, here is some really old documentation that explains the process.
... View more
08-18-2022
06:44 AM
|
0
|
4
|
2589
|
|
POST
|
ArcGIS Runtime SDK for iOS cannot open file geodatabases (you would need Local Server for that, which is only available on .NET, Java, and Qt when deploying to Windows or Linux). I would suggest using ArcGIS Pro to create a Mobile Geodatabase, which can be opened using the AGSGeodatabase class. You could also conceivably use a GeoPackage but a) that is more limited than a Mobile Geodatabase in terms of the schema it supports (attachments, related records, domains, etc.) and b) it would require a Standard Runtime license.
... View more
08-18-2022
06:32 AM
|
0
|
1
|
852
|
|
POST
|
You cannot load a local .tiff file with a Lite license. However, you could use ArcGIS Pro to create a tile package (.TPK to .TPKX file) of elevation from the TIFF. Since TPK and TPKX are proprietary Esri formats, they can be used with the Lite Runtime license. That can then be used as an elevation source using AGSArcGISTiledElevationSource.
... View more
08-18-2022
06:28 AM
|
0
|
0
|
918
|
|
POST
|
Using local raster files requires a Standard level license. You are most likely using the free Lite license.
... View more
08-17-2022
06:59 AM
|
1
|
2
|
926
|
|
POST
|
I see. Interesting. I'll do some digging and will let you know what I find out. In the meantime, does your server specify returnRoutes=true? My understanding (though I'm slightly guessing at this point) is than maneuver geometries come back compressed, but the overall route geometry should be a full Esri JSON geometry that you could pass to AGSPolyline.fromJSON.
... View more
08-12-2022
07:39 AM
|
0
|
0
|
2611
|
|
POST
|
🫣 Could you share your code that does that please? I'd like to understand why that's happening. Could be helpful in documenting things.
... View more
08-12-2022
07:37 AM
|
0
|
0
|
3533
|
|
POST
|
@coryeicher wrote: Well, there's one vector tile basemap that works in Unity, but it's underwhelming for most purposes.... Blank White Vector Basemap No vector tile layer works in the ArcGIS Maps SDK for Unity. If it shows up as blank white tiles in Unity, that's just a happy coincidence 🙂
... View more
08-12-2022
07:18 AM
|
0
|
2
|
3537
|
|
POST
|
The Layers documentation page in the ArcGIS Maps SDK for Unity documentation covers the layer types that are currently supported: In ArcGIS Maps SDK for Unity, basemap layers are currently limited to image tile layers. Image tile layers can use an online image tile service or a local image tile package as a data source. See Image tile layers below for more information. Specifically: Basemap layer types Data layers But in short, we currently support image tile layers as basemap and data layers, and 3D object scene layers and integrated mesh scene layers as data layers. All layer types can read from a service or a local package.
... View more
08-12-2022
07:15 AM
|
1
|
0
|
630
|
|
POST
|
Hi, The requirement is that you use image tiled layers. Unfortunately (as @SNauman mentioned) we weren't able to get support for vector tile layers in for this first release, but it's one of our top priorities. Until we add vector tile support… You can use a .tpkx or .tpk created in ArcGIS Pro. You can publish an image tile service from ArcGIS Pro. You could use a layer that's already published in ArcGIS Online. You can see a few examples published by Esri here (though because they're image tile layers, many of them are deprecated, so while you can dev/test with them, don't use them in production). You could even use ArcGIS Pro to create an image tile layer of a map that just has a vector tile layer: I haven't tried this workflow, but I believe that in theory you could create a custom style in the Vector Tile Style Editor, create a Map in ArcGIS Pro using that custom style, and use ArcGIS Pro to export that to an image tile layer (I think ArcGIS Pro just refers to them as "tile layers") either as a local tile (.tpkx/tpk) or as a hosted service in ArcGIS Online. That would also probably be OK for dev & test if you're using our published basemaps as the source data but you'd need to talk to us about using that in production. Those are all stopgap options until we add vector tile support to the Maps SDKs. At that point this will become much simpler.
... View more
08-11-2022
04:49 PM
|
0
|
5
|
3549
|
|
POST
|
Hi. Are you making REST requests yourself against the routing service? If you're using the Runtime SDK, simply use the AGSRouteTask. It will handle unpacking the response into Runtime geometry objects. See these links: https://developers.arcgis.com/ios/route-and-directions/#route-task https://developers.arcgis.com/ios/swift/sample-code/find-route/
... View more
08-11-2022
02:31 PM
|
0
|
2
|
2622
|
|
POST
|
You can use AGSRequestConfiguration to log some debug info to the console. Try something like this: let locatorTask = AGSLocatorTask(url: URL(string: "https://my-server/services/GeocodeServer/")!)
if let gc = AGSRequestConfiguration.global().copy() as? AGSRequestConfiguration {
gc.debugLogRequests = true
locatorTask.requestConfiguration = gc
} That should output the request for you. Please note that you should not log this debug info in a release version of your app. There is a performance hit to this logging and you should disable it in production and testing.
... View more
08-09-2022
09:16 AM
|
0
|
2
|
1074
|
|
POST
|
Look at the Parts collection on the PolylineBuilder. Each Part represents a sequence of joined MapPoints along the Polyline. For a simple Polyline with no breaks, there could well just be 1 Part. Each Part is comprised of a sequence of MapPoints, and Segments between them (Segments could be straight lines, cubic beziers, or elliptic arcs). You can Add (append), Remove, and Insert MapPoints (and Segments for that matter) on the Part. You can also update a point by calling SetPoint(). Everything you want to modify on a Polyline should be doable on PolylineBuilder (even if you need to dig in to the Parts). The key is the split between the immutable geometry, and the modifiable builder.
... View more
08-09-2022
08:36 AM
|
2
|
0
|
1233
|
|
POST
|
Hi. Thanks for following up in the Esri Community! Unfortunately there is a bug in Runtime that means that true curves in a GraphicsOverlay require that the graphics overlay rendering mode is set to static. The default mode is dynamic. This also impacts true curves in a feature layer backed by a mobile geodatabase, but that doesn't impact you here. One alternative you could consider if you must display the GraphicsOverlay in dynamic mode is to densify the curve geometry and use the densified geometry for your graphic. Hope this helps. I'll see how we can expose this information through the docs until we are able to fix it.
... View more
08-08-2022
12:15 PM
|
0
|
1
|
2096
|
|
POST
|
In short, performance. Based off lessons learnt in the previous generation Runtime SDKs, we decided that geometries should be immutable. This way we can be explicit about monitoring and reflecting updates. For example, if you re-use a point in two places, what does that mean if you modify it? If that point is part of a polygon or polyline, modifying it could change the valid or "simple" state of that polygon/polyline, which can have various repercussions on rendering paths. And of course there's a performance impact in monitoring and propagating that change. Instead, you use Geometry Builders. These are lightweight objects that can accept an existing geometry or start from a blank slate, allow manipulation and construction of a new geometry, and then output that new geometry. For example, to add a point to a polyline, you can create a PolylineBuilder from the polyline, add a point, then call ToGeometry() to get a modified polyline. To modify a MapPoint, create a MapPointBuilder from the MapPoint, modify the X/Y/Z/M properties as needed using the getters and setters, then call ToGeometry() to get an updated MapPoint. Depending on what you want to do, there are also methods on GeometryEngine that could come in handy.
... View more
08-08-2022
10:17 AM
|
2
|
2
|
1261
|
|
POST
|
A lot will depend on how your locator is configured (you might be able to configure it to accommodate the Unit Name as part of the address - I'm not familiar with creating locators). You could also use the geocodeWithSearchValues() override and specify individual address attributes you want to search on. You can see the list of attributes your locator supports by looking at the AGSLocatorTask.locatorInfo.searchAttributes array (the locator will need to be loaded before you can read this metadata).
... View more
08-01-2022
06:43 AM
|
0
|
0
|
1148
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 12-17-2025 10:12 AM | |
| 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 |