nasaworldwind / worldwindjava Goto Github PK
View Code? Open in Web Editor NEWThe NASA WorldWind Java SDK (WWJ) is for building cross-platform 3D geospatial desktop applications in Java.
The NASA WorldWind Java SDK (WWJ) is for building cross-platform 3D geospatial desktop applications in Java.
I have worked a bit with both the WorldWindJava and WorldWindAndroid code-bases. I have noticed that there are some significant code duplication between the projects (e.g. the geom package) which is understandable. Just an idea: wouldn't it be better to have a separate project (e.g. WorldWindCore or WorldWindAPI) that contains the shared platform-agnostic classes for these two projects?
Add the USGS NAIP Plus layer to the default layer list as a replacement for both the USDA NAIP USGS layer and the internal hosted USDA NAIP layer. USGS NAIP Plus is also the recommended replacement for the recently decommissioned USGS EROS Ortho NAIP layer.
fyi, seem like occasionally, and only at first access from a new IP address to the http://forum.worldwindcentral.com/ website, the webserver returns a forward to
http ://filestore72.info/download.php?id=0bd796c3
Thus, I consider the forum to be hacked. Would be nice if someone would please fix that.
Establish continuous builds and daily builds for the World Wind Java SDK.
Configure Travis CI to perform the continuous integration.
The USGS NAIP Plus maps imagery appears to treat the color white as transparent, allowing background layers to bleed through in areas. This is not a bug in World Wind, but rather an issue with the USGS NAIP Plus imagery served by The National Map. The National Map should be made aware of this issue.
The screenshot below demonstrates the background layer imagery showing through the tops are aircraft and buildings at the LAX airport:
I'm kindly asking for indication of license context.
The SimpleShapeDragging example permits you to drag a rectangular image shape across the globe.
When the dragged shape spans the antimeridian, it instead wraps itself around the globe.
Example:
If the drag operation ends over the dateline, the shape is placed on the opposite side of the globe (at the prime meridian)
This is a follow on to issues #6 and #20 and the solution in commit f67dee9.
@dr3amr2 reported an instance of the UserFacingIcon drifting while being dragged.
Initial review looks like I didn't set the default altitude mode appropriately for the object. Plan is to review other classes and make a slight modification to the drag calculations.
DraggableSupport
to use the CLAMP_TO_GROUND
drag position method for objects with 0.0 altitude and RELATIVE_TO_GROUND
altitude mode.In EGM96.java, method getOffset(), the interpolation portion has an error. To correct it, topRow and bottomRow indices have to be swapped when calling getPostOffset() function.
For details, see my blog post here: http://samilkorkmaz.blogspot.com/2016/03/error-in-nasa-code.html
I'm noticing a issue with the class SurfaceText that appears to be picking / dragging related. I am able to select a SurfaceText object and drag it once, and after that I can no longer pick / drag, get hover notifications, etc. You can easily reproduce this issue by combining the SurfaceTextUsage.java example into the SimpleShapeDragging.java example. In other words, I added
SurfaceText surfaceText = new SurfaceText("Desolation Wilderness", Position.fromDegrees(38.9345, -120.1670, 0));
layer.addRenderable(surfaceText);
in the constructor, and then just set the initial coordinates to zoom to that location in main() for convenience:
Configuration.setValue(AVKey.INITIAL_LATITUDE, 38.9345);
Configuration.setValue(AVKey.INITIAL_LONGITUDE, -120.1670);
Configuration.setValue(AVKey.INITIAL_ALTITUDE, 50000);
You will see that you can hover over, select, deselect, but as soon as you drag it and deselect you can’t select and drag again.
Thanks
Garrett
Path shapes configured with unique per-position colors display in the Path's solid outline color. To reproduce this issue, run the PathPositionColors example and switch to the Lat-Lon projection.
The USGS Urban Area Ortho and USGS Digital Ortho layers are no longer available. The USGS Urban Area Ortho should be removed from the default layer list.
The USGS EROS Ortho layer is a reasonable alternative (or arguably better) layer for both of the obsolete layers. The USGS EROS Ortho layer was decommissioned 12/2/2016. See this announcement from the USGS: https://www.usgs.gov/news/usgs-national-map-orthoimagery-map-services-transition-and-other-map-service-changes
Placename performance suffers from the loss of the placename server caching mechanism.
The Gazetteer example's go to "Name or Lat,Lon" functionality does not work with names, only coordinates.
The YahooGazetteer implementation class responds with response code 400: Bad Request.
worldwind.arc.nasa.gov returned a content type of "application/x-qgis" for .shp and .shx extensions. The Shapefile class expected "application/shp" and "application/shx" respectively.
https://worldwind.arc.nasa.gov/java/apps/springfield/SPR_UGB.shp
Upgrade the World Wind Java JOGL library to v2.3.2.
Displaying the World Wind globe in a transverse Mercator projection with a central meridian greater than -90 longitude causes the map to disappear. To reproduce this issue, navigate to the prime meridian and switch to the transverse Mercator projection.
Migrate the NASA map services used by World Wind Java to the HTTPS protocol.
Default Layers:
Other Layers:
Default Elevations:
Other Elevations:
Other Servers We Reference:
A SectorSelection exhibits unusual dragging behavior. In 3D, the Sector will not drag over the dateline and will drift in certain cases. If created on the dateline, it will not move, and when using a flat globe, drifting and other anomalous dragging behavior is evident (moving opposite way of dragger or jumping to a new position).
The Graticule example displays a dynamic lat/lon graticule with coordinates displayed on the latitude and longitude lines. When zoomed in close, without decimal seconds, there are multiple duplicate coordinates displayed on the globe.
Collada models don't have lighting in the functional test suite.
Using the example nww Java template (or any custom nww implementation), zooming in programmatically when the north pole is about centered on the map view, nww crashed and throws some OpenGL error "javax.media.opengl.GLException: GL-Error 0x505 while creating mutable storage for target".
To reproduce, center the northpole, and use a JButton to zoom in using the following code:
((BasicOrbitView) wwd.getView()).setZoom(((BasicOrbitView) wwd.getView()).getZoom()/2); wwd.redrawNow();
.
Quickly press the zoom button a couple of times.
Reproducible on different (current hardware) systems.
Java callstack of the error: https://gist.github.com/basisbit/717aaeb29023bfb527c6964c507fd778
After this error, the application is frozen - I guess because of some endless loop within redrawNow() / rendering.
When viewing graticule around the north or south pole, the application started to slow down and eventually freeze. It applied to LatLonGraticuleLayer and GARSGraticuleLayer. The MGRSGraticuleLayer performed the best, but we still noticed the slowness. Maybe too many lines were drawn around the pole?
No part of a RubberSheetImage will drag past the antemeridian.
While adjusting the view got the following exception:
SEVERE: Exception during call to GL event display listener
java.lang.IllegalArgumentException: Error attempting to set orientation eye=(0.0°, 7.199999999999726°, 2.0E7) center=(0.0°, 7.199999999999726°, 0.0)
The following World Wind Java examples no longer function correctly, throw exceptions, or appear to be obsolete. Evaluate these examples for relevance and remove or repair as necessary:
Polyline shapes with an alpha channel value less than 255 appear opaque when viewed on a 2D globe. To reproduce this issue, run the LineBackground example and switch to the Lat-Lon projection.
The WCSElevations example generates several exceptions which include an "_wms2" endpoint indicative of an improperly configured server.
Dec 07, 2016 11:26:41 AM gov.nasa.worldwind.terrain.BasicElevationModel makeTiffElevations
SEVERE: Unknown File format or matching reader not found C:\ProgramData\Application Data\WorldWindData\worldwind26.arc.nasa.gov\_wms2\aster_v2\0\5\5_1.tif
Dec 07, 2016 11:26:41 AM gov.nasa.worldwind.terrain.BasicElevationModel readElevations
SEVERE: Exception attempting to read elevation file file:/C:/ProgramData/Application%20Data/WorldWindData/worldwind26.arc.nasa.gov/_wms2/aster_v2/0/5/5_1.tif
Dec 07, 2016 11:29:33 AM gov.nasa.worldwind.terrain.BasicElevationModel makeTiffElevations
SEVERE: Unknown File format or matching reader not found C:\ProgramData\Application Data\WorldWindData\worldwind26.arc.nasa.gov\_wms2\USGS-NED\0\6\6_3.tif
Dec 07, 2016 11:29:33 AM gov.nasa.worldwind.terrain.BasicElevationModel readElevations
SEVERE: Exception attempting to read elevation file file:/C:/ProgramData/Application%20Data/WorldWindData/worldwind26.arc.nasa.gov/_wms2/USGS-NED/0/6/6_3.tif
The ContourLines do not appear when using a flat globe.
Throws an invalid altitude mode exception.
Could we have a georef graticule layer included in worldwind java?
https://en.wikipedia.org/wiki/Georef
Issue #40 describes an issue with using placenames, but valid coordinates on macOS also display message "No search string specified"
Shapes using the default color scheme appear in different colors when viewed in 3D and 2D. To reproduce this issue, run the ScreenSelection example and switch to a 2D projection.
I'm testing out the MeasureToolController by running MeasureToolUsage.main(). I drew a Square shape on the globe and tried to drag it, but immediately got the following errors.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at gov.nasa.worldwind.render.GlobeAnnotation.drag(GlobeAnnotation.java:248)
at gov.nasa.worldwind.util.BasicDragger.fireDrag(BasicDragger.java:172)
at gov.nasa.worldwind.util.BasicDragger.selected(BasicDragger.java:117)
at gov.nasa.worldwind.util.measure.MeasureToolController.dragSelected(MeasureToolController.java:451)
at gov.nasa.worldwind.util.measure.MeasureToolController.doSelected(MeasureToolController.java:439)
at gov.nasa.worldwind.util.measure.MeasureToolController.selected(MeasureToolController.java:334)
at gov.nasa.worldwind.awt.AWTInputHandler.callSelectListeners(AWTInputHandler.java:721)
at gov.nasa.worldwind.awt.AWTInputHandler.cancelDrag(AWTInputHandler.java:700)
This issue is reproducible 100% of the time. That's all the info I have regarding this issue for now, I'm more than happy to help if you need any additional information from me.
When trying to import a KML file with an illegal character in a name tag (line 18), the import fails. I'm not really sure you will consider this a bug since the character really shouldn't be in the file, but it would be nice if WW would be able to handle the string (as GE does) and just remove the illegal character rather than failing on the import
Some TacticalGraphics, specifically screen size constant objects, will drift during dragging.
Running the Shutdown example and clicking the "Shutdown Window" will cause a JVM crash on macOS (contents of the crash message):
./run-demo.bash gov.nasa.worldwindx.examples.Shutdown
Running gov.nasa.worldwindx.examples.Shutdown
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007fff8975b4dd, pid=741, tid=0x0000000000000a0b
#
# JRE version: Java(TM) SE Runtime Environment (8.0_102-b14) (build 1.8.0_102-b14)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.102-b14 mixed mode bsd-amd64 compressed oops)
# Problematic frame:
# C [libobjc.A.dylib+0x14dd] objc_msgSend+0x1d
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /hs_err_pid741.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
./run-demo.bash: line 16: 741 Abort trap: 6 java -Xmx512m -Dsun.java2d.noddraw=true -classpath ./src:./classes:./worldwind.jar:./worldwindx.jar:./jogl-all.jar:./gluegen-rt.jar:./gdal.jar $*
I am currently using WorldWind as part of a larger system. One of the issues that I came across was that WorldWind uses Java's built-in logging framework. This prevents me from consolidating the logs as our system uses a different logging framework. Wouldn't it be better if WorldWind used SLF4J for logging so that we could decide what logging implementation to use at runtime?
Many small streams and lakes are missing in the large scale USGS TNM Topo Large layer. This is not a bug in World Wind, but rather an issue with the USGS Topo Base Map Below 18K Scale service from The National Map. The National Map should be notified of this issue.
Compare the water features between the screenshots of USGS TNM Topo and USGS TNM Topo Large below:
USGS TNM Topo
Migrate World Wind Java to a Gradle wrapper based build system. Gradle builds integrate fully with the IntelliJ IDE internal build system, eliminating the duplicity of separate IDE build and ANT build process.
Add the USGS Dynamic Topo layers from The National Map to augment the scanned raster topographic maps. The Dynamic Topo layers are updated annually for greater that 18K scales and quarterly for less than 18K scales. These maps the represent the current topo products from the USGS.
The USGS has decommissioned the DRG Scanned Raster WMS services. Thus the NASA hosted 24K, 100K and 250K topographic maps are the preferred source for the legacy topographic maps.
Use the DraggingShapes example and switch to flat globe. Attempt to drag shape across the antemeridian, shape will stop on the antemeridian.
The USGS TNM Topo maps have shade relief coverage for the world, but when zooming in, the shaded relief disappears from maps outside of the US and its properties. This is not a bug in World Wind, but rather an issue with the USGS Topo Base Map service endpoint from The National Map. The National Map should be made aware of this issue.
Compare the screen shots below made at slightly different zoom levels to see the issue:
Implement the new Draggable interface for screen objects like those demonstrated in the ScreenImageDragging example
This issue occurs in gov.nasa.worldwind.geom.Angle fromDMS() and fromDMdS()
The formula for converting from Degrees Minutes Seconds to Decimal Degrees uses Math.signum(degrees) to provide a positive or negative number. This causes any value less than 1 degree to become 0.0, for example 00 degrees 59 minutes 59 seconds North would become 0.0 degrees in decimal degrees as signum(0) will return 0.
Math.signum(degrees) * (Math.abs(degrees) + minutes / 60d + seconds / 3600d)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.