POST
|
FINAL FOLLOWUP AND LESSONS LEARNED on Deployment of ArcGIS Map in JavaFX App or JAR (Beta, pre-quartz) Howdy. I thought I'd write a synopsis for any of those peeps out there pulling hair, here's some facts, it'd be good if Eric B can validate some of this: 1. If you're using the map w/license free basemap layers from arcgis.com and just doing simple object creation/placement in a graphics layer or other supported layers that don't require a local server....you don't need ArcGISRuntime10.2.4, nor to you need to initialize the map, all you need to do is set the client ID. 2. The map requires a hardware-based GPU that supports either DirectX or OpenGL. Will not run on most cloud-based desktop VMs like Amazon Desktop. (we are checking on the new "GP EC2" server variant that Amazon just came out with that supposedly has a server-based hardware GPU). Otherwise you'll need to setup your own cloud-based desktop VM w/VMWare's new GPU drivers. 3. For packaging a JAR, use maven Shade, don't use OneJar. To use shade, do a mvn:install:install w/all the ESRI jars into your local repo and update your pom dependencies w/those locations. You'll have a working, deployable jar at this point. Other than the hardware-based GPU requirements for the map in JavaFX (not just JavaFX I think it's any map product in java), and a few bugs in the beta (expected) we are very happy w/the performance of the map - it screams. Way to go ESRI, looking forward to wash-rinse-repeat w/Quartz and adding the runtime and using Online Credits for various hosted tools from within our app suite. Thanks, The Other Eric
... View more
11-05-2015
08:19 AM
|
2
|
1
|
744
|
POST
|
Hello, As a follow-up to this post, here's a major issue we ran into: ArcGIS for Java will not run on Amazon Workspaces. We had plans to deploy our app there, too bad so sad. So ArcGIS for Java is dead in the Amazon cloud...unless Amazon can come up w/a driver that emulates either DirectX or OpenGL. Nothing we've done appears to work on their workspaces distro. I'm wondering if Quartz fixes this but I kinda doubt it...? Thanks, Eric
... View more
11-04-2015
07:57 PM
|
0
|
0
|
744
|
POST
|
Howdy. It appears that the issues we're having are a result of using OneJar. We've had a few other issues w/classpath mapping and my bad... Thanks for your continued support and try to stay out of Dependency Hell Eric
... View more
11-03-2015
05:52 PM
|
0
|
0
|
744
|
POST
|
Thanks for the tips Jeremie. We're still having issues getting the map to display. We effectively just get a blank area in our JavaFX VBox where the map is supposed to be showing, but only at runtime from a JAR, after we deploy. We registered the app, got a client ID and, from what I understand, since this is a thick-client JavaFX app using just the free basemap, there should be no OAuth necessary and we're running in BASIC license level only. Here's what we do to create/pull up a map, and it works fine building/running from Eclipse, but not from a JAR: ArcGISRuntime.setClientID(theClientIDString); ArcGISRuntime.setInstallDirectory("C:ArcGISRuntime10.2.4/"); ArcGISRuntime.initialize(); LicenseLevel licenseLevel = ArcGISRuntime.License.getLicenseLevel(); //here, we show a msg on our GUI and it definitely is showing LICENSE LEVEL BASIC //so to me, it seems as though we're authorized loadStatusMessage("Successfully initialized ArcGIS with LicenseLevel=" + licenseLevel.toString()); //to load a map we: FXMap map = new FXMap(); //just load it into a VBox container: vBoxMap.getChildren().add(map); //this next line is making me wonder - do we need ArcGIS Online Account Usage Credits?? (we don't have an ArcGIS Online Account, FYI) So a question would be: Do we need to do an OAuth for grabbing this basemap? //Next we load our basemap //according to docs I've read on ESRI, this should be a free basemap... ArcGISTiledMapServiceLayer tiledLayer = new ArcGISTiledMapServiceLayer("http://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer"); map.getLayerList().add(tiledLayer); //at this point running from Eclipse, no problema, map shows up fine //from distro in a jar, we do show authorized and all that jazz, but the map area is completely void of a basemap or anything else.. Any idea what we're doing wrong? Thanks in advance, Eric
... View more
11-03-2015
03:47 PM
|
0
|
0
|
744
|
POST
|
Hi. We're testing deployment out for this product: Get started with JavaFX (BETA)—ArcGIS Runtime SDK for Java | ArcGIS for Developers I know it's a beta soon to be replaced by Quartz...but...question: When doing a maven : package, does this require some artifacts to be included in the build path that we must first create with ArcGIS Runtime Java Deployment Builder? We can compile/run in Eclipse from JDT and the app w/a FXMap in it runs fine, we can compile and package up in maven w/no errors....however when we run a JavaFX app as a java -jar [myapp] with the same src, the FXMap is just a blank nothingness in the scene. Introspection on the scene graph at runtime after an mvn:package > deploy...the FXMap component is never spawned into the scene. Tricky - but effective! Is this as designed and, if so, what is the deployment strategy? We'd like to push this into an uberjar with OneJar, FYI, for some testing. Thanks in advance, Eric
... View more
11-02-2015
08:27 PM
|
0
|
7
|
3016
|
POST
|
We're working with a GraphicsLayer. After adding attributes to a graphic and creating a corresponding LinkedHashMap, no worky, see code below: //add a symbol and attributes, create the graphic GraphicsLayer graphicsLayer = new GraphicsLayer(); TextSymbol textSymbol = new TextSymbol(10, "The symbol's contructor text!", Color.BLUE); Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put("UserId", "UserId"); //and other fields Graphic graphic = new Graphic(point, textSymbol, attributes); //after layer is initialized, from layerInitializeComplete on graphicslayer, add MapTips, tried this 6 Ways From Sun'dy, no worky: LinkedHashMap<String, String> displayFields = new LinkedHashMap<String, String>(); displayFields.put("UserId", "UserId"); //and other fields if needed MapTip mapTip = new MapTip(displayFields); mapTip.setEnabled(true); graphicsLayer.setMapTip(mapTip); I figure this is not supported on GraphicsLayer, correct me if I'm wrong? Also, if this is supported on GraphicsLayer, how is it added in FXMap? final InfoPopupOverlay infoPopupOverlay = new InfoPopupOverlay(); infoPopupOverlay.setPopupTitle("Building Data"); infoPopupOverlay.setItemTitle("Extent of damage: {typdamage}"); map.?? Same answer? Not supported in GraphicsLayer or FXMap viewer, right? Thanks in advance, The Other Eric
... View more
10-27-2015
05:18 AM
|
0
|
1
|
1678
|
POST
|
Howdy Eric Bader - long time no see! (it's the Other Eric) Can you point me to a person or resource that'll allow us to calc the distro licensing fees for a thick client JavaFX app running Quartz against offline maps that we create ourselves? We won't be using any server-based geo processing tools as we're snapping this in to an existing geospatial kit that we've had for years. We need a fresh look to our map viewer. As you may remember we have many years of experience w/ArcGIS runtime in every flavor ever put out, and recently we've cranked out a JavaFX app that beats on every capability of locally running FXMaps in 10.2.4 Beta - and there are issues - so we're switching over to Quartz starting today and plan on re-releasing a patch to our app as soon as Quartz 1.0 is final'd. (sweating bullets here on Q1/2016 expected release somewhat!) About a year ago we were told that thick-client desktop seat licenses for local 10.2.4 was at a decent price per seat, we want to insure we're close to that mark before we fully commit as we have a tight margin on 3rd-party license costs (I'd really hate to pick up some other vendor's map viewer!) Thanks in advance, Eric H.
... View more
10-27-2015
04:32 AM
|
0
|
1
|
2565
|
POST
|
Eric B, Thanks for the speedy reply. The Runtime looks to me like an amazing piece of work by your team - it's very refreshing to be able to finally get away from the chains of COM in the product line. I can definitely appreciate the coarseness of the API as I've spent many hours in the fine-grained never-never land of COM stubs for java... I'm sure that the stumbling block we have at this moment is our lack of experience in the runtime, possibly coupled with a lack of documentation on a fairly new API. In the spirit of keeping the dialog going, I'll try to keep this as short as possible as to where we're interested in going with the runtime. I'll list these in order of our priority: 1. First and foremost, we need to insure that all of our tools will run on all platforms with a single pure java codebase (Windows, Linux and, where possible, Android). We're not expecting to write GUI code for Linux that we can run on droid, but we want to insure that all processing code (i.e. creation of file databases and/or MPKs, creation of layers, shape files, and geoprocessing routines) can be accomplished in middleware and run on any platform. This is the holy grail, right? 2. Since we had to maintain offline (aka local) storage for our products, we used the File GeoDB extensively as the main container for moving map workspaces around and all that goes with that, so my first interest is in being able to leverage at least the logic, if not the code. From my time spent at the UC, I did come away understanding that a lot of the code would have to be rewritten, so that's expected. The issues we're having is either a lack of documentation on things such as how to get to and manipulate the workspace and all that goes with that - or I just don't know where the documentation is. I can see it in the API, but other than basic javadoc, we're not finding examples and working code. We need to create point, polyline, and polygon shape files, push them in to a package of some sort (don't care what as long as it's local), then add them as layers to maps. 3. We're using a lot of geoprocessing tools, and we need to be able to run these tools on-the-fly. If we have to create some type of "package" in Arc Desktop and then deploy them, that's not a problem - but if we can't run dynamic data against the gpk's that we publish in our products, that would be a show-stopper as the value in our products are a combination of map content and map object processing. 4. We want to be able to leverage the same paradigm that your team seems to have built-in to the runtime: local vs remote and, going one step further, we want to write once and run in both thick-client RCP and Swing apps - and Android...so we're very keen on insuring we pick the right container (File GeoDB vs MPK vs whatever) for our various map objects and geoprocessing methodology. 5. We're not going to be able to use any type of scripting language. Also, I'm seeing quite a bit of silverlight dependencies in the runtime samples and we obviously can't use that either. I'm hoping that they've been updated to be cross-platform compatible? I think I can speak for most developers in saying that we don't mind unpolished example code - you could write it on a napkin with a crayon, scan it, and put it up on the Resources site - as long as we have working examples of the new API, we're good-to-go. In this day and age we have to be nimble. 😉 Thanks for the time, Eric H.
... View more
10-08-2012
04:27 PM
|
0
|
0
|
1248
|
POST
|
As an update to my first post on this topic, I just discovered that Martin asked for a Functionality Matrix between ArcGIS Engine and ArcGIS Runtime almost a year ago via this forum post: http://forums.arcgis.com/threads/44685-Functionality-Matrix Has this functionality matrix been created? Why was this extremely important post not addressed by the ESRI Java Product Group for almost a year? If you want developers to take this new runtime kit seriously, then you need to consider that many of us have a lot of time and effort invested in ArcGIS Engine and the other, older tools from ESRI that function against the original COM-based APIs. We need the functionality matrix ASAP. We also need another functionality matrix: what is supported by the ArcGIS Runtime locally vs. online? In the samples that are delivered with the new runtime kit, there are too many examples of "online" and we need to see a one-for-one comparison between online and offline/local. Most of my customer base cannot work from online sources because of security specifications...and this includes all applications that we build for two large federal clients. When can we expect an ArcGIS Engine vs. ArcGIS Runtime functionality matrix and an Online vs. Local functionality matrix?
... View more
10-07-2012
11:38 AM
|
1
|
0
|
1248
|
POST
|
ArcGIS Runtime Development Team (Eric Bader and company): I'm getting ready to convert portions of a complex ArcGIS Engine app over to ArcGIS Runtime. I've spent the day looking over the ArcGIS Runtime documentation, I went to the ESRI UC in SD this summer and spent a lot of time w/the java team there, but there's still quite a few issues I find lacking in the docs, and I'm getting a sinking feeling about the whole thing. I'd like this thread to be an ongoing discussion for ArcGIS Engine methodology vs. ArcGIS Runtime methodology. I have a couple of questions now, and will be adding more in the very near future: 1. Tell us definitively what methods in ArcGIS Runtime are supported against File Geodatabases, including what objects can be stored in them, any peculiarities, etc. 2. Please list a comparison of File Geodatabases to MPK files. 3. Tell us definitively and provide sample code as to exactly how to create, open, modify, save, etc. File Geodatabases. More questions to come in the very near future. Thanks.
... View more
10-05-2012
06:00 PM
|
1
|
4
|
10278
|
Title | Kudos | Posted |
---|---|---|
1 | 10-05-2012 06:00 PM | |
2 | 11-05-2015 08:19 AM | |
1 | 10-07-2012 11:38 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:23 AM
|