Due to the current gap in continued funding from the U.S. National Science Foundation (NSF), the NSF Unidata Program Center has temporarily paused most operations. See NSF Unidata Pause in Most Operations for details.
Now I'd like to change map projections within a display, say from a Lambert to a Mercator. Trying this, I first remove scalar maps for RealType.Latitude and RealType.Longitude from my DisplayImpl (J2D). But then when I try to build a new DisplayTupleType with DisplayRealTypes from the example visad app, I get errors. Seems like a DisplayRealType must be uniquely named. To get around this, I just make sure that the N'th time I set the display coord sys, I name the DisplayRealType with N in the name. I did think about just catching the TypeException and continuing regardless but was unsure of the ramifications.
I also tried keeping the display real types and just building a new tuple type for each map projection, but that failed with a 'display real type already in a tuple' error.
Can anyone explain why such types must be uniquely named? On a related note, is it a waste to be building 3 display real types and a displaytupletype every time I want a new display side coordinate system, i.e. a new map projection?? Is there a better way to achieve my goal. I note that what I really want is a setCoordinateSystem on my DisplayTupleType, then I wouldn't even have to remove the scalar maps at all (??)
Hmm, it's just dawned on me that IDV allows in-display map projections on the fly, can anyone enlighten me there?
Any help appreciated. Stuart
visad
archives: