Modify

Opened 7 years ago

Closed 7 years ago

Last modified 7 years 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 by Don-vip, 7 years ago

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

comment:2 by Don-vip, 7 years ago

Milestone: 18.02

comment:3 by Don-vip, 7 years ago

In 13387/josm:

see #15880 - nicer exception

comment:4 by Don-vip, 7 years ago

In 13388/josm:

see #15880 - robustness to unsupported projections

comment:5 by Don-vip, 7 years ago

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 by Don-vip, 7 years ago

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 by bastiK, 7 years ago

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

comment:9 by Don-vip, 7 years ago

ESRI file adds 388 new projections only :)

in reply to:  8 comment:10 by Klumbumbus, 7 years ago

Replying to Don-vip:

In 13395/josm:

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

comment:11 by Don-vip, 7 years ago

no @since in this commit! Try again ;)

comment:12 by Don-vip, 7 years ago

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 by Don-vip, 7 years ago

Resolution: fixed
Status: closedreopened

comment:14 by Don-vip, 7 years ago

Paul, can you please help me? :)

comment:15 by bastiK, 7 years ago

Yes, ASAP. :)

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

comment:16 by bastiK, 7 years ago

In 13421/josm:

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

comment:17 by bastiK, 7 years ago

In 13422/josm:

see #15880 - update projection reference data

comment:18 by bastiK, 7 years ago

In 13423/josm:

see #15880 - add Fischer ellipsoid

comment:19 by bastiK, 7 years ago

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

comment:20 by Don-vip, 7 years ago

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

comment:21 by bastiK, 7 years ago

See #15915.

comment:22 by Don-vip, 7 years ago

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.

Version 1, edited 7 years ago by Don-vip (previous) (next) (diff)

comment:23 by bastiK, 7 years ago

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.

in reply to:  23 ; comment:24 by Don-vip, 7 years ago

Replying to bastiK:

The "stere" projection has also an equatorial variant

OK. Would it be difficult to add this variant?

in reply to:  24 comment:25 by bastiK, 7 years ago

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 by Don-vip, 7 years ago

Sure :)

comment:27 by Don-vip, 7 years ago

Done: #15970

comment:28 by Don-vip, 7 years ago

In 13441/josm:

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

comment:29 by Don-vip, 7 years ago

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 by bastiK, 7 years ago

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

comment:31 by Don-vip, 7 years ago

In 13442/josm:

see #15880 - update regression test data

comment:32 by Don-vip, 7 years ago

Resolution: fixed
Status: reopenedclosed

in reply to:  11 comment:33 by Klumbumbus, 7 years ago

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. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.