From: Pedro N. <pf...@bo...> - 2005-07-14 00:25:24
|
Hi, I've had the same problem that Andrew Mason and Javier founded, with pointed features that are not repainted after zoom. And I didn't find a solution. =20 -----Mensagem original----- De: geo...@li... [mailto:geo...@li...] Em nome de geo...@li... Enviada em: quarta-feira, 13 de julho de 2005 00:08 Para: geo...@li... Assunto: Geotools-gt2-users digest, Vol 1 #551 - 3 msgs Send Geotools-gt2-users mailing list submissions to geo...@li... To subscribe or unsubscribe via the World Wide Web, visit https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users or, via email, send a message with subject or body 'help' to geo...@li... You can reach the person managing the list at geo...@li... When replying, please edit your Subject line so it is more specific than "Re: Contents of Geotools-gt2-users digest..." Today's Topics: 1. Re: help: statusbar unit meassure (P Fincar) 2. StyledMapPane ERROR when repainting a single point feature layer (Javier) --__--__-- Message: 1 Date: Tue, 12 Jul 2005 05:31:01 -0700 (PDT) From: P Fincar <pf...@ya...> Subject: Re: [Geotools-gt2-users] help: statusbar unit meassure To: Martin Desruisseaux <mar...@no...> Cc: GT User List <geo...@li...> --0-452338884-1121171461=3D:93517 Content-Type: text/plain; charset=3Diso-8859-1 Content-Transfer-Encoding: 8bit Thanks for the comment Martin, I am reading UTM coordinates = (445700,255, 3800000) from diferent sources and I am trying to see the same = coordinates of this source. I thougth I needn't change anything. =20 When I put a StyledMapPane and the StatusBar with no data, by default appears coordinates with geographic CRS. And when I setup the CRS = folowing the gt samples, the StatusBar doesn't change. Is right to especify a = global CRS for the StyledMapPane to display coordinates as (445700,255, = 3800000) or I must to specify coordinates for every source or layer? I have set up = CS with: =20 String wkt =3D "PROJCS[\"UTM_Zone_28N\", " + "GEOGCS[\"WGS84\", " + "DATUM[\"WGS84\", " + "SPHEROID[\"WGS84\", 6378137.0, 298.257223563]], " + "PRIMEM[\"Greenwich\", 0.0], " + "UNIT[\"degree\",0.017453292519943295], " + "AXIS[\"Longitude\",EAST], " + "AXIS[\"Latitude\",NORTH]], " + "PROJECTION[\"Transverse_Mercator\"], " + "PARAMETER[\"semi_major\", 6378137.0], " + "PARAMETER[\"semi_minor\", 6356752.314245179], " + "PARAMETER[\"central_meridian\", -15.0], " + "PARAMETER[\"latitude_of_origin\", 0.0], " + "PARAMETER[\"scale_factor\", 0.9996], " + "PARAMETER[\"false_easting\", 500000.0], " + "PARAMETER[\"false_northing\", 0.0], " + "UNIT[\"metre\",1.0], " + "AXIS[\"x\",EAST], " + "AXIS[\"y\",NORTH]]"; CoordinateSystemFactory csFactory =3D = CoordinateSystemFactory.getDefault(); CoordinateSystem mapCS =3D csFactory.createFromWKT(wkt); =20 Thanks. Peter =20 Martin Desruisseaux <mar...@no...> wrote: P Fincar a =E9crit : > I am trying to change coordinates units of meassure that appears=20 > in a mappane statusbar: org.geotools.gui.swing from 455700=BA25,5 = degrees=20 > to numbers like 445700,255. Is the unit format read from the actual CS = > or must be changed separately? StatusBar format is independant of the map CoordinateReferenceSystem=20 (transformations are performed automatically as needed). However, the=20 455700=BA25,5 format suggest that there is something wrong with the CRS=20 used. I guess that 445700,255 is some projected coordinate like UTM, but = the 455700=BA25,5 string suggest that StatusBar believe that the=20 underlying CRS is geographic. If you have created a MapPane (or=20 StyledMapPane), make sure that the data used for creating the layers=20 uses the right ProjectedCRS. Otherwise, a patch for displaying angles like 445700,255 is: statusBar.getCoordinateFormat().setAnglePattern("D.ddd"); But don't do if you can avoid: I suggest to check the CRS in the layers=20 given to MapPane instead. Martin. =09 --------------------------------- Yahoo! Mail Stay connected, organized, and protected. Take the tour --0-452338884-1121171461=3D:93517 Content-Type: text/html; charset=3Diso-8859-1 Content-Transfer-Encoding: 8bit <DIV> Thanks for the comment Martin, I am reading UTM coordinates (445700,255, 3800000) from diferent sources = and I am trying to see the same coordinates of this source. I thougth I = needn't change anything.</DIV> <DIV> </DIV> <DIV> When I put a StyledMapPane and the StatusBar with no = data, by default appears coordinates with geographic CRS. And when I setup the = CRS folowing the gt samples, the StatusBar doesn't change. Is right to especify a global CRS for the StyledMapPane to display coordinates as (445700,255, 3800000) or I must to specify coordinates for every source = or layer? I have set up CS with:</DIV> <DIV> </DIV> <DIV> String wkt =3D "PROJCS[\"UTM_Zone_28N\", "<BR> + = "GEOGCS[\"WGS84\", "<BR> &n= bsp ; + "DATUM[\"WGS84\", "<BR> &n= bsp ; + "SPHEROID[\"WGS84\", 6378137.0, 298.257223563]], "<BR> &n= bsp ; + "PRIMEM[\"Greenwich\", 0.0], "<BR> &n= bsp ; + "UNIT[\"degree\",0.017453292519943295], "<BR> &n= bsp ; + "AXIS[\"Longitude\",EAST], "<BR> &n= bsp ; + "AXIS[\"Latitude\",NORTH]], "<BR> + "PROJECTION[\"Transverse_Mercator\"], "<BR> + "PARAMETER[\"semi_major\" , 6378137.0], "<BR> + "PARAMETER[\"semi_minor\", 6356752.314245179], "<BR> + "PARAMETER[\"central_meridian\", -15.0], "<BR> + "PARAMETER[\"latitude_of_origin\", 0.0], "<BR> + "PARAMETER[\"scale_factor\", 0.9996], "<BR> + "PARAMETER[\"false_easting\", 500000.0], "<BR> + "PARAMETER[\"false_northing\", 0.0], "<BR> + "UNIT[\"metre\",1.0], = "<BR> + "AXIS[\"x\",EAST], = "<BR> + "AXIS[\"y\",NORTH]]";</DIV> <DIV> CoordinateSystemFactory csFactory =3D CoordinateSystemFactory.getDefault();<BR> CoordinateSystem = mapCS =3D csFactory.createFromWKT(wkt);</DIV> <DIV><B><I></I></B> </DIV> <DIV><STRONG><EM> Thanks.</EM></STRONG></DIV> <DIV><STRONG><EM> Peter</EM></STRONG></DIV> <DIV><B><I></I></B> </DIV> <DIV><B><I>Martin Desruisseaux <mar...@no...></I></B> wrote:</DIV> <BLOCKQUOTE class=3Dreplbq style=3D"PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">P Fincar a =E9crit :<BR>> I am trying = to change coordinates units of meassure that appears <BR>> in a mappane statusbar: org.geotools.gui.swing from 455700=BA25,5 degrees <BR>> to numbers like 445700,255. Is the unit format read from the actual CS = <BR>> or must be changed separately?<BR><BR>StatusBar format is independant of = the map CoordinateReferenceSystem <BR>(transformations are performed automatically as needed). However, the <BR>455700=BA25,5 format suggest = that there is something wrong with the CRS <BR>used. I guess that 445700,255 = is some projected coordinate like UTM, but <BR>the 455700=BA25,5 string = suggest that StatusBar believe that the <BR>underlying CRS is geographic. If you have created a MapPane (or <BR>StyledMapPane), make sure that the data = used for creating the layers <BR>uses the right = ProjectedCRS.<BR><BR>Otherwise, a patch for displaying angles like 445700,255 is:<BR><BR>statusBar.getCoordinateFormat().setAnglePattern("D.ddd");<BR><= BR> But don't do if you can avoid: I suggest to check the CRS in the layers <BR>given to MapPane instead.<BR><BR>Martin.<BR></BLOCKQUOTE><p> <hr size=3D1>Yahoo! Mail<br>=20 Stay connected, organized, and protected. <a href=3D"http://tour.mail.yahoo.com/mailtour.html">Take the tour</a> --0-452338884-1121171461=3D:93517-- --__--__-- Message: 2 Date: Tue, 12 Jul 2005 20:01:43 +0100 To: geo...@li... From: Javier <jg...@gm...> Subject: [Geotools-gt2-users] StyledMapPane ERROR when repainting a = single point feature layer --=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D_2070562= 21=3D=3D.ALT Content-Type: text/plain; charset=3D"us-ascii"; format=3Dflowed Hi, I'm experiencing the same rare behaviour with some painted = features=20 in a StyledMapPane that Andrew Mason explain once month ago in a post to = the list ("Feature not repainted after zoom"). I have talk with him but, = as=20 we are not very experienced in Geotools, we don't know if is a GT bug or = a=20 novice bug. The repaint problem appears when there is only 1 feature point in a=20 layer and the Layer Bounds is a null size envelope like: Layer Bounds -> Env[-15.4497590829561 : -15.4497590829561,=20 27.8373057119429 : 27.8373057119429] The feature is not repainted when other window passes over the = features,=20 when zooming in or panning, but when zooming out the feature appears. I'm using GT 2.1RC0 and StyledMapPane. Here I put an example where = the=20 problem can be seen; if anyone could try it and tell us if we are=20 wrong... uncommenting the line "fc.add(V2);" to add a new feature, the = problem disappear. Thanks very much... Javier import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.geom.Rectangle2D; import java.net.URL; import javax.swing.JFrame; import javax.swing.WindowConstants; import org.geotools.feature.AttributeType; import org.geotools.feature.AttributeTypeFactory; import org.geotools.feature.Feature; import org.geotools.feature.FeatureCollection; import org.geotools.feature.FeatureCollections; import org.geotools.feature.FeatureType; import org.geotools.feature.FeatureTypeBuilder; import org.geotools.gui.swing.StatusBar; import org.geotools.gui.swing.StyledMapPane; import org.geotools.map.DefaultMapContext; import org.geotools.map.MapContext; import org.geotools.renderer.j2d.RenderedMapScale; import org.geotools.styling.Graphic; import org.geotools.styling.Mark; import org.geotools.styling.PointSymbolizer; import org.geotools.styling.Style; import org.geotools.styling.StyleBuilder; import com.vividsolutions.jts.geom.Point; import com.vividsolutions.jts.io.WKTReader; public class SpearfishSampleERROR2 { private static URL getResource(String path) { return SpearfishSampleERROR2.class.getClassLoader().getResource(path); } public static void main(String[] args) throws Exception { AttributeType geom =3D=20 AttributeTypeFactory.newAttributeType("the_geom", Point.class); AttributeType carid =3D=20 AttributeTypeFactory.newAttributeType("CARID", String.class); AttributeType state =3D=20 AttributeTypeFactory.newAttributeType("STATE", String.class); FeatureType ftRoad =3D = FeatureTypeBuilder.newFeatureType(new=20 AttributeType[] {geom, carid, state}, "veh1"); WKTReader wktReader =3D new WKTReader(); Point geometry1 =3D (Point) wktReader.read("POINT=20 (-15.4497590829561 27.8373057119429)"); Point geometry2 =3D (Point) wktReader.read("POINT (-15.0 = 27.0)"); Feature V1 =3D ftRoad.create(new Object[] {geometry1, = "Veh1_ID",=20 "1"}); Feature V2 =3D ftRoad.create(new Object[] {geometry2, = "Veh2_ID",=20 "2"}); System.out.println(V1); System.out.println(V2); FeatureCollection fc =3D = FeatureCollections.newCollection(); fc.add(V1); //fc.add(V2); //Adding this Feature all works fine StyleBuilder sb =3D new StyleBuilder(); Mark redCircle =3D sb.createMark(StyleBuilder.MARK_CIRCLE,=20 Color.BLUE, Color.BLACK, 0); Graphic grBugs =3D sb.createGraphic(null, redCircle, = null,1,10,0); PointSymbolizer psBugs =3D sb.createPointSymbolizer(grBugs); Style bugsStyle =3D sb.createStyle(psBugs); MapContext map =3D new DefaultMapContext(); map.addLayer(fc, bugsStyle); StyledMapPane mapPane =3D new StyledMapPane(); mapPane.setMapContext(map); System.out.println("Layer Bounds -> " +=20 map.getLayerBounds().toString()); mapPane.getRenderer().addLayer(new RenderedMapScale()); JFrame frame =3D new JFrame(); frame.setTitle("Spearfish Test map"); final Container container =3D frame.getContentPane(); container.setLayout(new BorderLayout()); container.add(mapPane.createScrollPane(), BorderLayout.CENTER); container.add(new StatusBar(mapPane), BorderLayout.SOUTH); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); frame.setSize(640, 480); frame.show(); Rectangle2D areavis =3D new Rectangle2D.Double(-17 , 25 , 5 , = 5); mapPane.setVisibleArea(areavis); mapPane.repaint(); } } --=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D_2070562= 21=3D=3D.ALT Content-Type: text/html; charset=3D"us-ascii" <html> <body> <br> Hi, I'm experiencing the same rare behaviour with some painted features in a StyledMapPane that Andrew Mason explain once month ago in a post to the list ("Feature not repainted after = zoom"). I have talk with him but, as we are not very experienced in Geotools, we don't know if is a GT bug or a novice bug.<br><br> The repaint problem appears when there is only 1 feature point in a layer and the Layer Bounds is a null size envelope like:<br> <font face=3D"Courier New, Courier" size=3D1> Layer = Bounds -> Env[-15.4497590829561 : -15.4497590829561, 27.8373057119429 : 27.8373057119429]<br><br> </font> The feature is not repainted when other window passes over the features, when zooming in or panning, but when zooming out the feature appears.<br><br> I'm using GT 2.1RC0 and StyledMapPane. Here I put an = example where the problem can be seen; if anyone could try it and tell us if we are wrong... uncommenting the line "fc.add(V2);" = to add a new feature, the problem disappear.<br><br> Thanks very much... <br> Javier<br><br> <br><br> import java.awt.BorderLayout;<br> import java.awt.Color;<br> import java.awt.Container;<br> import java.awt.geom.Rectangle2D;<br> import java.net.URL;<br> import javax.swing.JFrame;<br> import javax.swing.WindowConstants;<br> import org.geotools.feature.AttributeType;<br> import org.geotools.feature.AttributeTypeFactory;<br> import org.geotools.feature.Feature;<br> import org.geotools.feature.FeatureCollection;<br> import org.geotools.feature.FeatureCollections;<br> import org.geotools.feature.FeatureType;<br> import org.geotools.feature.FeatureTypeBuilder;<br> import org.geotools.gui.swing.StatusBar;<br> import org.geotools.gui.swing.StyledMapPane;<br> import org.geotools.map.DefaultMapContext;<br> import org.geotools.map.MapContext;<br> import org.geotools.renderer.j2d.RenderedMapScale;<br> import org.geotools.styling.Graphic;<br> import org.geotools.styling.Mark;<br> import org.geotools.styling.PointSymbolizer;<br> import org.geotools.styling.Style;<br> import org.geotools.styling.StyleBuilder;<br> import com.vividsolutions.jts.geom.Point;<br> import com.vividsolutions.jts.io.WKTReader;<br> public class SpearfishSampleERROR2 {<br> private static URL getResource(String path) {<br> return SpearfishSampleERROR2.class.getClassLoader().getResource(path);<br> }<br> public static void main(String[] args) throws Exception {<br> <x-tab> </x-tab> AttributeType geom =3D AttributeTypeFactory.newAttributeType("the_geom", Point.class);<br> <x-tab> </x-tab> AttributeType carid =3D AttributeTypeFactory.newAttributeType("CARID", String.class);<br> <x-tab> </x-tab> AttributeType state =3D AttributeTypeFactory.newAttributeType("STATE", String.class);<br> <x-tab> </x-tab> FeatureType ftRoad =3D FeatureTypeBuilder.newFeatureType(new AttributeType[] {geom, carid, state}, "veh1");<br> <x-tab> </x-tab> WKTReader wktReader =3D new WKTReader();<br> <x-tab> </x-tab> Point geometry1 =3D (Point) = wktReader.read("POINT (-15.4497590829561 27.8373057119429)");<br> <x-tab> </x-tab> Point geometry2 =3D (Point) = wktReader.read("POINT (-15.0 27.0)");<br> <x-tab> </x-tab> Feature V1 =3D ftRoad.create(new Object[] {geometry1, "Veh1_ID", "1"});<br> <x-tab> </x-tab> Feature V2 =3D ftRoad.create(new Object[] {geometry2, "Veh2_ID", "2"});<br> <x-tab> </x-tab> System.out.println(V1);<br> <x-tab> </x-tab> System.out.println(V2);<br> <x-tab> </x-tab> FeatureCollection fc =3D FeatureCollections.newCollection();<br> <x-tab> </x-tab><x-tab> </x-tab>fc.add(V1);<br> <x-tab> </x-tab><x-tab> </x-tab>//fc.add(V2); //Adding this Feature all works fine<br> <x-tab> </x-tab><x-tab> </x-tab><br> StyleBuilder sb =3D new StyleBuilder();<br> Mark redCircle =3D sb.createMark(StyleBuilder.MARK_CIRCLE, Color.BLUE, Color.BLACK, 0);<br> Graphic grBugs =3D sb.createGraphic(null, redCircle, null,1,10,0);<br> PointSymbolizer psBugs =3D sb.createPointSymbolizer(grBugs);<br> Style bugsStyle =3D sb.createStyle(psBugs);<br> <br> MapContext map =3D new DefaultMapContext();<br> map.addLayer(fc, bugsStyle);<br> <br> StyledMapPane mapPane =3D new StyledMapPane();<br> mapPane.setMapContext(map);<br> <br> <x-tab> </x-tab> System.out.println("Layer Bounds -> " + map.getLayerBounds().toString());<br> mapPane.getRenderer().addLayer(new RenderedMapScale());<br> <br> JFrame frame =3D new JFrame();<br> = frame.setTitle("Spearfish Test map");<br> final Container container =3D frame.getContentPane();<br> container.setLayout(new BorderLayout());<br> container.add(mapPane.createScrollPane(), BorderLayout.CENTER);<br> container.add(new StatusBar(mapPane), BorderLayout.SOUTH);<br> <br> frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);<br> frame.setSize(640, 480);<br> frame.show();<br> <br> Rectangle2D areavis =3D new Rectangle2D.Double(-17 , 25 , 5 , 5);<br> mapPane.setVisibleArea(areavis);<br> mapPane.repaint();<br> }<br> }<br> </body> </html> --=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D_2070562= 21=3D=3D.ALT-- --__--__-- _______________________________________________ Geotools-gt2-users mailing list Geo...@li... https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users End of Geotools-gt2-users Digest |