Code Monkey home page Code Monkey logo

worldwindjava's People

Contributors

beak-man avatar eirizarry avatar emxsys avatar gbburkhardt avatar markpet42 avatar markpet49 avatar moovida avatar pdavidc avatar tag3 avatar zglueck avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

worldwindjava's Issues

Split out core classes.

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?

Continuous integration

Establish continuous builds and daily builds for the World Wind Java SDK.

Goal:

Configure Travis CI to perform the continuous integration.

Objectives:

  • Run the ant build task on push events
  • Run a daily build in a cron job
  • Upload release artifacts from "tagged" builds to GitHub releases
  • Upload JavaDoc from "tagged" builds to GitHub pages
    - [ ] Run unit tests on push events deferred

The USGS NAIP Plus layer is transparent in places

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:
image

Surface images unable to span antimeridian

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:
image

If the drag operation ends over the dateline, the shape is placed on the opposite side of the globe (at the prime meridian)

Cursor Drifting During Dragging

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.

  • Check All Defaults
  • Modify DraggableSupport to use the CLAMP_TO_GROUND drag position method for objects with 0.0 altitude and RELATIVE_TO_GROUND altitude mode.

SurfaceText Picking / Drag problem

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 per-position colors do not work on 2D globe

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.

Remove decommissioned USGS Ortho layers

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

Gazetteer does not work with place names

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.

Transverse Mercator map disappears when central meridian > -90

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.

HTTPS map services

Migrate the NASA map services used by World Wind Java to the HTTPS protocol.

Default Layers:

  • Blue Marble May 2004 (BMNGWMSLayer2.xml)
  • i-cubed Landsat (LandsatI3WMSLayer2.xml)
  • USDA NAIP (USDANAIPWMSImageLayer.xml)
  • USDA NAIP USGS (USDANAIPUSGSWMSImageLayer.xml) [nationalmap.gov] service decommissioned
  • MS Virtual Earth Aerial (MSVirtualEarthAerialLayer.xml)
  • Bing Imagery (BingImagery.xml)
  • USGS Topographic Maps 1:250K (USGSTopoLowResLayer.xml)
  • USGS Topographic Maps 1:100K (USGSTopoMedResLayer.xml)
  • USGS Topographic Maps 1:24K (USGSTopoHighResLayer.xml)
  • USGS Urban Area Ortho (USGSUrbanAreaOrthoLayer.xml) [ww25/tile?104] deprecated; service unavailable
  • Political Boundaries (CountryBoundariesLayer.java)
  • Open Street Map (OpenStreetMap.xml)
  • Earth at Night (EarthAtNightLayer.xml)
  • Place Names (NASAWFSPlaceNameLayer.java)

Other Layers:

  • FAA Sectionals (AlaskaFAASectionals.xml)
  • Blue Marble 200405 - 256 (BMNG256.xml)
  • Blue Marble (WMS) 2004 (BMNGWMSLayer.xml)
  • i-cubed Landsat (Landsat256.xml)
  • i-cubed Landsat (LandsatI3WMSLayer.xml)
  • MS Virtual Earth Hybrid (MSVirtualEarthHybridLayer.xml)
  • MS Virtual Earth Roads (MSVirtualEarthRoadsLayer.xml)
  • USGS Digital Ortho (USGSDigitalOrthoLayer.xml) [ww25/tile?101] deprecated; service unavailabe
  • Scankort Denmark (ScankortDenmarkImageLayer.xml) [data/wms]
  • MILSTD2525 Icon Retriever (worldwind.xml / MilStd2525Constants.java)

Default Elevations:

  • USA 10m, World 30m, Ocean 900m (EarthElevations2.xml)

Other Elevations:

  • USA 10m, World 30m, Ocean 900m (EarthElevations256.xml)
  • Aster V2 (AsterWCS.xml) [ww26/wcs]
  • Earth Elevation Model (SRTM30, SRTM3, NED 10m, BIL16) (EarthMergedElevationModel.xml)
  • USA 10m, World 30m, Ocean 900m (EarthElevatioModelAsBil16.xml)
  • Earth Elevation Model (USA 10m, WordWide 30m, Ocean 900m) (EarthElevatioModelAsBil32.xml)
  • Scankort Denmark DSM (ScankortDenmarkDSMElevationModel.xml) [data/elev]

Other Servers We Reference:

  • neowms.sci.gsfc.nasa.gov/wms/wms Used in the EuroGeossApp and WMSLayerManager in the worldwindx package.
  • eoimages.gsfc.nasa.gov/ve//1438/earth_lights_lrg.jpg Used in the RemoteSurfaceImage example
  • 23.21.170.207/geodab-dswg/services/cswisogeo Used in the EuroGeossApp in the worldwindx package.

SectorSelector dragging issues

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).

Graticule display of decimal seconds when zoomed in

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.

OpenGL error when programmatically zooming in on north pole

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.

Graticule freezes around north/south poles

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?

AnimatedGlobe example interaction causes exception

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)

Repair defunct World Wind Java examples

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:

  • DynamicLayerDisplay
  • ExtrudedPolygonsFromShapefile
  • PersistSessionState
  • ScreenSelection
  • SplitPaneUsage
  • WebBrowserBalloons

Transparent Polylines appear opaque on 2D globe

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.

WCS server configurations using a wms2 endpoint

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

Different default shape colors in 3D/2D

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.

NPE from MeasureToolController when trying to drag shape.

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.

Missing USGS Topographic 100K maps

A large region of the USGS Topographic 100K maps are missing in the South, affecting Tennessee, Alabama, Arkansas, Louisiana, North Carolina and South Carolina.

image

KML Import Fails on Illegal Character

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

portion.txt

WorldWindow shutdown causes JVM crash on macOS

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 $*

Consider using SLF4J.

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?

Small water features missing in USGS TNM Topo Large maps

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
image

USGS TNM Topo Large
image

Migrate to Gradle wrapper build

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 USGS Dynamic Topo layers

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.

Shaded relief missing at larger scales in USGS TNM Topo maps outside US

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:
image
image

Conversion from DMS to Decimal Degrees fails between 1 Degree and -1 Degree

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.