Modify

Opened 10 months ago

Closed 10 months ago

Last modified 10 months ago

#15880 closed defect (fixed)

Projection EPSG:102630 (ESRI) not supported

Reported by: thater@… Owned by: team
Priority: normal Milestone: 18.02
Component: Core imagery Version:
Keywords: template_report wmts esri projection Cc: bastiK, stoecker

Description

What steps will reproduce the problem?

  1. Add wmts - http://maps.cityofmobile.org/arcgis/rest/services/orthophotos2017/MapServer/WMTS/1.0.0/WMTSCapabilities.xml

What is the expected result?

I expected to get a local aerial map

What happens instead?

crashed

Please provide any additional information below. Attach a screenshot if possible.

URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2018-01-28 23:08:56 +0100 (Sun, 28 Jan 2018)
Build-Date:2018-01-28 22:25:44
Revision:13367
Relative:URL: ^/trunk

Identification: JOSM/1.5 (13367 en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 1709 (16299)
Memory Usage: 522 MB / 910 MB (185 MB allocated, but free)
Java version: 1.8.0_161-b12, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 1920x1080, \Display1 1920x1080
Maximum Screen Size: 1920x1080

Plugins:
+ CADTools (1007)
+ FastDraw (33731)
+ ImportImagePlugin (33563)
+ alignways (33784)
+ auto_tools (1515284769)
+ buildings_tools (34040)
+ ejml (32680)
+ geotools (33958)
+ imagery_offset_db (33774)
+ jts (32699)
+ log4j (32699)
+ turnrestrictions (33780)
+ utilsplugin2 (33991)

Last errors/warnings:
- W: No configuration settings found.  Using hardcoded default values for all pools.
- W: No default layer selected, choosing first layer.
- E: Handled by bug report queue: java.lang.NullPointerException


=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-0 (28) of main
java.lang.NullPointerException
	at org.openstreetmap.josm.data.imagery.WMTSTileSource.getTileSize(WMTSTileSource.java:724)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.estimateTileCacheSize(AbstractTileSourceLayer.java:631)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.initTileSource(AbstractTileSourceLayer.java:289)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.initializeIfRequired(AbstractTileSourceLayer.java:591)
	at org.openstreetmap.josm.gui.layer.AbstractTileSourceLayer.attachToMapView(AbstractTileSourceLayer.java:567)
	at org.openstreetmap.josm.gui.MapView.layerAdded(MapView.java:347)
	at org.openstreetmap.josm.gui.layer.LayerManager.fireLayerAdded(LayerManager.java:458)
	at org.openstreetmap.josm.gui.layer.LayerManager.realAddLayer(LayerManager.java:233)
	at org.openstreetmap.josm.gui.layer.MainLayerManager.realAddLayer(MainLayerManager.java:269)
	at org.openstreetmap.josm.gui.layer.LayerManager.lambda$addLayer$0(LayerManager.java:217)
	at org.openstreetmap.josm.gui.util.GuiHelper.runInEDTAndWaitWithException(GuiHelper.java:234)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:217)
	at org.openstreetmap.josm.gui.layer.LayerManager.addLayer(LayerManager.java:206)
	at org.openstreetmap.josm.actions.AddImageryLayerAction.actionPerformed(AddImageryLayerAction.java:141)
	at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
	at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
	at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
	at javax.swing.AbstractButton.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.menuDragMouseReleased(Unknown Source)
	at javax.swing.JMenuItem.fireMenuDragMouseReleased(Unknown Source)
	at javax.swing.JMenuItem.processMenuDragMouseEvent(Unknown Source)
	at javax.swing.JMenuItem.processMouseEvent(Unknown Source)
	at javax.swing.MenuSelectionManager.processMouseEvent(Unknown Source)
	at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.eventDispatched(Unknown Source)
	at java.awt.Toolkit$SelectiveAWTEventListener.eventDispatched(Unknown Source)
	at java.awt.Toolkit$ToolkitEventMulticaster.eventDispatched(Unknown Source)
	at java.awt.Toolkit.notifyAWTEventListeners(Unknown Source)
	at java.awt.Component.dispatchEventImpl(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
	at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
	at java.awt.Container.dispatchEventImpl(Unknown Source)
	at java.awt.Window.dispatchEventImpl(Unknown Source)
	at java.awt.Component.dispatchEvent(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.awt.EventQueue$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)

=== RUNNING THREADS ===
Thread: TimerQueue (30) of system
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
java.util.concurrent.DelayQueue.take(Unknown Source)
javax.swing.TimerQueue.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Reference Handler (2) of system
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Unknown Source)
java.lang.ref.Reference.tryHandlePending(Unknown Source)
java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)

Thread: Map Status Collector (225) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
org.openstreetmap.josm.gui.MapStatus$Collector.run(MapStatus.java:433)
java.lang.Thread.run(Unknown Source)

Thread: Finalizer (3) of system
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

Thread: Timer-1 (56) of main
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Thread: pool-3-thread-8 (70) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: JCS-ElementEventQueue-Thread-7 (46) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: WeakCollectionCleaner (52) of main
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
org.geotools.util.WeakCollectionCleaner.run(WeakCollectionCleaner.java:77)

Thread: D3D Screen Updater (32) of system
java.lang.Object.wait(Native Method)
sun.java2d.d3d.D3DScreenUpdateManager.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: pool-3-thread-2 (64) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: pool-3-thread-4 (66) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: AWT-EventQueue-0 (28) of main
Stacktrace see above.

Thread: AWT-Shutdown (25) of system
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Unknown Source)
sun.awt.AWTAutoShutdown.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: pool-3-thread-7 (69) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: File Watcher (21) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingDeque.takeFirst(Unknown Source)
java.util.concurrent.LinkedBlockingDeque.take(Unknown Source)
sun.nio.fs.AbstractWatchService.take(Unknown Source)
org.openstreetmap.josm.io.FileWatcher.processEvents(FileWatcher.java:107)
org.openstreetmap.josm.io.FileWatcher$$Lambda$4/1512981843.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Signal Dispatcher (4) of system

Thread: pool-3-thread-5 (67) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Timer-3 (224) of main
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Unknown Source)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Thread: message-notifier-0 (59) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: pool-3-thread-6 (68) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Thread-1 (20) of main
sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus0(Native Method)
sun.nio.fs.WindowsNativeDispatcher.GetQueuedCompletionStatus(Unknown Source)
sun.nio.fs.WindowsWatchService$Poller.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Weak reference cleaner (33) of main
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
org.openstreetmap.josm.tools.ListenableWeakReference.clean(ListenableWeakReference.java:60)
org.openstreetmap.josm.tools.ListenableWeakReference$$Lambda$105/555273695.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Attach Listener (5) of system

Thread: pool-3-thread-1 (63) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Timer-0 (53) of main
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Thread: Java2D Disposer (23) of system
java.lang.Object.wait(Native Method)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
java.lang.ref.ReferenceQueue.remove(Unknown Source)
sun.java2d.Disposer.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: AWT-Windows (26) of system
sun.awt.windows.WToolkit.eventLoop(Native Method)
sun.awt.windows.WToolkit.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Timer-2 (128) of main
java.lang.Object.wait(Native Method)
java.lang.Object.wait(Unknown Source)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Thread: main-worker-0 (62) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: Keep-Alive-Timer (223)
java.lang.Thread.sleep(Native Method)
sun.net.www.http.KeepAliveCache.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: pool-3-thread-3 (65) of main
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.park(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source)
java.util.concurrent.LinkedBlockingQueue.take(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)

Thread: DestroyJavaVM (60) of main

Thread: GT authority factory disposer (47) of main
java.lang.Object.wait(Native Method)
java.util.TimerThread.mainLoop(Unknown Source)
java.util.TimerThread.run(Unknown Source)

Attachments (0)

Change History (33)

comment:1 Changed 10 months ago by Don-vip

Component: CoreCore imagery
Keywords: wmts added
Summary: WMTS image crashes josmNPE at WMTSTileSource.getTileSize

comment:2 Changed 10 months ago by Don-vip

Milestone: 18.02

comment:3 Changed 10 months ago by Don-vip

In 13387/josm:

see #15880 - nicer exception

comment:4 Changed 10 months ago by Don-vip

In 13388/josm:

see #15880 - robustness to unsupported projections

comment:5 Changed 10 months ago by Don-vip

Cc: bastiK stoecker added
Keywords: esri projection added
Summary: NPE at WMTSTileSource.getTileSizeProjection EPSG:102630 (ESRI) not supported

The bug comes from that only one projection is supported by the WMTS server, and it is an ESRI one we currently don't know:

<ows:SupportedCRS>urn:ogc:def:crs:EPSG::102630</ows:SupportedCRS>

ESRI defines its own (big) set of projections, I already fixed a similar problem in opendata plugin (#10495) by including the whole ESRI database (more than 7000 projections) obtained from Github (Apache 2.0) in [o33356]. The file takes 262 kb (50 kb compressed).

What do you think we should do in JOSM core?

comment:6 Changed 10 months ago by Don-vip

Ah no sorry we don't need this file. It is only needed to translated ESRI names into ESRI EPSG codes. Not needed at all for JOSM core. We would only need to add projection definitions.

comment:7 Changed 10 months ago by bastiK

Yes, we would need this or that file or individual entries from those files.

comment:9 Changed 10 months ago by Don-vip

ESRI file adds 388 new projections only :)

comment:10 in reply to:  8 Changed 10 months ago by Klumbumbus

Replying to Don-vip:

In 13395/josm:

Much likely I ruined your @since codes by commiting [13394] 1 second before you :D

comment:11 Changed 10 months ago by Don-vip

no @since in this commit! Try again ;)

comment:12 Changed 10 months ago by Don-vip

junit.framework.AssertionFailedError: no reference data for following projections: [EPSG:8065]
	at org.openstreetmap.josm.data.projection.ProjectionRefTest.testProjections(ProjectionRefTest.java:340)
	at org.openstreetmap.josm.testutils.JOSMTestRules$TimeoutThread.run(JOSMTestRules.java:595)

What did I miss? I updated the tests, so I don't understand why this projection has not been automatically added.

comment:13 Changed 10 months ago by Don-vip

Resolution: fixed
Status: closedreopened

comment:14 Changed 10 months ago by Don-vip

Paul, can you please help me? :)

comment:15 Changed 10 months ago by bastiK

Yes, ASAP. :)

Btw., the new reference-data looks suspicious, a lot of 0.0 in the last field.

comment:16 Changed 10 months ago by bastiK

In 13421/josm:

see #15880 - throw exception when there is an error loading the projection definition from config file

comment:17 Changed 10 months ago by bastiK

In 13422/josm:

see #15880 - update projection reference data

comment:18 Changed 10 months ago by bastiK

In 13423/josm:

see #15880 - add Fischer ellipsoid

comment:19 Changed 10 months ago by bastiK

There is still a problem with ESRI:53026 and ESRI:54026 (parameters not supported), but I haven't looked into it yet.

comment:20 Changed 10 months ago by Don-vip

I'll take a look, it's easier when I know where to look :)

comment:21 Changed 10 months ago by bastiK

See #15915.

comment:22 Changed 10 months ago by Don-vip

I installed ArcGIS trial to find the "official" definition of these two projections and it matches what we can find on the Internet:

53026,?Sphere_Stereographic?,?ESRI?,53026,?Stereographic?,?PROJCS["Sphere_Stereographic",GEOGCS["GCS_Sphere",DATUM["D_Sphere",SPHEROID["Sphere",6371000.0,0.0]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]?

54026,?World_Stereographic?,?ESRI?,54026,?Stereographic?,?PROJCS["World_Stereographic",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137.0,298.257223563]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Stereographic"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",0.0],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]?

The latitude of origin is set to 0. Maybe we can just ignore these invalid projections. I have no idea if it should be -90 or +90 degrees.

Last edited 10 months ago by Don-vip (previous) (diff)

comment:23 Changed 10 months ago by bastiK

The "stere" projection has also an equatorial variant: https://github.com/OSGeo/proj.4/blob/master/src/PJ_stere.c

I didn't bother to add an implementation as it wasn't used.

comment:24 in reply to:  23 ; Changed 10 months ago by Don-vip

Replying to bastiK:

The "stere" projection has also an equatorial variant

OK. Would it be difficult to add this variant?

comment:25 in reply to:  24 Changed 10 months ago by bastiK

Replying to Don-vip:

Replying to bastiK:

The "stere" projection has also an equatorial variant

OK. Would it be difficult to add this variant?

Not sure, how about we exclude the two projections for now and open a new ticket for adding them back in (which you can assign to me if you like ;-) )

comment:26 Changed 10 months ago by Don-vip

Sure :)

comment:27 Changed 10 months ago by Don-vip

Done: #15970

comment:28 Changed 10 months ago by Don-vip

In 13441/josm:

see #15880, see #15970 - ignore equatorial stereographic projections for now

comment:29 Changed 10 months ago by Don-vip

Still got an error:

java.lang.AssertionError: GCS Fischer Modified (EPSG:37004): Projecting latlon(-46.20818683579682,-17.954573988266105):
        expected: eastnorth(-1998694.0337839378,-5813774.303141782),
        but got:  eastnorth(-17.954573988266105,-46.20818683579682)!
GCS Fischer Modified (EPSG:37004): Inverse projecting eastnorth(-1998694.0337839378,-5813774.303141782):
        expected: latlon(-46.20818683579682,-17.954573988266105),
        but got:  latlon(-5813774.303141782,25.96621606242843)!
GCS South Asia Singapore (EPSG:37207): Projecting latlon(10.70464629400334,-57.9912194370372):
        expected: eastnorth(-6455553.01821197,1198629.4198701826),
        but got:  eastnorth(-57.9912194370372,10.70464629400334)!
GCS South Asia Singapore (EPSG:37207): Inverse projecting eastnorth(-6455553.01821197,1198629.4198701826):
        expected: latlon(10.704646294003346,-57.9912194370372),
        but got:  latlon(1198629.4198701826,-33.01821197103709)!

	at org.openstreetmap.josm.data.projection.ProjectionRegressionTest.testNonRegression(ProjectionRegressionTest.java:209)

comment:30 Changed 10 months ago by bastiK

Consequence of the fix [13423], i.e. the regression data should be updated.

comment:31 Changed 10 months ago by Don-vip

In 13442/josm:

see #15880 - update regression test data

comment:32 Changed 10 months ago by Don-vip

Resolution: fixed
Status: reopenedclosed

comment:33 in reply to:  11 Changed 10 months ago by Klumbumbus

Replying to Don-vip:

no @since in this commit! Try again ;)

I did. [13471][13472] Failed again ;)

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.