POST
|
Hello, I have added support for ENC Charts in my ArcGIS Java desktop application. Now there's a requirement where I need to validate if the chart that is loaded is updated or not. I suppose the updated charts should be the ones with an issue date that is the most recent. So I wanted to know if there is a way in the SDK to get the issue or publish dates for the chart that is just loaded. I've seen there is a method to get the readme text for an ENC Exchange set but I'm not sure how to make use of it since different chart providers may have different readme texts. Also if there is a way, then will it also work if I load a single .000 base ENC Cell. Also any suggestions to account for the given scenario would be appreciated. Thanks.
... View more
12-21-2020
11:05 PM
|
0
|
1
|
582
|
POST
|
Hi Mark, Please do include it in your roadmap. Our Requirement is simple enough. We'd like our Map based Application to support the decryption of S-63 charts without the need to implement the decryption process ourselves. We are prototyping a system based on ECDIS and for it be a true ECDIS system, it should be capable of supporting the display of ENC Charts whether encrypted or not. We are using Java in the development process and would really like to see this capability in the Java SDK very soon. We hope Esri considers prioritizing it in their plan. Thanks.
... View more
12-05-2020
06:00 AM
|
1
|
0
|
1326
|
POST
|
Hello Everyone, I've been working on a Java Desktop Application using the ArcGIS runtime SDK v100.7.0. There was a requirement where I had to display Point Graphics using Symbols from the MILSTD 2525D .stylx file. I was able to render these Graphic objects on the Map View just fine. Now, I've come across a requirement where I have to show these symbols with Speed Vectors. According to the official MILSTD 2525D documentation at MILSTD-2525D-PDF , it was mentioned here: According to this, the speed vector arrow's length depends upon the speed of that object but I cannot manage to find any such attribute here https://github.com/Esri/military-symbology/tree/dev/military-overlay/mil2525d that can change the length of the "speed vector" present in the military symbol to be rendered. My code snippet: private Symbol getMilitarySymbol(String sidc, int speed, int direction) {
Map<String, Object> attributes = new HashMap<>();
attributes.put("sidc", sidc); // sidc
attributes.put("direction", direction);
attributes.put("speed", speed);
try {
// actually returns a MultiLayerPointSymbol with size of 85.333336
MultilayerPointSymbol symbol = (MultilayerPointSymbol) symbolDictionary.getSymbolAsync(attributes).get();
symbol.setSize(65.0f);
return symbol;
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("InterruptedException - failed to symbolize SIDC: " + sidc);
} catch (ExecutionException e) {
e.printStackTrace();
System.out.println("ExecutionException - failed to symbolize SIDC: " + sidc);
}
return null;
} The Output on Map View: Note: The length of this arrow remains same no matter what speed value I specify (e.g. 1 or 11) I want to know, how can I fulfill this requirement ? How do I make the arrow length reflect the speed of the object ?
... View more
12-01-2020
06:28 AM
|
0
|
2
|
1129
|
POST
|
Yes, as you said the Geometry is immutable so we have to add a new Geometry and set it in the given Graphic. I came up with a solution for this and it matches with exactly what you suggested. When one of my class method creates the ship graphic and the circle graphic around it, at that point I put the radius value into the polygon graphic attribute so when my other class method gets this graphic object, I can simply extract the radius attribute from the polygon graphic and create a new polygon using ellipseGeodesic(..) method, which I then set as that graphic's geometry. The main thing is that the Geometry cannot be moved as it's immutable. Your help is appreciated. Thanks.
... View more
11-05-2020
01:00 AM
|
0
|
0
|
2934
|
POST
|
While I really appreciate that you were kind enough to share the code and thanks for that however, I just wanted to know if a polygon geometry could be moved or not but since you said that geometries are immutable that means i have to create a new one without keeping the same geometry. The problem here is that The semi axis lengths you have set are constant while it is variable in my case. Also my coded class method that is responsible for moving the ship does not have access to the radius (semi axis length) so i have to do something about it. There is another similar scenario where I'd need to implement it for many other vessels on the map without fetching their circle radius keeping this moving logic independent of the radius values for each of those vessels but I have to track those too. Thanks for your response.
... View more
11-04-2020
03:19 AM
|
0
|
2
|
2934
|
POST
|
Hello Esri community, I'm working on a Java desktop application using ArcGIS Java runtime SDK v100.7.0. In my MapView GraphicsOverlay, I've added a circular Polygon graphic using ellipseGeodesic(GeodesicEllipseParameters parameters) method keeping it's center point as my ship/vessel's location Point. Now as my ship moves, I would like this Polygon to move with it as well. I want to know if there is any convenient way to move a Polygon Geometry from one Point to another by just specifying the next given Point as center to this Polygon. The vessel and the circular Polygon graphic are manipulated by another class in my code which doesn't have access to the circle's radius or such parameters which can be used to draft a new Polygon geometry so I'd want to manipulate and move the same object (using it's center Point only) without replacing with a new one. Thanks in advance.
... View more
11-03-2020
12:32 AM
|
0
|
4
|
3001
|
POST
|
Hi Trevor, I'm sorry but I don't think you understand the question or maybe my words weren't clear enough. The safety contour line is not highlighted (it's not highlighted by me giving any screen point). By highlighted I meant to say the contour line that is dark grey bolded which is set by the Safety Contour Depth Value (the line that actually separates the light blue and sky blue sea color). What I wanted to know is that how can I obtain the Polyline geometry of this Safety Contour Line without using IdentifyLayerAsync(...) method. I do not want to pass any screen point. I want to get either all the depth contours in given ENCLayer or the one safety contour line that is bolded. Only then I can perform intersection check as you've mentioned. Thanks.
... View more
10-27-2020
12:37 AM
|
0
|
1
|
1311
|
POST
|
Hello Esri Community, I'm working on a Java Desktop application that utilizes the ArcGIS java runtime SDK v100.7.0. I've been provided with a requirement where I need to generate an alert message in the application when my ship/vessel (which has a Point Geometry that moves by certain time) gets near to a highlighted safety depth contour line (present on the ENCLayer) at a user defined distance of let's say 0.3 NM or something (this can vary depending on user input). To implement this, I would need to first get the Polyline Geometry of the safety depth contour line and then use these two geometries and calculate their distance and other such parameters. After going through the documentation, I found that I can get the IdentifyLayerResult by calling MapView.identifyLayerAsyn(Layer, Point2D, tolerance, returnPopupsOnly); override. But this object gives me only those GeoElements which were identified by the Point2D under the tolerance. My question is that how can I get a single GeoElement (specifically the ENCFeature) from the ENCLayer without specifying any Point2D screen point ? I do not want to adjust the screen point tolerance value. I want to know if there's a way to get only this ENCFeature (Designated for the Safety Depth Contour line) in my code just by the ENCLayer so that I can extract its attributes and Geometry. Thanks in Advance.
... View more
10-26-2020
12:24 AM
|
0
|
3
|
1438
|
POST
|
I've been working on a Java Desktop Application that uses ArcGIS runtime 100.7.0. I have a requirement where i need to give the user options to add ENC charts in S-57 & S-63 formats. I want to know if S-63 encrypted charts are supported in the Java runtime or not ? And if not, can we expect to see the support of these charts in a near future release ? Thanks.
... View more
08-24-2020
01:51 AM
|
0
|
3
|
1470
|
POST
|
Hello ArcGIS Community, I've been working on a java desktop application which heavily utilizes and relies on the ArcGIS Java runtime SDK 100.7.0. As you may know, we can add Electronic Navigation Charts (ENC) Layers on the map view. I noticed when we add an ENC Layer on the map, every symbol and text element is displayed with it and stays rendered while zooming in or out on the map view. I want to know if there is a way to make only a specific set of symbols or text appear on the chart, so that we can make the chart look simpler and apply filters on it to make specific symbols or text appear when i toggle them On Or when the view's zoomed in on the chart. I'd like to maintain a list of each element and create toggles for each element. How do i achieve this ?
... View more
08-11-2020
12:55 AM
|
0
|
1
|
1015
|
POST
|
Okay so after trying some codes from the incomplete documentations and trying to pass the symbol id attribute using different key names i achieved what i was trying to do. goes like: Create a DictionarySymbolStyle by passing the mil2525d.stylx file path. load the dictionary using DictionarySymbolStyle.loadAsync() Create a HashMap and add a key "sidc" with the value as the 20 digit Symbol Identification Code (SIDC) to the map. Use the getSymbolAsync() method of the DictionarySymbolStyle class and pass in the map of attributes. This will search and create a symbol from the .stylx file using the code you pass. My code: File stylxFile = new File(System.getProperty("user.dir") + "\\mil2525d.stylx"); DictionarySymbolStyle symbolDictionary = DictionarySymbolStyle.createFromFile(stylxFile.getAbsolutePath()); symbolDictionary.loadAsync(); Map<String, Object> attributes = new HashMap<>(); attributes.put("sidc", 10000000000000000000); // pass here a unique 20 digit Symbol ID Code try { Symbol s = symbolDictionary.getSymbolAsync(attributes).get(); } catch (InterruptedException e) { e.printStackTrace(); System.out.println("InterruptedException - failed to symbolize SIDC: "+ sidc); } catch (ExecutionException e) { e.printStackTrace(); System.out.println("ExecutionException - failed to symbolize SIDC: "+ sidc); } This is how we can create a Symbol using the MIL STD 2525D .stylx file. Now we can create a Graphic object by passing in the symbol and display it on the map.
... View more
05-30-2020
05:10 AM
|
0
|
1
|
2211
|
POST
|
I'm sorry, it's still not clear, how we pass the SIDC (Symbol Identification Code) or how do we passing some parameters (like modifier, graphic amplifier, text amplifier, frame, icon, fill etc) to the dictionary and get a symbol using this code? There is no code available for that or any reference what are the possible parameters and values.
... View more
05-29-2020
05:02 AM
|
0
|
0
|
2211
|
POST
|
Hello GeoNet community. I'm working on an application with ECDIS related functionality. I'm getting AIS and radar latitude longitude positions of targets (ships/water crafts etc) and i want to display them in the military symbolic standard MIL STD 2525D. Going through the documentation, i found that we are supposed to use a .stylx file to obtain a symbol however i cannot understand the code to do so. Its also mentioned here (display-military-symbols-with-a-dictionary-renderer) that: Military symbol dictionary styles allow you to choose whether to assemble and render the symbol based on a single attribute with a unique Symbol ID Code (SIC or SIDC) or based on a series of predefined attributes. For example, in MIL-STD-2525BC2, a SIC of SFSPCL--------- represents this symbol . I cannot find any sample code where i can understand the use of SIDC to obtain a symbol from the .stylx file and display it on the map. Please tell me how do i display a specific symbol using a specific SID Code.
... View more
05-27-2020
11:57 PM
|
0
|
4
|
2401
|
POST
|
I'm working on JavaFX desktop application and using the ArcGIS SDK v100.7.0. There is a scenario in my code, where i need to create a Polyline from a Geometry object. I'm getting this geometry from the SketchEditor using sketchEditor.getGeometry() . I actually want to add a Point to the sketchEditor geometry when in Polyline creation mode using the point Lat Long inserted by the user and not by mouse click on map. How do i get the sketch geometry into a PointCollecion , add my new Point into the collection, create Polygon from this collection and then pass this polygon back to the sketchEditor.start() method. How do i achieve this?
... View more
02-28-2020
08:11 AM
|
0
|
1
|
725
|
POST
|
Thank you for your response. I have seen the usage of SketchEditor. Though my question was to know specifically that if there is any way to programmatically change the position of a polygon/polyline by shifting it from it's geometry, however your response confirms that there isn't any way to do that apart from the SketchEditor, which is why i'm going to accept this as the correct answer. The problem i am facing is that right now, my application gives the user the ability to draw different shapes (including Square, Rectangle and circles which are not currently supported by the SDK but are drawn using polygon geometry programmatically by me). In order to edit those unsupported shapes, the SketchEditor must support them too. I'm trying to avoid editing shapes using the SketchEditor due to this rigid scenario. Starting the SketchEditor with a circle polygon may probably ruin the shape. Can i even ask you when is the team going to add support for more shape geometries plus SketchEditor just like the Team has done with C# SDK.
... View more
02-06-2020
03:52 AM
|
0
|
1
|
1326
|
Title | Kudos | Posted |
---|---|---|
1 | 12-05-2020 06:00 AM | |
1 | 10-18-2019 12:15 AM |
Online Status |
Offline
|
Date Last Visited |
02-10-2021
08:12 AM
|