|
POST
|
Perhaps. Lets say I create a Level 1 named user in my organizational account. Lets call him GeorgeJetson. So in order to avoid prompting the user, I would create my own implementation of AuthenticationHandler. When this AuthenticationHandler receives an AuthenticationChallenge it will return an AuthenticationChallengeResponse. The AuthenticationChallengeResponse will have the AuthenticationChallengeResponse.Action CONTINUE_WITH_CREDENTIAL And an object that is a UserCredential with GeorgeJetson as the user and GeorgeJetsonsPassword as the password. UserCredential| arcgis-android So something like class EasyAuthenticationHandler implements Authentication Handler { final string USERNAME = "GeorgeJetson"; final string USERPASSWORD = " ..... "; AuthenticationChallengeResponse handleChallenge (AuthenticationChallenge challenge) { if(challenge.getType()==AuthenticationChallenge.Type.USER_CREDENTIAL_CHALLENGE) { return new AuthenticationChallengeResponse( AuthenticationChallengeResponse.Action.CONTINUE_WITH_CREDENTIAL, new UserCredential(USERNAME,USERPASSWORD)); } else { throw new IDontKnowWhatToDoException(); } } Then all of the people using the app would have access to all resources that have been shared with my organization. And this would work if 1000 users are logged in as GeogeJetson at the same time? And if one of my competitor's apps tried to access the same resources, they could stick it in their eye because they don't know GeorgeJetson's password. Am I correct?
... View more
06-07-2018
03:53 PM
|
0
|
3
|
5081
|
|
POST
|
Still trying to understand, not sure if I am asking the right questions. I run the sample and it gives me this screen. Which is - perhaps I wasn't clear - exactly what I wish to avoid. "Apps that target users who are unknown to the ArcGIS platform can authenticate with the platform on behalf of the user by using an app login." So if my app can target users who are unknown to the ArcGIS platform, why would I ask those users to login with an ArcGISOnline account that they probably don't have? This question came up because I was using the OnDemand workflow and it failed with some vague error about missing a token. This token is never mentioned in the documentation, but I assume it is some authentications that it needs. Create an offline map—ArcGIS Runtime SDK for Android | ArcGIS for Developers If I add an authentication manager, then it will prompt me for my arcgisonline credentials and then work. This sample shows a nice screen, but nonetheless is still asking for ArcGIS Online credentials. Ideally, I would not prompt the user at all, because by this time they have already signed in to my app and I have verified their status. Note - I have tried to use preplanned workflow for this - it didn't seem to require authentication but it is broken - I have a case for that.
... View more
06-01-2018
12:39 PM
|
2
|
1
|
5081
|
|
POST
|
One of the constructors for ArcGISVectorTiledLayer takes a vectorTileCache. I'm hoping this one will let me specify a style for the vtpk without recreating an entire vtpk. public ArcGISVectorTiledLayer (VectorTileCache vectorTileCache, ItemResourceCache itemResourceCache) Creates a new ArcGISVectorTiledLayer from the specified VectorTileCache and ItemResourceCache objects. If itemResourceCache is null, it is equivalent to the constructor ArcGISVectorTiledLayer(VectorTileCache) Parameters vectorTileCache the vector tile cache to use itemResourceCache the vector tile style to use Throws IllegalArgumentException if vectorTileCache is null. ItemResourceCache(String path) Constructs an ItemResourceCache with absolute path to a directory containing item resources. So how is the directory structured? My best guess so far: If I unzip a .vtpk, one of the folders inside is called p2/resources Inside that folder there is: fonts info sprites styles root.json. Is this the structure I need to recreate? Since there are no examples nor documentation on this, I though it was worth asking.
... View more
05-30-2018
03:30 PM
|
0
|
1
|
945
|
|
POST
|
The documentation is incomplete on this subject. I'll explain what I mean. Here: Access the ArcGIS platform—ArcGIS Runtime SDK for Android | ArcGIS for Developers "Apps that target users who are unknown to the ArcGIS platform can authenticate with the platform on behalf of the user by using an app login." Sounds good. So I go here. Implementing App Login | ArcGIS for Developers It shows how I can register an app and get a client_id and client_secret. Now what do I do with them? "Once you have registered your application and obtained a client_id and client_secret , you implement app login to obtain a token. The path to follow from here will depend on which SDK you choose to implement your app with." "If you are implementing your app using one of the ArcGIS Runtime SDKs then continue with the authentication guide for your platform." Sounds good, I'll pick Android. That takes me back here to where I started: Access the ArcGIS platform—ArcGIS Runtime SDK for Android | ArcGIS for Developers So I keep reading.: "The ArcGIS Runtime SDK provides full support for access to secured ArcGIS Server, ArcGIS Online, or ArcGIS Enterprise resources using the following authorization methods: ArcGIS Tokens: proprietary token-based authentication mechanism. OAuth 2.0: secure delegated access to server resources. Network credential: HTTP secured service / Integrated Windows Authentication (IWA). Certificate: Public Key Infrastructure (PKI)." So which of these authorization methods uses a client_id and client_secret? "The types of Authentication Challenge include the following: Username / password: Challenges needing username / password authentication. OAuth: Challenges needing an OAuth authorization code. Client Certificate: Challenges needing a client certificate to be provided. Secure Sockets Layer (SSL) Handshake - Challenges needing a response to certain SslError errors, usually an untrusted host due to a self-signed certificate." I still don't see anything about using a client_id and client_secret. Are they a username/password? Maybe this is all obvious to the rest of you, but not to me. It would help to have a COMPLETE EXAMPLE.
... View more
05-30-2018
02:14 PM
|
3
|
9
|
6415
|
|
POST
|
There are ZERO examples for loading a ArcGISVectorTiledLayer from a local vtpk. When do you plan to support that as mentioned in the documentation? I assumed that's because it is so simple you can do it just by looking at the documentation. However, I would like to ask for help because it isn't working. I tried this: mMap = new ArcGISMap();
File contourFile = new File(basedir + "wacountour.vtpk");
Log.i(TAG, "File " + contourFile.getAbsolutePath() + " exists? " + contourFile.exists());
String contourUri = Uri.fromFile(contourFile ).toString();
ArcGISVectorTiledLayer waContoursvtpk = new ArcGISVectorTiledLayer(contourFile.getAbsolutePath()); File mapFile = new File(basedir + "washingtonmap.vtpk");
Log.i(TAG, "File " + mapFile.getAbsolutePath() + " exists? " + mapFile.exists());
String mapUri = Uri.fromFile(mapFile).toString();
//ArcGISVectorTiledLayer usMap = new ArcGISVectorTiledLayer("https://www.arcgis.com/sharing/rest/content/items/91d7cbde681040449a01d853d5e30c84/resources/styles/root.json?f=pjson");
ArcGISVectorTiledLayer waMapvtpk = new ArcGISVectorTiledLayer(mapFile.getAbsolutePath());
mMap.getBasemap().getBaseLayers().add(waMapvtpk);
mMap.getBasemap().getBaseLayers().add(waContoursvtpk); This fails without any helpful information whatsoever. Failure is 7003 Invalid response or 14 File not found. Depending on the exact arguments to the constructor. I have checked and made sure the files exist using File.exist(). I have checked the same vtpk files in ArcGIS Pro and they show as expected.
... View more
05-29-2018
10:30 PM
|
0
|
1
|
1380
|
|
POST
|
Still not working. I have seen this behavior consistently. I have been in contact with ESRI support, but they are still in denial about this.
... View more
05-29-2018
07:14 PM
|
0
|
0
|
809
|
|
POST
|
In ArcGIS PRO, the Map that I created the Mobile Map package from lists its reference as WGS 1984 Web Mercator Auxiliary Sphere. I believe that is the same for your World Topo Map and just about everything. In the debugger, I can log the spatial reference for the Mobile Map. The getSpatialreference returns null for all the layers, including the World Topo Layer. Log.i(TAG,"Mobile Map SR: " + mMap.getSpatialReference().getWKText());
Mobile Map SR:
PROJCS["WGS_1984_Web_Mercator_Auxiliary_Sphere",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Mercator_Auxiliary_Sphere"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Standard_Parallel_1",0.0],PARAMETER["Auxiliary_Sphere_Type",0.0],UNIT["Meter",1.0]]
ArcGISTiledLayer tiledLayerBaseMap = new ArcGISTiledLayer("http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer"); If I add the World Topo Map to the basemap after adding the map to the MapView, it definitely does not show. The layers from the Mobile Map do show on a grid. If I add the World Topo Map to the basemap before adding the map to the MapView, NOTHING shows. Mapview is all gray with out even a grid or a notice about "Developer Use Only.
... View more
05-29-2018
09:10 AM
|
0
|
0
|
1091
|
|
POST
|
How would I go about using other layers with those in a Mobile Map package? The examples assume i want the // Create a MobileMapPackage from the offline map directory pathfinal MobileMapPackage offlineMapPackage = new MobileMapPackage(mMobileMapPackage); offlineMapPackage.loadAsync(); offlineMapPackage.addDoneLoadingListener(new Runnable() { @Override public void run() { // Get the title from the package metadata System.out.println("Title: " + offlineMapPackage.getItem().getTitle()); // Get the map from the package and set it to the MapView mMapView.setMap(offlineMapPackage.getMaps().get(0)); } });
But suppose the MobileMap lacks a basemap or some other layer that is packaged separately.
The following things DON'T work.
1. Load map from package, then add layers to it.
ArcGISTiledLayer tiledLayerBaseMap = new ArcGISTiledLayer("http://services.arcgisonline.com/arcgis/rest/services/World_Topo_Map/MapServer");
mMap.getBasemap().getBaseLayers().add(tiledLayerBaseMap);
No errors. The basemap seems to be added. I just never see it.
2. Try to detach the layers from the mobile map packagemap and place it in an already created map. mMap = mapPackage.getMaps().get(0);
ArcGISMap defaultMap = new ArcGISMap(Basemap.Type.TOPOGRAPHIC_VECTOR,44.417,-112.08,11);
for(int i=0;i<mMap.getBasemap().getBaseLayers().size(); i++)
{
Layer l = mMap.getBasemap().getBaseLayers().remove(0);
defaultMap.getBasemap().getBaseLayers().add(l);
}
for(int j=0;j<mMap.getOperationalLayers().size(); j++)
{
Layer o = mMap.getOperationalLayers().remove(0);
defaultMap.getOperationalLayers().add(o);
} This works even less. The map is completely invalid and only shows gray. Not even a grid. What might still work: 3. Unpack the mobile map package and load the .geodatabase(s) individually from file. Look for them in the p14 folder. 4. Distribute .geodatabase files and other files separately. Since .geodatabase is not one of the file types allowed as a portal item in ArcGIS Online, I don't think that is intended.
... View more
05-28-2018
09:51 PM
|
1
|
2
|
1779
|
|
POST
|
It may cause confusion that what you suggest doesn't actually work. You can load a mobile map and then add a layer to it. You may not get an error. But the layer won't show up.
... View more
05-28-2018
02:27 PM
|
0
|
1
|
853
|
|
POST
|
I used the sandbox of the basic map sample and added four lines that I though covered all the bases. <script> var map; require(["esri/map", "dojo/domReady!"], function(Map) { map = new Map("map", { basemap: "topo", //For full list of pre-defined basemaps, navigate to http://arcg.is/1JVo6Wd center: [-122.45, 37.75], // longitude, latitude zoom: 13 }); map.enableScrollWheel(); map.enableScrollWheelZoom(); map.isScrollWheel = true; map.isScrollWheelZoom = true; }); </script> Nothing works, though. The wheel works only to pan the map up and down. This is on Chrome and FIrefox browsers on a Mac, in case there are platform specific bugs. What is the magic call I am missing?
... View more
04-16-2018
12:04 PM
|
0
|
1
|
1650
|
|
POST
|
To add to that, the OnDemand Workflow doesn't work either, for other reasons I don't understand. Error is: Token required. Hmm, the documentation doesn't say a word about tokens. It appears that they are used internally, so It certainly isn't my fault if it doesn't have a token. 04-10 19:22:35.213 27903-27903/? I/bcnactivity: ondemand: Error occurred when taking NorthAmericaOSMPackage0325Z offline Error : Check getCause() for further error information. 04-10 19:22:35.213 27903-27903/? E/BCNActivity: layererrors NorthAmericaOSMPackage0325Z: com.esri.arcgisruntime.ArcGISRuntimeException: Check getCause() for further error information. at com.esri.arcgisruntime.internal.m.h.a(SourceFile:188) at com.esri.arcgisruntime.internal.m.i.b(SourceFile:6220) at com.esri.arcgisruntime.tasks.offlinemap.GenerateOfflineMapResult.getLayerErrors(SourceFile:82) at com.crittermap.arcgissample.BCNActivity$8.run(BCNActivity.java:555) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) Caused by: com.esri.arcgisruntime.io.JsonEmbeddedException: Token Required. at com.esri.arcgisruntime.io.JsonEmbeddedException$a.a(SourceFile:179) at com.esri.arcgisruntime.io.JsonEmbeddedException$a.deserialize(SourceFile:125) at com.google.gson.internal.bind.TreeTypeAdapter.read(TreeTypeAdapter.java:69) at com.google.gson.Gson.fromJson(Gson.java:887) at com.google.gson.Gson.fromJson(Gson.java:852) at com.google.gson.Gson.fromJson(Gson.java:801) at com.google.gson.Gson.fromJson(Gson.java:773) at com.esri.arcgisruntime.io.JsonEmbeddedException.fromJson(SourceFile:117) at com.esri.arcgisruntime.internal.d.a.a.h.f(SourceFile:699) at com.esri.arcgisruntime.internal.d.a.a.i.a(SourceFile:161) at com.esri.arcgisruntime.internal.d.a.a.i.a(SourceFile:60) at com.esri.arcgisruntime.internal.d.a.a.c.a(SourceFile:463) at com.esri.arcgisruntime.internal.d.a.a.c.i(SourceFile:425) at com.esri.arcgisruntime.internal.d.a.a.n.a(SourceFile:80) at com.esri.arcgisruntime.internal.d.a.a.n.d(SourceFile:32) at com.esri.arcgisruntime.internal.d.a.a.c$1.call(SourceFile:131) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762)
... View more
04-16-2018
11:43 AM
|
0
|
0
|
809
|
|
POST
|
I have some ready preplanned map areas that I decided to try with the runtime 100.2.1 before I do this on a larger scale. I below captured the layer errors below upon failure. Caused by: java.lang.OutOfMemoryError: Failed to allocate a 710258114 byte allocation with 16777216 free bytes and 40MB until OOM Why in the world would you be trying to allocate 710 Megabytes? On a MOBILE DEVICE, no less? I can only guess that you are trying to allocate enough memory for the entire file. Why would that ever be a good idea? The destination for the file is a folder on disk. BUFFERING is a fairly standard practice for downloading a file from disk. There is no way you need 710 megabytes of memory to download a 710 megabyte file. You are advertising this preplanned workflow, and I was attracted to all of the benefits. Create an offline map—ArcGIS Runtime SDK for Android | ArcGIS for Developers But it obviously isn't well coded or well tested. Please fix it or provide some workaround, so I don't regret the trust I have placed in ESRI for the 10th time. 04-09 21:28:45.907 26473-26473/com.crittermap.arcgissample I/BCNActivity: downloadPreplanned Start: Mon Apr 09 21:28:45 PDT 2018 04-09 21:32:52.395 26473-26473/com.crittermap.arcgissample I/BCNActivity: downloadPreplanned Failed: Mon Apr 09 21:32:52 PDT 2018 04-09 21:33:08.028 26473-26473/? E/BCNActivity: layererrors USA Contour II: com.esri.arcgisruntime.ArcGISRuntimeException: Check getCause() for further error information. at com.esri.arcgisruntime.internal.m.h.a(SourceFile:188) at com.esri.arcgisruntime.internal.m.i.b(SourceFile:6220) at com.esri.arcgisruntime.tasks.offlinemap.DownloadPreplannedOfflineMapResult.getLayerErrors(SourceFile:91) at com.crittermap.arcgissample.BCNActivity.lambda$downloadPreplannedArea$2$BCNActivity(BCNActivity.java:369) at com.crittermap.arcgissample.BCNActivity$$Lambda$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) Caused by: java.lang.OutOfMemoryError: Failed to allocate a 710258114 byte allocation with 16777216 free bytes and 40MB until OOM at com.esri.arcgisruntime.internal.c.p.c.<init>(SourceFile:56) at com.esri.arcgisruntime.internal.c.p.g.c(SourceFile:133) at com.esri.arcgisruntime.internal.d.a.a.i.b(SourceFile:194) at com.esri.arcgisruntime.internal.d.a.a.i.a(SourceFile:61) at com.esri.arcgisruntime.internal.d.a.a.c.a(SourceFile:463) at com.esri.arcgisruntime.internal.d.a.a.c.i(SourceFile:425) at com.esri.arcgisruntime.internal.d.a.a.n.a(SourceFile:80) at com.esri.arcgisruntime.internal.d.a.a.n.d(SourceFile:32) at com.esri.arcgisruntime.internal.d.a.a.c$1.call(SourceFile:131) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762) 04-09 21:33:08.032 26473-26473/? E/BCNActivity: layererrors MultidirectionalHillshadeToSix: com.esri.arcgisruntime.ArcGISRuntimeException: Not found at com.esri.arcgisruntime.internal.m.h.a(SourceFile:188) at com.esri.arcgisruntime.internal.m.i.b(SourceFile:6220) at com.esri.arcgisruntime.tasks.offlinemap.DownloadPreplannedOfflineMapResult.getLayerErrors(SourceFile:91) at com.crittermap.arcgissample.BCNActivity.lambda$downloadPreplannedArea$2$BCNActivity(BCNActivity.java:369) at com.crittermap.arcgissample.BCNActivity$$Lambda$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) 04-09 21:33:08.035 26473-26473/? E/BCNActivity: layererrors NorthAmericaOSMPackage0325Z: com.esri.arcgisruntime.ArcGISRuntimeException: Check getCause() for further error information. at com.esri.arcgisruntime.internal.m.h.a(SourceFile:188) at com.esri.arcgisruntime.internal.m.i.b(SourceFile:6220) at com.esri.arcgisruntime.tasks.offlinemap.DownloadPreplannedOfflineMapResult.getLayerErrors(SourceFile:91) at com.crittermap.arcgissample.BCNActivity.lambda$downloadPreplannedArea$2$BCNActivity(BCNActivity.java:369) at com.crittermap.arcgissample.BCNActivity$$Lambda$1.run(Unknown Source) at android.os.Handler.handleCallback(Handler.java:751) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6776) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1496) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1386) Caused by: java.lang.OutOfMemoryError: Failed to allocate a 136852558 byte allocation with 16777216 free bytes and 54MB until OOM at com.esri.arcgisruntime.internal.c.p.c.b(SourceFile:182) at com.esri.arcgisruntime.internal.c.p.g.c(SourceFile:139) at com.esri.arcgisruntime.internal.d.a.a.i.b(SourceFile:194) at com.esri.arcgisruntime.internal.d.a.a.i.a(SourceFile:61) at com.esri.arcgisruntime.internal.d.a.a.c.a(SourceFile:463) at com.esri.arcgisruntime.internal.d.a.a.c.i(SourceFile:425) at com.esri.arcgisruntime.internal.d.a.a.n.a(SourceFile:80) at com.esri.arcgisruntime.internal.d.a.a.n.d(SourceFile:32) at com.esri.arcgisruntime.internal.d.a.a.c$1.call(SourceFile:131) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:762)
... View more
04-10-2018
10:27 AM
|
0
|
2
|
1027
|
|
POST
|
There is one remaining issue in creating new styles. We don't appear to have any control over how the sprite.json and sprite.png are generated. I don't know how to make sure symbols make it in if not all symbols are used in the first style published. In other words, no known equivalent to what we did to retain fields in order to retain symbols. If I had a designer create a custom sprite page, I would have to have to manually insert it into the VTPK before upload. I thought perhaps that I could point the style to a different sprite link - perhaps a content item I upload to ArcGIS Online. It won't allow me to upload a .json, although it does accept a .png. If I hosted a new sprite.png and sprite.json on my own domain, will that cause cross domain problems? And will they still get included in offline vector downloads?
... View more
02-08-2018
10:00 AM
|
0
|
0
|
1176
|
|
POST
|
Let's suppose I want to create a tile cache of Multi-Directional Hillshade in my ArcGIS Online Content. I want to cache tiles of it up to level 12, assuming I can make it scale up after that and not just disappear after level 12. https://www.arcgis.com/home/item.html?id=3cedfc19d7b941d89ee15b0e2f454070 So far I know I *could* do this using ArcGIS Pro. I would generate 22 million tiles on my hard drive and create a 100-gigabyte TPK on my hard drive and then upload to ArcGIS Com using the Share Package Tool. Generating it would probably take 5 days and uploading it would probably take at least two days. So could I generate the cache directly on ArcGISOnline? I assume it would cost me 2200 credits for tile generation and, of course, 120 credits per month for storage. Maybe that's worth it instead of tieing up my machine for a week. However, I find no way to do this as of yet. No buttons or links. This article is a similar topic. https://community.esri.com/community/gis/web-gis/arcgisonline/blog/2017/07/06/arcgis-blog-publishing-tiles-from-features-efficient-automatic-and-economical However, this is not a feature server - this is a "hillshaded surface generated dynamically using a multi-directional hillshade server-side custom function on the World Elevation Terrain layer." Is there a way to do it? Arcgis Online, here is your chance to earn some credits.
... View more
01-30-2018
11:13 AM
|
0
|
0
|
770
|
|
POST
|
I am working with a PostgreSQL database that already has some Levels of Detail created, returned by stored procedure. To get the data, I use query layers like this: SELECT id, geometry, name, name_en, name_de, class, iata, icao, ele, ele_ft FROM layer_air(::bbox, ::z) Where bbox is bounds ( a geometry) and z is a zoom level from 0 to 14. First thing I notice is that ArcGIS PRO will not tolerate parameters as arguments in function calls. So I would have to hardcode them. Next thing I noticed: Even if I want to hard code the bbox as being the World, I can't do it. I find no way of expressing a constant value inside the parameters. It can't handle putting another function call like ST_GeomFromText( ) and using that as a parameter. So I have to wrap these stored procedures in stored procedures of my own and instead call such functions inside the database. Then I come to specifying zoom level. This means I would have to create up to 15 query layers for each layer (ie layer_air(0). . . . layer(14) Then I would have to configure the out beyond and in beyond zoom levels to be [..0) [0..1) [13..14) [14...). Then style each of the 15 layers even if I might otherwise style them the same. Then Highlight the important attributes for preservation in vector tile creation. This means in total I will handle 225 layers instead of 15. Just wondering if there is any way to shortcut this. This article mentions range and time parameters. No scale based parameters. Define parameters in a query layer—Query layers | ArcGIS Desktop
... View more
01-30-2018
10:25 AM
|
0
|
0
|
646
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 12-29-2017 03:07 PM | |
| 1 | 04-14-2020 10:41 PM | |
| 1 | 11-21-2017 08:58 PM | |
| 2 | 06-01-2018 12:39 PM | |
| 3 | 05-30-2018 02:14 PM |
| Online Status |
Offline
|
| Date Last Visited |
01-22-2021
10:16 PM
|