From: <in...@gm...> - 2007-05-11 05:43:06
|
SGksCgogICBJIGFkZCBvbmUgc3RhdGVtZW50IHRvIHRoZSBzYW1wbGUgTGl0ZVJlbmRlcmVySkZy YW1lIHRvIHRlc3QgdGhlIFNpbXBsZQpNZXJjYXRvciBQcm9qZWN0aW9uLgoKICAgICAgdGhpcy5z ZXRDb29yZGluYXRlUmVmZXJlbmNlU3lzdGVtKENSUy5kZWNvZGUoIkVQU0c6NDEwMDEiKSk7Cgog ICBXaGVuIHRoZSBwcm9ncmFtIHN0YXJ0LCBpdCByZXBvcnQgOgoKMjAwNy01LTExIDEzOjM3OjU5 Cm9yZy5nZW90b29scy5yZW5kZXJlci5saXRlLkxpdGVSZW5kZXJlciREZWZhdWx0UmVuZGVyTGlz dGVuZXIgZXJyb3JPY2N1cnJlZArRz9bYOiBMYXRpdHVkZSA5MKHjMDAuMCdTIGlzIHRvbyBjbG9z ZSB0byBhIHBvbGUuCm9yZy5nZW90b29scy5yZWZlcmVuY2luZy5vcGVyYXRpb24ucHJvamVjdGlv bi5Qcm9qZWN0aW9uRXhjZXB0aW9uOiBMYXRpdHVkZQo5MKHjMDAuMCdTIGlzIHRvbyBjbG9zZSB0 byBhIHBvbGUuCiBhdApvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcub3BlcmF0aW9uLnByb2plY3Rp b24uTWVyY2F0b3IudHJhbnNmb3JtTm9ybWFsaXplZCgKTWVyY2F0b3IuamF2YToxMzUpCiBhdCBv cmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcub3BlcmF0aW9uLnByb2plY3Rpb24uTWFwUHJvamVjdGlv bi50cmFuc2Zvcm0oCk1hcFByb2plY3Rpb24uamF2YTo2MzYpCiBhdCBvcmcuZ2VvdG9vbHMucmVm ZXJlbmNpbmcub3BlcmF0aW9uLnByb2plY3Rpb24uTWFwUHJvamVjdGlvbi50cmFuc2Zvcm0oCk1h cFByb2plY3Rpb24uamF2YTo2NzcpCiBhdApvcmcuZ2VvdG9vbHMucmVmZXJlbmNpbmcub3BlcmF0 aW9uLnRyYW5zZm9ybS5Db25jYXRlbmF0ZWRUcmFuc2Zvcm1EaXJlY3QudHJhbnNmb3JtCihDb25j YXRlbmF0ZWRUcmFuc2Zvcm1EaXJlY3QuamF2YTo3OSkKIGF0IG9yZy5nZW90b29scy5yZW5kZXJl ci5saXRlLkRlY2ltYXRvci5kZWNpbWF0ZVRyYW5zZm9ybUdlbmVyYWxpemUoCkRlY2ltYXRvci5q YXZhOjI1MikKIGF0IG9yZy5nZW90b29scy5yZW5kZXJlci5saXRlLkRlY2ltYXRvci5kZWNpbWF0 ZVRyYW5zZm9ybUdlbmVyYWxpemUoCkRlY2ltYXRvci5qYXZhOjEyNykKIGF0IG9yZy5nZW90b29s cy5yZW5kZXJlci5saXRlLkRlY2ltYXRvci5kZWNpbWF0ZVRyYW5zZm9ybUdlbmVyYWxpemUoCkRl Y2ltYXRvci5qYXZhOjExOCkKIGF0IG9yZy5nZW90b29scy5yZW5kZXJlci5saXRlLkRlY2ltYXRv ci5kZWNpbWF0ZVRyYW5zZm9ybUdlbmVyYWxpemUoCkRlY2ltYXRvci5qYXZhOjEwOSkKIGF0IG9y Zy5nZW90b29scy5yZW5kZXJlci5saXRlLkxpdGVTaGFwZTIuPGluaXQ+KExpdGVTaGFwZTIuamF2 YToxMzUpCiBhdCBvcmcuZ2VvdG9vbHMucmVuZGVyZXIubGl0ZS5MaXRlUmVuZGVyZXIuZ2V0VHJh bnNmb3JtZWRTaGFwZSgKTGl0ZVJlbmRlcmVyLmphdmE6MTM0NykKIGF0IG9yZy5nZW90b29scy5y ZW5kZXJlci5saXRlLkxpdGVSZW5kZXJlci5wcm9jZXNzU3ltYm9saXplcnMoCkxpdGVSZW5kZXJl ci5qYXZhOjEzMTkpCiBhdCBvcmcuZ2VvdG9vbHMucmVuZGVyZXIubGl0ZS5MaXRlUmVuZGVyZXIu cHJvY2Vzc1N0eWxlcnMoTGl0ZVJlbmRlcmVyLmphdmEKOjEyMDIpCi4uLgoKICBJIHRoaW5rIHRo ZSByZWFzb24gaXMgdGhlIG1hcCBib3VuZCBpcyBvdmVyIHRoZSBzcGFuIG9mIC04NSBhbmQgODUs IHRoZW4gSQpjaG9vc2UgYSBzbWFsbCBjaXR5IG1hcCwgaXQgd29ya2VkIE9LLgoKICBCdXQgaG93 IGNhbiBJIHJlbmRlciB3aG9sZSB3b3JsZCB3aXRoIE1lcmNhdG9yIFByb2plY3Rpb24/CgpSZWdh cmRzLgo= |
From: Martin D. <mar...@ge...> - 2007-05-11 13:21:20
|
新买 a écrit : > But how can I render whole world with Mercator Projection? Mathematically, it is not possible since the formulas give infinite numbers at pole. You have to cut the map a little bit before the poles when using Mercator projection. Martin |
From: <in...@gm...> - 2007-05-14 06:25:05
|
SGksCiAgICAgVGhhbmsgeW91IGZvciBoZWxwLiBNYXliZSB0aGlzIGlzIG5vdCB0aGUgYmVzdCB3 YXksIGJ1dApyZWFseSBhdmFsaWFibGUuCgogICAgIFRoZSBtYXAgY2FuIGJlIHJlbmRlcmVkIGlu IG1hcFh0cmVtZSwgIGhvcGUgZ2VvdG9vbHMgY2FuIGRvIGl0IGFsc28uCgpSZWdhcmRzLgoKCgoy MDA3LzUvMTEsIE1hcnRpbiBEZXNydWlzc2VhdXggPG1hcnRpbi5kZXNydWlzc2VhdXhAZ2VvbWF0 eXMuZnI+Ogo+Cj4g0MLC8iBhIKimY3JpdCA6Cj4gPiAgIEJ1dCBob3cgY2FuIEkgcmVuZGVyIHdo b2xlIHdvcmxkIHdpdGggTWVyY2F0b3IgUHJvamVjdGlvbj8KPgo+IE1hdGhlbWF0aWNhbGx5LCBp dCBpcyBub3QgcG9zc2libGUgc2luY2UgdGhlIGZvcm11bGFzIGdpdmUgaW5maW5pdGUKPiBudW1i ZXJzIGF0Cj4gcG9sZS4gWW91IGhhdmUgdG8gY3V0IHRoZSBtYXAgYSBsaXR0bGUgYml0IGJlZm9y ZSB0aGUgcG9sZXMgd2hlbiB1c2luZwo+IE1lcmNhdG9yCj4gcHJvamVjdGlvbi4KPgo+ICAgICAg ICBNYXJ0aW4KPgo+Cg== |
From: Martin D. <mar...@ge...> - 2007-05-14 07:50:45
|
新买 a écrit : >The map can be rendered in mapXtreme, hope geotools can do it also. Maybe it is not the Mercator Cylindrical projection, but some other ones? If it is Mercator Cylindrical projection, they do not display the map up to 90° They have to stop before; this is mathematical and mapXtreme can not change that. But because continents in the North hemisphere do not extent up to 90°, the fact that the map was stopped before 90° may not be visible. Martin |
From: <in...@gm...> - 2007-05-14 15:10:07
|
SGkKICAgIE1hcnRpbgoKICAgIFllcywgd2l0aCBNZXJjYXRvciBQcm9qZWN0aW9uLCBvbmx5IHRo ZSBwYXJ0IHdoZXJlIGxhdGl0dWRlIGJldHdlZW4gLTg1CnRvIDg1IGNhbiBiZSByZW5kZXJlZC4g SSB0cmFjZSB0aGUgY29kZSBvZiBNZXJjYXRvciBQcm9qZWN0aW9uLCB0aGVyZSBpcwpzb21lIGNv ZGUgYXMgInRocm93IEV4Y2VwdGlvbi4uLiIuCiAgICBJIHRyeSB0byBjb21tZW50cyB0aGVzZSB3 b3JkLCB0aGVuIGl0IGRvbnQgd29yay4KICAgIE1heSB5b3Ugc29sdmUgdGhpcyBwcm9ibGVtP1wK ClJlZ2FyZHMKCjIwMDcvNS8xNCwgTWFydGluIERlc3J1aXNzZWF1eCA8bWFydGluLmRlc3J1aXNz ZWF1eEBnZW9tYXR5cy5mcj46Cj4KPiDQwsLyIGEgqKZjcml0IDoKPiA+VGhlIG1hcCBjYW4gYmUg cmVuZGVyZWQgaW4gbWFwWHRyZW1lLCAgaG9wZSBnZW90b29scyBjYW4gZG8gaXQgYWxzby4KPgo+ IE1heWJlIGl0IGlzIG5vdCB0aGUgTWVyY2F0b3IgQ3lsaW5kcmljYWwgcHJvamVjdGlvbiwgYnV0 IHNvbWUgb3RoZXIgb25lcz8KPgo+IElmIGl0IGlzIE1lcmNhdG9yIEN5bGluZHJpY2FsIHByb2pl Y3Rpb24sIHRoZXkgZG8gbm90IGRpc3BsYXkgdGhlIG1hcCB1cAo+IHRvIDkwoeMKPiBUaGV5IGhh dmUgdG8gc3RvcCBiZWZvcmU7IHRoaXMgaXMgbWF0aGVtYXRpY2FsIGFuZCBtYXBYdHJlbWUgY2Fu IG5vdAo+IGNoYW5nZQo+IHRoYXQuIEJ1dCBiZWNhdXNlIGNvbnRpbmVudHMgaW4gdGhlIE5vcnRo IGhlbWlzcGhlcmUgZG8gbm90IGV4dGVudCB1cCB0bwo+IDkwoeMsCj4gdGhlIGZhY3QgdGhhdCB0 aGUgbWFwIHdhcyBzdG9wcGVkIGJlZm9yZSA5MKHjIG1heSBub3QgYmUgdmlzaWJsZS4KPgo+ICAg ICAgICBNYXJ0aW4KPgo= |
From: Martin D. <mar...@ge...> - 2007-05-14 15:55:57
|
新买 a écrit : > Yes, with Mercator Projection, only the part where latitude between > -85 to 85 can be rendered. I trace the code of Mercator Projection, > there is some code as "throw Exception...". > I try to comments these word, then it dont work. > May you solve this problem?\ As explained in my previous email, you can NOT display a map up to 90°N or 90°S using Mercator projection, no matter which software (mapXtreme or whatever) you use. This is mathematically *impossible*. The formula for the spherical case is: log(tan(PI/4 + 0.5*latitude)) With latitude = PI/2, we get log(tan(PI/4 + PI/4)) = log(tan(PI/2)) = log(sin(PI/2) / cos(PI/2)) = log(1 / 0) = log(infinity) = infinity See also Wikipedia: http://en.wikipedia.org/wiki/Mercator_projection "A Mercator map can never fully show the polar areas, since linear scale becomes infinitely high at the poles. (...snip...) At latitudes higher than 70° north or south, the Mercator projection is practically unusable." The "throw Exception" is there as a guard and even the 85° limit (before throwing an exception) is a lot. If you see a world map with latitude up to 90°N or 90°S, then this is not a Mercator projection. It may be a Plate Carre or something else, but *not* a Cylindrical Mercator. Martin |
From: Adrian C. <ac...@gm...> - 2007-05-14 16:12:23
|
Martin, I don't think this user was worried about "what happens near the poles". He said "whole world" meaning most of it. I know geotools has problems just displaying data, e.g. antarctica, in mercator since we don't smartly cut and sew the polygons in the viewing area. So are you perhaps misreading what this user is trying to say to us? cheers, adrian On Mon, 2007-05-14 at 18:09 -0400, Martin Desruisseaux wrote: > 新买 a écrit : > > Yes, with Mercator Projection, only the part where latitude between > > -85 to 85 can be rendered. I trace the code of Mercator Projection, > > there is some code as "throw Exception...". > > I try to comments these word, then it dont work. > > May you solve this problem?\ > > As explained in my previous email, you can NOT display a map up to 90°N or 90°S > using Mercator projection, no matter which software (mapXtreme or whatever) you > use. This is mathematically *impossible*. The formula for the spherical case is: > > log(tan(PI/4 + 0.5*latitude)) > > With latitude = PI/2, we get > > log(tan(PI/4 + PI/4)) = > log(tan(PI/2)) = > log(sin(PI/2) / cos(PI/2)) = > log(1 / 0) = > log(infinity) = > infinity > > See also Wikipedia: http://en.wikipedia.org/wiki/Mercator_projection > > "A Mercator map can never fully show the polar areas, since linear scale > becomes infinitely high at the poles. (...snip...) At latitudes higher > than 70° north or south, the Mercator projection is practically unusable." > > The "throw Exception" is there as a guard and even the 85° limit (before > throwing an exception) is a lot. > > If you see a world map with latitude up to 90°N or 90°S, then this is not a > Mercator projection. It may be a Plate Carre or something else, but *not* a > Cylindrical Mercator. > > Martin > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Geotools-gt2-users mailing list > Geo...@li... > https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users |
From: Martin D. <mar...@ge...> - 2007-05-14 17:43:19
|
Adrian Custer a écrit : > I don't think this user was worried about "what happens near the poles". > He said "whole world" meaning most of it. I know geotools has problems > just displaying data, e.g. antarctica, in mercator since we don't > smartly cut and sew the polygons in the viewing area. So are you perhaps > misreading what this user is trying to say to us? I realize that my last reply sound rude, my appologize for that. What I means is that trouble to display Antartica data (for example) in Mercator projection is not a Geotools problem. This is a mathematical issue. If "displaying whole world" means displaying data at higher latitude than 85° (or even 70° according wikipedia), user should tries an other projection. Cylindrical Mercator (non-transverse and non-oblique) is not suitable for that. Again this is mathematical, not a Geotools problem. Martin |
From: Martin D. <mar...@ge...> - 2007-05-14 17:47:20
|
Martin Desruisseaux a écrit : > If "displaying whole world" means displaying data at higher latitude than 85° > (or even 70° according wikipedia), user should tries an other projection. > Cylindrical Mercator (non-transverse and non-oblique) is not suitable for that. > Again this is mathematical, not a Geotools problem. I means, not smartly cut and sew the polygons in the viewing area may be an additional problem. But if we try to use the Mercator projection in polar area we don't even reach that point. An other projection must be choosen. After that maybe additional geometry problems may popup. Martin |
From: Martin D. <mar...@ge...> - 2007-05-15 15:57:16
|
新买 a écrit : > As Adrian refered, I know Mercator cann't act when the point close > to 90 N or 90 S. My appologizes for looking rude in my third email then... > Or can you tell me how to refer a clip region to render map, such as > > MapPainter mapPainter = new MapPainter(shpMap); > mapPainter.render(85, -180, 80, -85, "test.png"); On the rendering side, I can't said. As far as the "referencing" module is concerned, if you used an ellipsoidal datum, it may be worth to try a spherical case instead since the spherical formulas are simplier. I don't know how you CRS were created (EPSG code? WKT?), but if it was from WKT, try an "inverse flattening" value (in the ELLIPSOID[...] element) of 0. Martin |
From: <in...@gm...> - 2007-05-16 02:42:30
|
SGkgTWFydGluLAoKICAgIE5vIG1hdHRlciBhYm91dCBzcGVla2luZywgSSdtIHBvb3IgaW4gRW5n bGlzaCwgZXZlbiBub3QgYWJsZSB0byBmZWVsCnRoYXQuCgogICAgSSBqdXN0IGluc2VydCBvbmUg c2VudGVuY2UgaW4gdGhlIGRlbW8gamF2YSBmaWxlCkxpdGVSZW5kZXJlckpGcmFtZS5qYXZhLCBh cm91bmQKbGluZSAxOTYgOgoKICAgIHRoaXMuc2V0Q29vcmRpbmF0ZVJlZmVyZW5jZVN5c3RlbShD UlMuZGVjb2RlKCJFUFNHOjQxMDAxIikpOwoKICAgIFRoZSB0ZXN0IGZpbGUgaXMgY291bnRpcmVz LnNocCwgd2hpY2ggY29tZSBmcm9tIHNhbXBsZSBkYXRhIG9mIGdlb3Rvb2xzLgoKICAgIEkgZm91 bmQgdGhlIHJlZ2lvbiBvZiB0aGUgbWFwIGlzIEVudlstMTgwLjAwMDE4MzIzOTk5OTk4IDogMTgw LjAsIC05MC4wOgo4My42MjMwMzE2NF0uIHRoZSBlcnJvciBpcyB1bmRlcnN0YW5kYWJsZSwgaXQn cyBzZWVtZWQgaW1wb3NzaWJsZSB0byBzbWFydGx5CnNldyB0aGUgbWFwIGFzIEFkcmlhbiBleHBs YWluZWQgaW1lZGlhdGVseSwgbm93IEkgd2lsbCB0cnkgdG8gY3V0IHRoZQptYXAgZm9sbG93ZWQg eW91ciBzdWdnZXN0LgoKUmVnYXJkcwoKMjAwNy81LzE2LCBNYXJ0aW4gRGVzcnVpc3NlYXV4IDxt YXJ0aW4uZGVzcnVpc3NlYXV4QGdlb21hdHlzLmZyPjoKPgo+INDCwvIgYSCopmNyaXQgOgo+ID4g QXMgQWRyaWFuIHJlZmVyZWQsIEkga25vdyBNZXJjYXRvciBjYW5uJ3QgYWN0IHdoZW4gdGhlIHBv aW50IGNsb3NlCj4gPiB0byA5MCBOIG9yIDkwIFMuCj4KPiBNeSBhcHBvbG9naXplcyBmb3IgbG9v a2luZyBydWRlIGluIG15IHRoaXJkIGVtYWlsIHRoZW4uLi4KPgo+Cj4gPiAgICBPciBjYW4geW91 IHRlbGwgbWUgaG93IHRvIHJlZmVyIGEgY2xpcCByZWdpb24gdG8gcmVuZGVyIG1hcCwgc3VjaCBh cwo+ID4KPiA+ICAgIE1hcFBhaW50ZXIgbWFwUGFpbnRlciA9IG5ldyBNYXBQYWludGVyKHNocE1h cCk7Cj4gPiAgICBtYXBQYWludGVyLnJlbmRlcig4NSwgLTE4MCwgODAsIC04NSwgInRlc3QucG5n Iik7Cj4KPiBPbiB0aGUgcmVuZGVyaW5nIHNpZGUsIEkgY2FuJ3Qgc2FpZC4KPgo+IEFzIGZhciBh cyB0aGUgInJlZmVyZW5jaW5nIiBtb2R1bGUgaXMgY29uY2VybmVkLCBpZiB5b3UgdXNlZCBhbgo+ IGVsbGlwc29pZGFsCj4gZGF0dW0sIGl0IG1heSBiZSB3b3J0aCB0byB0cnkgYSBzcGhlcmljYWwg Y2FzZSBpbnN0ZWFkIHNpbmNlIHRoZSBzcGhlcmljYWwKPiBmb3JtdWxhcyBhcmUgc2ltcGxpZXIu IEkgZG9uJ3Qga25vdyBob3cgeW91IENSUyB3ZXJlIGNyZWF0ZWQgKEVQU0cgY29kZT8KPiBXS1Q/ KSwKPiBidXQgaWYgaXQgd2FzIGZyb20gV0tULCB0cnkgYW4gImludmVyc2UgZmxhdHRlbmluZyIg dmFsdWUgKGluIHRoZQo+IEVMTElQU09JRFsuLi5dCj4gZWxlbWVudCkgb2YgMC4KPgo+ICAgICAg ICBNYXJ0aW4KPgo= |