Modify

Opened 11 years ago

Closed 8 years ago

#8485 closed defect (wontfix)

Unable to use South Pole projection with Proj.4 plugin

Reported by: jochen@… Owned by: joshdoe
Priority: normal Milestone:
Component: Plugin proj4j Version: tested
Keywords: Cc:

Description

What steps will reproduce the problem?

  1. Install Proj.4 plugin
  2. Switch to EPSG:3031 projection
  3. Load Antarctica data (http://download.geofabrik.de/openstreetmap/antarctica.osm.bz2)

What is the expected result?

Should show Antarctica data in EPSG:3031

What happens instead?

Crash

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

Repository Root: http://josm.openstreetmap.de/svn
Build-Date: 2013-02-06 02:31:34
Last Changed Author: Don-vip
Revision: 5697
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
URL: http://josm.openstreetmap.de/svn/trunk
Last Changed Date: 2013-02-06 01:35:48 +0100 (Wed, 06 Feb 2013)
Last Changed Rev: 5697

Identification: JOSM/1.5 (5697 en)
Memory Usage: 420 MB / 910 MB (262 MB allocated, but free)
Java version: 1.6.0_20, Sun Microsystems Inc., OpenJDK 64-Bit Server VM
Operating system: Linux
Dataset consistency test: No problems found

Plugin: proj4j (29210)

java.lang.IllegalArgumentException
	at org.openstreetmap.josm.gui.mappaint.StyleCache.getWithRange(StyleCache.java:120)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:67)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:54)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$StyleCollector.add(StyledMapRenderer.java:188)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.collectRelationStyles(StyledMapRenderer.java:376)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1343)
	at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:320)
	at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:503)
	at org.openstreetmap.josm.gui.MapView.paint(MapView.java:563)
	at javax.swing.JComponent.paintChildren(JComponent.java:866)
	at javax.swing.JComponent.paint(JComponent.java:1038)
	at javax.swing.JComponent.paintToOffscreen(JComponent.java:5138)
	at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:302)
	at javax.swing.RepaintManager.paint(RepaintManager.java:1145)
	at javax.swing.JComponent._paintImmediately(JComponent.java:5086)
	at javax.swing.JComponent.paintImmediately(JComponent.java:4896)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:740)
	at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:696)
	at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:676)
	at javax.swing.RepaintManager.access$700(RepaintManager.java:57)
	at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1550)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
	at java.awt.EventQueue.access$000(EventQueue.java:96)
	at java.awt.EventQueue$1.run(EventQueue.java:608)
	at java.awt.EventQueue$1.run(EventQueue.java:606)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:194)
	at java.awt.Dialog$1.run(Dialog.java:1072)
	at java.awt.Dialog$3.run(Dialog.java:1126)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1124)
	at java.awt.Component.show(Component.java:1496)
	at java.awt.Component.setVisible(Component.java:1448)
	at java.awt.Window.setVisible(Window.java:842)
	at java.awt.Dialog.setVisible(Dialog.java:1011)
	at org.openstreetmap.josm.gui.ExtendedDialog.setVisible(ExtendedDialog.java:476)
	at org.openstreetmap.josm.gui.ExtendedDialog.showDialog(ExtendedDialog.java:269)
	at org.openstreetmap.josm.tools.BugReportExceptionHandler$1.run(BugReportExceptionHandler.java:96)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:226)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:647)
	at java.awt.EventQueue.access$000(EventQueue.java:96)
	at java.awt.EventQueue$1.run(EventQueue.java:608)
	at java.awt.EventQueue$1.run(EventQueue.java:606)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:617)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:138

Attachments (0)

Change History (9)

comment:1 by simon04, 11 years ago

For a correct representation of EPSG:3031, I went to http://jira.codehaus.org/browse/GEOS-3761

Enabling wireframe mode disables those exceptions, but the Antarctica isn't displayed at all.

I guess this problem isn't due to the proj4j plugin, but related to the rendering code. I'm not familiar with that part of JOSM, though.

comment:2 by Don-vip, 11 years ago

The rendering code is not guilty, it's because NavigatableComponent.getDist100Pixel() returns 0.0.

I don't know why, yet.

comment:3 by simon04, 11 years ago

Could that be due to the meridians all joining in one point (south pole) …?

comment:4 by Don-vip, 11 years ago

Maybe. Thid method does not seem to work with this projection:

    public LatLon eastNorth2latlon(EastNorth p) {
        org.osgeo.proj4j.ProjCoordinate pc1 = new org.osgeo.proj4j.ProjCoordinate(p.east(), p.north());
        org.osgeo.proj4j.ProjCoordinate pc2 = new org.osgeo.proj4j.ProjCoordinate();
        System.out.println("InvFrom " + pc1.x + " " + pc1.y);
        transformToWGS84.transform(pc1, pc2);
        System.out.println("InvTo " + pc2.x + " " + pc2.y);
        return new LatLon(pc2.y, pc2.x);
    }
InvFrom -9.220318685515014E-11  -1666567.013815138  => InvTo -180.0 -74.74854322089772
InvFrom  1.555928778180659E-10  -1666567.0138151385 => InvTo  180.0 -74.74854322089772
InvFrom  2.5163786412551404E-10 -1666567.0138151385 => InvTo  180.0 -74.74854322089772

comment:5 by Don-vip, 11 years ago

In 5753/josm:

see #8485 - Don't throw IllegalArgumentException with buggy projections

comment:6 by Don-vip, 11 years ago

Proj4j code has evolved, we have the revision 2150, current is 2285, let's see if upgrading it resolves this issue.

comment:7 by Don-vip, 11 years ago

Updated in [o29325] but bug still here :(

comment:8 by Don-vip, 11 years ago

Keywords: template_report removed
Summary: JOSM crash with Proj.4 pluginUnable to use South Pole projection with Proj.4 plugin

comment:9 by Don-vip, 8 years ago

Resolution: wontfix
Status: newclosed

The plugin has been deprecated, most of its projections are now in JOSM core.

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain joshdoe.
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.