- Timestamp:
- 2015-07-04T22:52:23+02:00 (9 years ago)
- Location:
- trunk
- Files:
-
- 8 added
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/projection/epsg
r8255 r8568 1 1 # NAD27(76) / MTM zone 8 2 <2017> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-75.5,40,-74,60 <>2 <2017> +proj=tmerc +lat_0=0 +lon_0=-73.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-75.5,40,-74,60 <> 3 3 # NAD27(76) / MTM zone 9 4 <2018> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-78.5,40,-74.5,60 <>4 <2018> +proj=tmerc +lat_0=0 +lon_0=-76.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-78.5,40,-74.5,60 <> 5 5 # NAD27(76) / MTM zone 10 6 <2019> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-81.5,40,-77.5,60 <>6 <2019> +proj=tmerc +lat_0=0 +lon_0=-79.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-81.5,40,-77.5,60 <> 7 7 # NAD27(76) / MTM zone 11 8 <2020> +proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-84,40,-80.5,60 <>8 <2020> +proj=tmerc +lat_0=0 +lon_0=-82.5 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-84,40,-80.5,60 <> 9 9 # NAD27(76) / MTM zone 12 10 <2021> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-83,40,-79,60 <>10 <2021> +proj=tmerc +lat_0=0 +lon_0=-81 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-83,40,-79,60 <> 11 11 # NAD27(76) / MTM zone 13 12 <2022> +proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-86,40,-82,60 <>12 <2022> +proj=tmerc +lat_0=0 +lon_0=-84 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-86,40,-82,60 <> 13 13 # NAD27(76) / MTM zone 14 14 <2023> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-89,40,-85,60 <>14 <2023> +proj=tmerc +lat_0=0 +lon_0=-87 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-89,40,-85,60 <> 15 15 # NAD27(76) / MTM zone 15 16 <2024> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-92,40,-88,60 <>16 <2024> +proj=tmerc +lat_0=0 +lon_0=-90 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-92,40,-88,60 <> 17 17 # NAD27(76) / MTM zone 16 18 <2025> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-95,40,-91,60 <>18 <2025> +proj=tmerc +lat_0=0 +lon_0=-93 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-95,40,-91,60 <> 19 19 # NAD27(76) / MTM zone 17 20 <2026> +proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 + bounds=-96,40,-94,60 <>20 <2026> +proj=tmerc +lat_0=0 +lon_0=-96 +k=0.9999 +x_0=304800 +y_0=0 +ellps=clrk66 +units=m +bounds=-96,40,-94,60 <> 21 21 # Lambert 93 (France) 22 <2154> +proj=lcc +lat_0=46.5 +lat_1=44 +lat_2=49 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,41,10.2,51 <>22 <2154> +proj=lcc +lat_0=46.5 +lat_1=44 +lat_2=49 +lon_0=3 +x_0=700000 +y_0=6600000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,41,10.2,51 <> 23 23 # PUWG 2000 Zone 5 (Poland) 24 <2176> +proj=tmerc +lon_0=15 +k_0=0.999923 +x_0=5500000 +ellps=GRS80 +nadgrids=null + bounds=13.5,49,16.5,54.84 <>24 <2176> +proj=tmerc +lon_0=15 +k_0=0.999923 +x_0=5500000 +ellps=GRS80 +nadgrids=null +units=m +bounds=13.5,49,16.5,54.84 <> 25 25 # PUWG 2000 Zone 6 (Poland) 26 <2177> +proj=tmerc +lon_0=18 +k_0=0.999923 +x_0=6500000 +ellps=GRS80 +nadgrids=null + bounds=16.5,49,19.5,54.84 <>26 <2177> +proj=tmerc +lon_0=18 +k_0=0.999923 +x_0=6500000 +ellps=GRS80 +nadgrids=null +units=m +bounds=16.5,49,19.5,54.84 <> 27 27 # PUWG 2000 Zone 7 (Poland) 28 <2178> +proj=tmerc +lon_0=21 +k_0=0.999923 +x_0=7500000 +ellps=GRS80 +nadgrids=null + bounds=19.5,49,22.5,54.84 <>28 <2178> +proj=tmerc +lon_0=21 +k_0=0.999923 +x_0=7500000 +ellps=GRS80 +nadgrids=null +units=m +bounds=19.5,49,22.5,54.84 <> 29 29 # PUWG 2000 Zone 8 (Poland) 30 <2179> +proj=tmerc +lon_0=24 +k_0=0.999923 +x_0=8500000 +ellps=GRS80 +nadgrids=null + bounds=22.5,49,25.5,54.84 <>30 <2179> +proj=tmerc +lon_0=24 +k_0=0.999923 +x_0=8500000 +ellps=GRS80 +nadgrids=null +units=m +bounds=22.5,49,25.5,54.84 <> 31 31 # PUWG 1992 (Poland) 32 <2180> +proj=tmerc +lon_0=19 +k_0=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +nadgrids=null + bounds=14.12,49,24.15,54.84 <>32 <2180> +proj=tmerc +lon_0=19 +k_0=0.9993 +x_0=500000 +y_0=-5300000 +ellps=GRS80 +nadgrids=null +units=m +bounds=14.12,49,24.15,54.84 <> 33 33 # UTM France (DOM) Fort Marigot 34 <2969> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=intl +towgs84=136.596,248.148,-429.789 + bounds=-63.25,17.6,-62.5,18.5 <>34 <2969> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=intl +towgs84=136.596,248.148,-429.789 +units=m +bounds=-63.25,17.6,-62.5,18.5 <> 35 35 # UTM France (DOM) Sainte Anne 36 <2970> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=intl +towgs84=-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984 + bounds=-61.9,15.8,-60.9,16.6 <>36 <2970> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=intl +towgs84=-472.29,-5.63,-304.12,0.4362,-0.8374,0.2563,1.8984 +units=m +bounds=-61.9,15.8,-60.9,16.6 <> 37 37 # UTM France (DOM) Guyane 38 <2972> +proj=tmerc +lon_0=-51 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +nadgrids=null + bounds=-54,2.16,-49.62,9.06 <>38 <2972> +proj=tmerc +lon_0=-51 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-54,2.16,-49.62,9.06 <> 39 39 # UTM France (DOM) Martinique 40 <2973> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=intl +towgs84=126.926,547.939,130.409,-2.7867,5.16124,-0.85844,13.82265 + bounds=-61.25,14.25,-60.725,15.025 <>40 <2973> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=intl +towgs84=126.926,547.939,130.409,-2.7867,5.16124,-0.85844,13.82265 +units=m +bounds=-61.25,14.25,-60.725,15.025 <> 41 41 # UTM France (DOM) Reunion 42 <2975> +proj=tmerc +lon_0=57 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=GRS80 +nadgrids=null + bounds=37.58,-25.92,58.27,-10.6 <>42 <2975> +proj=tmerc +lon_0=57 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=GRS80 +nadgrids=null +units=m +bounds=37.58,-25.92,58.27,-10.6 <> 43 43 # Monte Mario / Italy zone 1 44 <3003> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl + bounds=5,36,13,48 <>44 <3003> +proj=tmerc +lat_0=0 +lon_0=9 +k=0.9996 +x_0=1500000 +y_0=0 +ellps=intl +units=m +bounds=5,36,13,48 <> 45 45 # Monte Mario / Italy zone 2 46 <3004> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl + bounds=11,34,24,48 <>46 <3004> +proj=tmerc +lat_0=0 +lon_0=15 +k=0.9996 +x_0=2520000 +y_0=0 +ellps=intl +units=m +bounds=11,34,24,48 <> 47 47 # SWEREF99 13 30 / EPSG:3008 (Sweden) 48 <3008> +proj=tmerc +lon_0=13.5 +x_0=150000 +ellps=GRS80 +nadgrids=null + bounds=12.1,55.2,14.65,62.26 <>48 <3008> +proj=tmerc +lon_0=13.5 +x_0=150000 +ellps=GRS80 +nadgrids=null +units=m +bounds=12.1,55.2,14.65,62.26 <> 49 49 # LKS-92 (Latvia TM) 50 <3059> +proj=tmerc +lon_0=24 +k_0=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +nadgrids=null + bounds=-180,-90,180,90 <>50 <3059> +proj=tmerc +lon_0=24 +k_0=0.9996 +x_0=500000 +y_0=-6000000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-180,-90,180,90 <> 51 51 # Lambert Zone (Estonia) 52 <3301> +proj=lcc +lat_0=57.51755393055556 +lat_1=59.333333333333336 +lat_2=58 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +nadgrids=null + bounds=21.64,56.05,28.58,61.13 <>52 <3301> +proj=lcc +lat_0=57.51755393055556 +lat_1=59.333333333333336 +lat_2=58 +lon_0=24 +x_0=500000 +y_0=6375000 +ellps=GRS80 +nadgrids=null +units=m +bounds=21.64,56.05,28.58,61.13 <> 53 53 # Belgian Lambert 2008 54 <3812> +proj=lcc +lat_0=50d47'52.134" +lat_1=49d50'0" +lat_2=51d10'0" +lon_0=4d21'33.177" +x_0=649328 +y_0=665262 +ellps=GRS80 +nadgrids=null + bounds=2.54,49.51,6.4,51.5 <>54 <3812> +proj=lcc +lat_0=50d47'52.134" +lat_1=49d50'0" +lat_2=51d10'0" +lon_0=4d21'33.177" +x_0=649328 +y_0=665262 +ellps=GRS80 +nadgrids=null +units=m +bounds=2.54,49.51,6.4,51.5 <> 55 55 # Pseudo-Mercator 56 <3857> +proj=josm:smerc +ellps=WGS84 +datum=WGS84 + bounds=-180,-85.05112877980659,180,85.05112877980659 <>56 <3857> +proj=josm:smerc +ellps=WGS84 +datum=WGS84 +units=m +bounds=-180,-85.05112877980659,180,85.05112877980659 <> 57 57 # Lambert CC9 (France) Zone 42 58 <3942> +proj=lcc +lat_0=42 +lat_1=41.25 +lat_2=42.75 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,41,10.2,44.5 <>58 <3942> +proj=lcc +lat_0=42 +lat_1=41.25 +lat_2=42.75 +lon_0=3 +x_0=1700000 +y_0=1200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,41,10.2,44.5 <> 59 59 # Lambert CC9 (France) Zone 43 60 <3943> +proj=lcc +lat_0=43 +lat_1=42.25 +lat_2=43.75 +lon_0=3 +x_0=1700000 +y_0=2200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,41,10.2,45.5 <>60 <3943> +proj=lcc +lat_0=43 +lat_1=42.25 +lat_2=43.75 +lon_0=3 +x_0=1700000 +y_0=2200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,41,10.2,45.5 <> 61 61 # Lambert CC9 (France) Zone 44 62 <3944> +proj=lcc +lat_0=44 +lat_1=43.25 +lat_2=44.75 +lon_0=3 +x_0=1700000 +y_0=3200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,41.5,10.2,46.5 <>62 <3944> +proj=lcc +lat_0=44 +lat_1=43.25 +lat_2=44.75 +lon_0=3 +x_0=1700000 +y_0=3200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,41.5,10.2,46.5 <> 63 63 # Lambert CC9 (France) Zone 45 64 <3945> +proj=lcc +lat_0=45 +lat_1=44.25 +lat_2=45.75 +lon_0=3 +x_0=1700000 +y_0=4200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,42.5,10.2,47.5 <>64 <3945> +proj=lcc +lat_0=45 +lat_1=44.25 +lat_2=45.75 +lon_0=3 +x_0=1700000 +y_0=4200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,42.5,10.2,47.5 <> 65 65 # Lambert CC9 (France) Zone 46 66 <3946> +proj=lcc +lat_0=46 +lat_1=45.25 +lat_2=46.75 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,43.5,10.2,48.5 <>66 <3946> +proj=lcc +lat_0=46 +lat_1=45.25 +lat_2=46.75 +lon_0=3 +x_0=1700000 +y_0=5200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,43.5,10.2,48.5 <> 67 67 # Lambert CC9 (France) Zone 47 68 <3947> +proj=lcc +lat_0=47 +lat_1=46.25 +lat_2=47.75 +lon_0=3 +x_0=1700000 +y_0=6200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,44.5,10.2,49.5 <>68 <3947> +proj=lcc +lat_0=47 +lat_1=46.25 +lat_2=47.75 +lon_0=3 +x_0=1700000 +y_0=6200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,44.5,10.2,49.5 <> 69 69 # Lambert CC9 (France) Zone 48 70 <3948> +proj=lcc +lat_0=48 +lat_1=47.25 +lat_2=48.75 +lon_0=3 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,45.5,10.2,50.5 <>70 <3948> +proj=lcc +lat_0=48 +lat_1=47.25 +lat_2=48.75 +lon_0=3 +x_0=1700000 +y_0=7200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,45.5,10.2,50.5 <> 71 71 # Lambert CC9 (France) Zone 49 72 <3949> +proj=lcc +lat_0=49 +lat_1=48.25 +lat_2=49.75 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,46.5,10.2,51.1 <>72 <3949> +proj=lcc +lat_0=49 +lat_1=48.25 +lat_2=49.75 +lon_0=3 +x_0=1700000 +y_0=8200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,46.5,10.2,51.1 <> 73 73 # Lambert CC9 (France) Zone 50 74 <3950> +proj=lcc +lat_0=50 +lat_1=49.25 +lat_2=50.75 +lon_0=3 +x_0=1700000 +y_0=9200000 +ellps=GRS80 +nadgrids=null + bounds=-5.5,47.5,10.2,51.1 <>74 <3950> +proj=lcc +lat_0=50 +lat_1=49.25 +lat_2=50.75 +lon_0=3 +x_0=1700000 +y_0=9200000 +ellps=GRS80 +nadgrids=null +units=m +bounds=-5.5,47.5,10.2,51.1 <> 75 75 # ETRS89 76 76 <4258> +proj=lonlat +ellps=GRS80 +datum=GRS80 +bounds=-180,-90,180,90 <> … … 78 78 <4326> +proj=lonlat +ellps=WGS84 +datum=WGS84 +bounds=-180,-90,180,90 <> 79 79 # Swiss Grid (Switzerland) 80 <21781> +proj=somerc +lat_0=46d57'8.66" +lon_0=7d26'22.5" +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346 + bounds=5.7,45.7,10.6,47.9 <>80 <21781> +proj=somerc +lat_0=46d57'8.66" +lon_0=7d26'22.5" +x_0=600000 +y_0=200000 +ellps=bessel +towgs84=674.374,15.056,405.346 +units=m +bounds=5.7,45.7,10.6,47.9 <> 81 81 # HD72 / EOV (Hungary) 82 82 <23700> +proj=somerc +lat_0=47.14439372222222 +lon_0=19.04857177777778 +k_0=0.99993 +x_0=650000 +y_0=200000 +ellps=GRS67 +towgs84=52.17,-71.82,-14.9 +units=m +bounds=16.1200,45.7800,22.9100,48.6000 <> 83 83 # ETRS89 / UTM zone 28N 84 <25828> +proj=tmerc +lon_0=-15 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=-20,-5,-10,85 <>84 <25828> +proj=tmerc +lon_0=-15 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=-20,-5,-10,85 <> 85 85 # ETRS89 / UTM zone 29N 86 <25829> +proj=tmerc +lon_0=-9 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=-14,-5,-4,85 <>86 <25829> +proj=tmerc +lon_0=-9 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=-14,-5,-4,85 <> 87 87 # ETRS89 / UTM zone 30N 88 <25830> +proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=-8,-5,2,85 <>88 <25830> +proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=-8,-5,2,85 <> 89 89 # ETRS89 / UTM zone 31N 90 <25831> +proj=tmerc +lon_0=3 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=-2,-5,8,85 <>90 <25831> +proj=tmerc +lon_0=3 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=-2,-5,8,85 <> 91 91 # ETRS89 / UTM zone 32N 92 <25832> +proj=tmerc +lon_0=9 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=4,-5,14,85 <>92 <25832> +proj=tmerc +lon_0=9 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=4,-5,14,85 <> 93 93 # ETRS89 / UTM zone 33N 94 <25833> +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=10,-5,20,85 <>94 <25833> +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=10,-5,20,85 <> 95 95 # ETRS89 / UTM zone 34N 96 <25834> +proj=tmerc +lon_0=21 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=16,-5,26,85 <>96 <25834> +proj=tmerc +lon_0=21 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=16,-5,26,85 <> 97 97 # ETRS89 / UTM zone 35N 98 <25835> +proj=tmerc +lon_0=27 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=22,-5,32,85 <>98 <25835> +proj=tmerc +lon_0=27 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=22,-5,32,85 <> 99 99 # ETRS89 / UTM zone 36N 100 <25836> +proj=tmerc +lon_0=33 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=28,-5,38,85 <>100 <25836> +proj=tmerc +lon_0=33 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=28,-5,38,85 <> 101 101 # ETRS89 / UTM zone 37N 102 <25837> +proj=tmerc +lon_0=39 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=34,-5,44,85 <>102 <25837> +proj=tmerc +lon_0=39 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=34,-5,44,85 <> 103 103 # ETRS89 / UTM zone 38N 104 <25838> +proj=tmerc +lon_0=45 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 + bounds=40,-5,50,85 <>104 <25838> +proj=tmerc +lon_0=45 +k_0=0.9996 +x_0=500000 +ellps=GRS80 +datum=GRS80 +units=m +bounds=40,-5,50,85 <> 105 105 # Lambert 4 Zones France (Nord) 106 <27561> +proj=lcc +lat_0=49.5 +lat_1=48d35'54.682" +lat_2=50d23'45.282" +lon_0=2d20'14.025" +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb + bounds=-4.416666666666665,46.65,9.18,51.300000000000004 <>106 <27561> +proj=lcc +lat_0=49.5 +lat_1=48d35'54.682" +lat_2=50d23'45.282" +lon_0=2d20'14.025" +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb +units=m +bounds=-4.416666666666665,46.65,9.18,51.300000000000004 <> 107 107 # Lambert 4 Zones France (Centre) 108 <27562> +proj=lcc +lat_0=46.8 +lat_1=45d53'56.108" +lat_2=47d41'45.652" +lon_0=2d20'14.025" +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb + bounds=-4.416666666666665,43.95,9.18,49.65 <>108 <27562> +proj=lcc +lat_0=46.8 +lat_1=45d53'56.108" +lat_2=47d41'45.652" +lon_0=2d20'14.025" +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb +units=m +bounds=-4.416666666666665,43.95,9.18,49.65 <> 109 109 # Lambert 4 Zones France (South) 110 <27563> +proj=lcc +lat_0=44.1 +lat_1=43d11'57.449" +lat_2=44d59'45.938" +lon_0=2d20'14.025" +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb + bounds=-4.416666666666665,41.49,9.18,46.95 <>110 <27563> +proj=lcc +lat_0=44.1 +lat_1=43d11'57.449" +lat_2=44d59'45.938" +lon_0=2d20'14.025" +x_0=600000 +y_0=200000 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb +units=m +bounds=-4.416666666666665,41.49,9.18,46.95 <> 111 111 # Lambert 4 Zones France (Corsica) 112 <27564> +proj=lcc +lat_0=42.165 +lat_1=41d33'37.396" +lat_2=42d46'3.588" +lon_0=2d20'14.025" +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb + bounds=-4.416666666666665,41.49,9.18,44.267667 <>112 <27564> +proj=lcc +lat_0=42.165 +lat_1=41d33'37.396" +lat_2=42d46'3.588" +lon_0=2d20'14.025" +x_0=234.358 +y_0=185861.369 +a=6378249.2 +b=6356515 +nadgrids=ntf_r93_b.gsb +units=m +bounds=-4.416666666666665,41.49,9.18,44.267667 <> 113 113 # Belgian Lambert 1972 114 <31370> +proj=lcc +lat_0=90 +lat_1=49d50'0.00204" +lat_2=51d10'0.00204" +lon_0=4d22'2.952" +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=-99.06,53.32,-112.49,0.419,-0.83,1.885,-1.0 + bounds=2.54,49.51,6.4,51.5 <>114 <31370> +proj=lcc +lat_0=90 +lat_1=49d50'0.00204" +lat_2=51d10'0.00204" +lon_0=4d22'2.952" +x_0=150000.013 +y_0=5400088.438 +ellps=intl +towgs84=-99.06,53.32,-112.49,0.419,-0.83,1.885,-1.0 +units=m +bounds=2.54,49.51,6.4,51.5 <> 115 115 # Gauß-Krüger Zone 2 116 <31466> +proj=tmerc +lon_0=6 +x_0=2500000 +ellps=bessel +nadgrids=BETA2007.gsb + bounds=3.5,-5,8.5,85 <>116 <31466> +proj=tmerc +lon_0=6 +x_0=2500000 +ellps=bessel +nadgrids=BETA2007.gsb +units=m +bounds=3.5,-5,8.5,85 <> 117 117 # Gauß-Krüger Zone 3 118 <31467> +proj=tmerc +lon_0=9 +x_0=3500000 +ellps=bessel +nadgrids=BETA2007.gsb + bounds=6.5,-5,11.5,85 <>118 <31467> +proj=tmerc +lon_0=9 +x_0=3500000 +ellps=bessel +nadgrids=BETA2007.gsb +units=m +bounds=6.5,-5,11.5,85 <> 119 119 # Gauß-Krüger Zone 4 120 <31468> +proj=tmerc +lon_0=12 +x_0=4500000 +ellps=bessel +nadgrids=BETA2007.gsb + bounds=9.5,-5,14.5,85 <>120 <31468> +proj=tmerc +lon_0=12 +x_0=4500000 +ellps=bessel +nadgrids=BETA2007.gsb +units=m +bounds=9.5,-5,14.5,85 <> 121 121 # Gauß-Krüger Zone 5 122 <31469> +proj=tmerc +lon_0=15 +x_0=5500000 +ellps=bessel +nadgrids=BETA2007.gsb + bounds=12.5,-5,17.5,85 <>122 <31469> +proj=tmerc +lon_0=15 +x_0=5500000 +ellps=bessel +nadgrids=BETA2007.gsb +units=m +bounds=12.5,-5,17.5,85 <> 123 123 # UTM zone 1N 124 <32601> +proj=tmerc +lon_0=-177 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-182,-5,-172,85 <>124 <32601> +proj=tmerc +lon_0=-177 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-182,-5,-172,85 <> 125 125 # UTM zone 2N 126 <32602> +proj=tmerc +lon_0=-171 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-176,-5,-166,85 <>126 <32602> +proj=tmerc +lon_0=-171 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-176,-5,-166,85 <> 127 127 # UTM zone 3N 128 <32603> +proj=tmerc +lon_0=-165 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-170,-5,-160,85 <>128 <32603> +proj=tmerc +lon_0=-165 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-170,-5,-160,85 <> 129 129 # UTM zone 4N 130 <32604> +proj=tmerc +lon_0=-159 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-164,-5,-154,85 <>130 <32604> +proj=tmerc +lon_0=-159 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-164,-5,-154,85 <> 131 131 # UTM zone 5N 132 <32605> +proj=tmerc +lon_0=-153 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-158,-5,-148,85 <>132 <32605> +proj=tmerc +lon_0=-153 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-158,-5,-148,85 <> 133 133 # UTM zone 6N 134 <32606> +proj=tmerc +lon_0=-147 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-152,-5,-142,85 <>134 <32606> +proj=tmerc +lon_0=-147 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-152,-5,-142,85 <> 135 135 # UTM zone 7N 136 <32607> +proj=tmerc +lon_0=-141 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-146,-5,-136,85 <>136 <32607> +proj=tmerc +lon_0=-141 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-146,-5,-136,85 <> 137 137 # UTM zone 8N 138 <32608> +proj=tmerc +lon_0=-135 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-140,-5,-130,85 <>138 <32608> +proj=tmerc +lon_0=-135 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-140,-5,-130,85 <> 139 139 # UTM zone 9N 140 <32609> +proj=tmerc +lon_0=-129 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-134,-5,-124,85 <>140 <32609> +proj=tmerc +lon_0=-129 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-134,-5,-124,85 <> 141 141 # UTM zone 10N 142 <32610> +proj=tmerc +lon_0=-123 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-128,-5,-118,85 <>142 <32610> +proj=tmerc +lon_0=-123 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-128,-5,-118,85 <> 143 143 # UTM zone 11N 144 <32611> +proj=tmerc +lon_0=-117 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-122,-5,-112,85 <>144 <32611> +proj=tmerc +lon_0=-117 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-122,-5,-112,85 <> 145 145 # UTM zone 12N 146 <32612> +proj=tmerc +lon_0=-111 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-116,-5,-106,85 <>146 <32612> +proj=tmerc +lon_0=-111 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-116,-5,-106,85 <> 147 147 # UTM zone 13N 148 <32613> +proj=tmerc +lon_0=-105 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-110,-5,-100,85 <>148 <32613> +proj=tmerc +lon_0=-105 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-110,-5,-100,85 <> 149 149 # UTM zone 14N 150 <32614> +proj=tmerc +lon_0=-99 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-104,-5,-94,85 <>150 <32614> +proj=tmerc +lon_0=-99 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-104,-5,-94,85 <> 151 151 # UTM zone 15N 152 <32615> +proj=tmerc +lon_0=-93 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-98,-5,-88,85 <>152 <32615> +proj=tmerc +lon_0=-93 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-98,-5,-88,85 <> 153 153 # UTM zone 16N 154 <32616> +proj=tmerc +lon_0=-87 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-92,-5,-82,85 <>154 <32616> +proj=tmerc +lon_0=-87 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-92,-5,-82,85 <> 155 155 # UTM zone 17N 156 <32617> +proj=tmerc +lon_0=-81 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-86,-5,-76,85 <>156 <32617> +proj=tmerc +lon_0=-81 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-86,-5,-76,85 <> 157 157 # UTM zone 18N 158 <32618> +proj=tmerc +lon_0=-75 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-80,-5,-70,85 <>158 <32618> +proj=tmerc +lon_0=-75 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-80,-5,-70,85 <> 159 159 # UTM zone 19N 160 <32619> +proj=tmerc +lon_0=-69 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-74,-5,-64,85 <>160 <32619> +proj=tmerc +lon_0=-69 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-74,-5,-64,85 <> 161 161 # UTM zone 20N 162 <32620> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-68,-5,-58,85 <>162 <32620> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-68,-5,-58,85 <> 163 163 # UTM zone 21N 164 <32621> +proj=tmerc +lon_0=-57 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-62,-5,-52,85 <>164 <32621> +proj=tmerc +lon_0=-57 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-62,-5,-52,85 <> 165 165 # UTM zone 22N 166 <32622> +proj=tmerc +lon_0=-51 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-56,-5,-46,85 <>166 <32622> +proj=tmerc +lon_0=-51 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-56,-5,-46,85 <> 167 167 # UTM zone 23N 168 <32623> +proj=tmerc +lon_0=-45 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-50,-5,-40,85 <>168 <32623> +proj=tmerc +lon_0=-45 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-50,-5,-40,85 <> 169 169 # UTM zone 24N 170 <32624> +proj=tmerc +lon_0=-39 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-44,-5,-34,85 <>170 <32624> +proj=tmerc +lon_0=-39 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-44,-5,-34,85 <> 171 171 # UTM zone 25N 172 <32625> +proj=tmerc +lon_0=-33 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-38,-5,-28,85 <>172 <32625> +proj=tmerc +lon_0=-33 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-38,-5,-28,85 <> 173 173 # UTM zone 26N 174 <32626> +proj=tmerc +lon_0=-27 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-32,-5,-22,85 <>174 <32626> +proj=tmerc +lon_0=-27 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-32,-5,-22,85 <> 175 175 # UTM zone 27N 176 <32627> +proj=tmerc +lon_0=-21 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-26,-5,-16,85 <>176 <32627> +proj=tmerc +lon_0=-21 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-26,-5,-16,85 <> 177 177 # UTM zone 28N 178 <32628> +proj=tmerc +lon_0=-15 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-20,-5,-10,85 <>178 <32628> +proj=tmerc +lon_0=-15 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-20,-5,-10,85 <> 179 179 # UTM zone 29N 180 <32629> +proj=tmerc +lon_0=-9 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-14,-5,-4,85 <>180 <32629> +proj=tmerc +lon_0=-9 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-14,-5,-4,85 <> 181 181 # UTM zone 30N 182 <32630> +proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-8,-5,2,85 <>182 <32630> +proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-8,-5,2,85 <> 183 183 # UTM zone 31N 184 <32631> +proj=tmerc +lon_0=3 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=-2,-5,8,85 <>184 <32631> +proj=tmerc +lon_0=3 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-2,-5,8,85 <> 185 185 # UTM zone 32N 186 <32632> +proj=tmerc +lon_0=9 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=4,-5,14,85 <>186 <32632> +proj=tmerc +lon_0=9 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=4,-5,14,85 <> 187 187 # UTM zone 33N 188 <32633> +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=10,-5,20,85 <>188 <32633> +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=10,-5,20,85 <> 189 189 # UTM zone 34N 190 <32634> +proj=tmerc +lon_0=21 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=16,-5,26,85 <>190 <32634> +proj=tmerc +lon_0=21 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=16,-5,26,85 <> 191 191 # UTM zone 35N 192 <32635> +proj=tmerc +lon_0=27 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=22,-5,32,85 <>192 <32635> +proj=tmerc +lon_0=27 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=22,-5,32,85 <> 193 193 # UTM zone 36N 194 <32636> +proj=tmerc +lon_0=33 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=28,-5,38,85 <>194 <32636> +proj=tmerc +lon_0=33 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=28,-5,38,85 <> 195 195 # UTM zone 37N 196 <32637> +proj=tmerc +lon_0=39 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=34,-5,44,85 <>196 <32637> +proj=tmerc +lon_0=39 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=34,-5,44,85 <> 197 197 # UTM zone 38N 198 <32638> +proj=tmerc +lon_0=45 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=40,-5,50,85 <>198 <32638> +proj=tmerc +lon_0=45 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=40,-5,50,85 <> 199 199 # UTM zone 39N 200 <32639> +proj=tmerc +lon_0=51 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=46,-5,56,85 <>200 <32639> +proj=tmerc +lon_0=51 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=46,-5,56,85 <> 201 201 # UTM zone 40N 202 <32640> +proj=tmerc +lon_0=57 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=52,-5,62,85 <>202 <32640> +proj=tmerc +lon_0=57 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=52,-5,62,85 <> 203 203 # UTM zone 41N 204 <32641> +proj=tmerc +lon_0=63 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=58,-5,68,85 <>204 <32641> +proj=tmerc +lon_0=63 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=58,-5,68,85 <> 205 205 # UTM zone 42N 206 <32642> +proj=tmerc +lon_0=69 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=64,-5,74,85 <>206 <32642> +proj=tmerc +lon_0=69 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=64,-5,74,85 <> 207 207 # UTM zone 43N 208 <32643> +proj=tmerc +lon_0=75 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=70,-5,80,85 <>208 <32643> +proj=tmerc +lon_0=75 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=70,-5,80,85 <> 209 209 # UTM zone 44N 210 <32644> +proj=tmerc +lon_0=81 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=76,-5,86,85 <>210 <32644> +proj=tmerc +lon_0=81 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=76,-5,86,85 <> 211 211 # UTM zone 45N 212 <32645> +proj=tmerc +lon_0=87 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=82,-5,92,85 <>212 <32645> +proj=tmerc +lon_0=87 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=82,-5,92,85 <> 213 213 # UTM zone 46N 214 <32646> +proj=tmerc +lon_0=93 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=88,-5,98,85 <>214 <32646> +proj=tmerc +lon_0=93 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=88,-5,98,85 <> 215 215 # UTM zone 47N 216 <32647> +proj=tmerc +lon_0=99 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=94,-5,104,85 <>216 <32647> +proj=tmerc +lon_0=99 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=94,-5,104,85 <> 217 217 # UTM zone 48N 218 <32648> +proj=tmerc +lon_0=105 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=100,-5,110,85 <>218 <32648> +proj=tmerc +lon_0=105 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=100,-5,110,85 <> 219 219 # UTM zone 49N 220 <32649> +proj=tmerc +lon_0=111 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=106,-5,116,85 <>220 <32649> +proj=tmerc +lon_0=111 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=106,-5,116,85 <> 221 221 # UTM zone 50N 222 <32650> +proj=tmerc +lon_0=117 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=112,-5,122,85 <>222 <32650> +proj=tmerc +lon_0=117 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=112,-5,122,85 <> 223 223 # UTM zone 51N 224 <32651> +proj=tmerc +lon_0=123 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=118,-5,128,85 <>224 <32651> +proj=tmerc +lon_0=123 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=118,-5,128,85 <> 225 225 # UTM zone 52N 226 <32652> +proj=tmerc +lon_0=129 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=124,-5,134,85 <>226 <32652> +proj=tmerc +lon_0=129 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=124,-5,134,85 <> 227 227 # UTM zone 53N 228 <32653> +proj=tmerc +lon_0=135 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=130,-5,140,85 <>228 <32653> +proj=tmerc +lon_0=135 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=130,-5,140,85 <> 229 229 # UTM zone 54N 230 <32654> +proj=tmerc +lon_0=141 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=136,-5,146,85 <>230 <32654> +proj=tmerc +lon_0=141 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=136,-5,146,85 <> 231 231 # UTM zone 55N 232 <32655> +proj=tmerc +lon_0=147 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=142,-5,152,85 <>232 <32655> +proj=tmerc +lon_0=147 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=142,-5,152,85 <> 233 233 # UTM zone 56N 234 <32656> +proj=tmerc +lon_0=153 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=148,-5,158,85 <>234 <32656> +proj=tmerc +lon_0=153 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=148,-5,158,85 <> 235 235 # UTM zone 57N 236 <32657> +proj=tmerc +lon_0=159 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=154,-5,164,85 <>236 <32657> +proj=tmerc +lon_0=159 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=154,-5,164,85 <> 237 237 # UTM zone 58N 238 <32658> +proj=tmerc +lon_0=165 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=160,-5,170,85 <>238 <32658> +proj=tmerc +lon_0=165 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=160,-5,170,85 <> 239 239 # UTM zone 59N 240 <32659> +proj=tmerc +lon_0=171 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=166,-5,176,85 <>240 <32659> +proj=tmerc +lon_0=171 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=166,-5,176,85 <> 241 241 # UTM zone 60N 242 <32660> +proj=tmerc +lon_0=177 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 + bounds=172,-5,182,85 <>242 <32660> +proj=tmerc +lon_0=177 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=172,-5,182,85 <> 243 243 # UTM zone 1S 244 <32701> +proj=tmerc +lon_0=-177 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-182,-85,-172,5 <>244 <32701> +proj=tmerc +lon_0=-177 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-182,-85,-172,5 <> 245 245 # UTM zone 2S 246 <32702> +proj=tmerc +lon_0=-171 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-176,-85,-166,5 <>246 <32702> +proj=tmerc +lon_0=-171 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-176,-85,-166,5 <> 247 247 # UTM zone 3S 248 <32703> +proj=tmerc +lon_0=-165 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-170,-85,-160,5 <>248 <32703> +proj=tmerc +lon_0=-165 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-170,-85,-160,5 <> 249 249 # UTM zone 4S 250 <32704> +proj=tmerc +lon_0=-159 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-164,-85,-154,5 <>250 <32704> +proj=tmerc +lon_0=-159 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-164,-85,-154,5 <> 251 251 # UTM zone 5S 252 <32705> +proj=tmerc +lon_0=-153 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-158,-85,-148,5 <>252 <32705> +proj=tmerc +lon_0=-153 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-158,-85,-148,5 <> 253 253 # UTM zone 6S 254 <32706> +proj=tmerc +lon_0=-147 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-152,-85,-142,5 <>254 <32706> +proj=tmerc +lon_0=-147 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-152,-85,-142,5 <> 255 255 # UTM zone 7S 256 <32707> +proj=tmerc +lon_0=-141 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-146,-85,-136,5 <>256 <32707> +proj=tmerc +lon_0=-141 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-146,-85,-136,5 <> 257 257 # UTM zone 8S 258 <32708> +proj=tmerc +lon_0=-135 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-140,-85,-130,5 <>258 <32708> +proj=tmerc +lon_0=-135 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-140,-85,-130,5 <> 259 259 # UTM zone 9S 260 <32709> +proj=tmerc +lon_0=-129 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-134,-85,-124,5 <>260 <32709> +proj=tmerc +lon_0=-129 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-134,-85,-124,5 <> 261 261 # UTM zone 10S 262 <32710> +proj=tmerc +lon_0=-123 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-128,-85,-118,5 <>262 <32710> +proj=tmerc +lon_0=-123 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-128,-85,-118,5 <> 263 263 # UTM zone 11S 264 <32711> +proj=tmerc +lon_0=-117 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-122,-85,-112,5 <>264 <32711> +proj=tmerc +lon_0=-117 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-122,-85,-112,5 <> 265 265 # UTM zone 12S 266 <32712> +proj=tmerc +lon_0=-111 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-116,-85,-106,5 <>266 <32712> +proj=tmerc +lon_0=-111 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-116,-85,-106,5 <> 267 267 # UTM zone 13S 268 <32713> +proj=tmerc +lon_0=-105 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-110,-85,-100,5 <>268 <32713> +proj=tmerc +lon_0=-105 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-110,-85,-100,5 <> 269 269 # UTM zone 14S 270 <32714> +proj=tmerc +lon_0=-99 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-104,-85,-94,5 <>270 <32714> +proj=tmerc +lon_0=-99 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-104,-85,-94,5 <> 271 271 # UTM zone 15S 272 <32715> +proj=tmerc +lon_0=-93 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-98,-85,-88,5 <>272 <32715> +proj=tmerc +lon_0=-93 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-98,-85,-88,5 <> 273 273 # UTM zone 16S 274 <32716> +proj=tmerc +lon_0=-87 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-92,-85,-82,5 <>274 <32716> +proj=tmerc +lon_0=-87 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-92,-85,-82,5 <> 275 275 # UTM zone 17S 276 <32717> +proj=tmerc +lon_0=-81 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-86,-85,-76,5 <>276 <32717> +proj=tmerc +lon_0=-81 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-86,-85,-76,5 <> 277 277 # UTM zone 18S 278 <32718> +proj=tmerc +lon_0=-75 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-80,-85,-70,5 <>278 <32718> +proj=tmerc +lon_0=-75 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-80,-85,-70,5 <> 279 279 # UTM zone 19S 280 <32719> +proj=tmerc +lon_0=-69 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-74,-85,-64,5 <>280 <32719> +proj=tmerc +lon_0=-69 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-74,-85,-64,5 <> 281 281 # UTM zone 20S 282 <32720> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-68,-85,-58,5 <>282 <32720> +proj=tmerc +lon_0=-63 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-68,-85,-58,5 <> 283 283 # UTM zone 21S 284 <32721> +proj=tmerc +lon_0=-57 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-62,-85,-52,5 <>284 <32721> +proj=tmerc +lon_0=-57 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-62,-85,-52,5 <> 285 285 # UTM zone 22S 286 <32722> +proj=tmerc +lon_0=-51 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-56,-85,-46,5 <>286 <32722> +proj=tmerc +lon_0=-51 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-56,-85,-46,5 <> 287 287 # UTM zone 23S 288 <32723> +proj=tmerc +lon_0=-45 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-50,-85,-40,5 <>288 <32723> +proj=tmerc +lon_0=-45 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-50,-85,-40,5 <> 289 289 # UTM zone 24S 290 <32724> +proj=tmerc +lon_0=-39 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-44,-85,-34,5 <>290 <32724> +proj=tmerc +lon_0=-39 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-44,-85,-34,5 <> 291 291 # UTM zone 25S 292 <32725> +proj=tmerc +lon_0=-33 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-38,-85,-28,5 <>292 <32725> +proj=tmerc +lon_0=-33 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-38,-85,-28,5 <> 293 293 # UTM zone 26S 294 <32726> +proj=tmerc +lon_0=-27 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-32,-85,-22,5 <>294 <32726> +proj=tmerc +lon_0=-27 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-32,-85,-22,5 <> 295 295 # UTM zone 27S 296 <32727> +proj=tmerc +lon_0=-21 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-26,-85,-16,5 <>296 <32727> +proj=tmerc +lon_0=-21 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-26,-85,-16,5 <> 297 297 # UTM zone 28S 298 <32728> +proj=tmerc +lon_0=-15 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-20,-85,-10,5 <>298 <32728> +proj=tmerc +lon_0=-15 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-20,-85,-10,5 <> 299 299 # UTM zone 29S 300 <32729> +proj=tmerc +lon_0=-9 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-14,-85,-4,5 <>300 <32729> +proj=tmerc +lon_0=-9 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-14,-85,-4,5 <> 301 301 # UTM zone 30S 302 <32730> +proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-8,-85,2,5 <>302 <32730> +proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-8,-85,2,5 <> 303 303 # UTM zone 31S 304 <32731> +proj=tmerc +lon_0=3 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=-2,-85,8,5 <>304 <32731> +proj=tmerc +lon_0=3 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=-2,-85,8,5 <> 305 305 # UTM zone 32S 306 <32732> +proj=tmerc +lon_0=9 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=4,-85,14,5 <>306 <32732> +proj=tmerc +lon_0=9 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=4,-85,14,5 <> 307 307 # UTM zone 33S 308 <32733> +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=10,-85,20,5 <>308 <32733> +proj=tmerc +lon_0=15 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=10,-85,20,5 <> 309 309 # UTM zone 34S 310 <32734> +proj=tmerc +lon_0=21 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=16,-85,26,5 <>310 <32734> +proj=tmerc +lon_0=21 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=16,-85,26,5 <> 311 311 # UTM zone 35S 312 <32735> +proj=tmerc +lon_0=27 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=22,-85,32,5 <>312 <32735> +proj=tmerc +lon_0=27 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=22,-85,32,5 <> 313 313 # UTM zone 36S 314 <32736> +proj=tmerc +lon_0=33 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=28,-85,38,5 <>314 <32736> +proj=tmerc +lon_0=33 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=28,-85,38,5 <> 315 315 # UTM zone 37S 316 <32737> +proj=tmerc +lon_0=39 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=34,-85,44,5 <>316 <32737> +proj=tmerc +lon_0=39 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=34,-85,44,5 <> 317 317 # UTM zone 38S 318 <32738> +proj=tmerc +lon_0=45 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=40,-85,50,5 <>318 <32738> +proj=tmerc +lon_0=45 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=40,-85,50,5 <> 319 319 # UTM zone 39S 320 <32739> +proj=tmerc +lon_0=51 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=46,-85,56,5 <>320 <32739> +proj=tmerc +lon_0=51 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=46,-85,56,5 <> 321 321 # UTM zone 40S 322 <32740> +proj=tmerc +lon_0=57 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=52,-85,62,5 <>322 <32740> +proj=tmerc +lon_0=57 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=52,-85,62,5 <> 323 323 # UTM zone 41S 324 <32741> +proj=tmerc +lon_0=63 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=58,-85,68,5 <>324 <32741> +proj=tmerc +lon_0=63 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=58,-85,68,5 <> 325 325 # UTM zone 42S 326 <32742> +proj=tmerc +lon_0=69 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=64,-85,74,5 <>326 <32742> +proj=tmerc +lon_0=69 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=64,-85,74,5 <> 327 327 # UTM zone 43S 328 <32743> +proj=tmerc +lon_0=75 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=70,-85,80,5 <>328 <32743> +proj=tmerc +lon_0=75 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=70,-85,80,5 <> 329 329 # UTM zone 44S 330 <32744> +proj=tmerc +lon_0=81 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=76,-85,86,5 <>330 <32744> +proj=tmerc +lon_0=81 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=76,-85,86,5 <> 331 331 # UTM zone 45S 332 <32745> +proj=tmerc +lon_0=87 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=82,-85,92,5 <>332 <32745> +proj=tmerc +lon_0=87 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=82,-85,92,5 <> 333 333 # UTM zone 46S 334 <32746> +proj=tmerc +lon_0=93 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=88,-85,98,5 <>334 <32746> +proj=tmerc +lon_0=93 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=88,-85,98,5 <> 335 335 # UTM zone 47S 336 <32747> +proj=tmerc +lon_0=99 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=94,-85,104,5 <>336 <32747> +proj=tmerc +lon_0=99 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=94,-85,104,5 <> 337 337 # UTM zone 48S 338 <32748> +proj=tmerc +lon_0=105 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=100,-85,110,5 <>338 <32748> +proj=tmerc +lon_0=105 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=100,-85,110,5 <> 339 339 # UTM zone 49S 340 <32749> +proj=tmerc +lon_0=111 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=106,-85,116,5 <>340 <32749> +proj=tmerc +lon_0=111 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=106,-85,116,5 <> 341 341 # UTM zone 50S 342 <32750> +proj=tmerc +lon_0=117 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=112,-85,122,5 <>342 <32750> +proj=tmerc +lon_0=117 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=112,-85,122,5 <> 343 343 # UTM zone 51S 344 <32751> +proj=tmerc +lon_0=123 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=118,-85,128,5 <>344 <32751> +proj=tmerc +lon_0=123 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=118,-85,128,5 <> 345 345 # UTM zone 52S 346 <32752> +proj=tmerc +lon_0=129 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=124,-85,134,5 <>346 <32752> +proj=tmerc +lon_0=129 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=124,-85,134,5 <> 347 347 # UTM zone 53S 348 <32753> +proj=tmerc +lon_0=135 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=130,-85,140,5 <>348 <32753> +proj=tmerc +lon_0=135 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=130,-85,140,5 <> 349 349 # UTM zone 54S 350 <32754> +proj=tmerc +lon_0=141 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=136,-85,146,5 <>350 <32754> +proj=tmerc +lon_0=141 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=136,-85,146,5 <> 351 351 # UTM zone 55S 352 <32755> +proj=tmerc +lon_0=147 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=142,-85,152,5 <>352 <32755> +proj=tmerc +lon_0=147 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=142,-85,152,5 <> 353 353 # UTM zone 56S 354 <32756> +proj=tmerc +lon_0=153 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=148,-85,158,5 <>354 <32756> +proj=tmerc +lon_0=153 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=148,-85,158,5 <> 355 355 # UTM zone 57S 356 <32757> +proj=tmerc +lon_0=159 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=154,-85,164,5 <>356 <32757> +proj=tmerc +lon_0=159 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=154,-85,164,5 <> 357 357 # UTM zone 58S 358 <32758> +proj=tmerc +lon_0=165 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=160,-85,170,5 <>358 <32758> +proj=tmerc +lon_0=165 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=160,-85,170,5 <> 359 359 # UTM zone 59S 360 <32759> +proj=tmerc +lon_0=171 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=166,-85,176,5 <>360 <32759> +proj=tmerc +lon_0=171 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=166,-85,176,5 <> 361 361 # UTM zone 60S 362 <32760> +proj=tmerc +lon_0=177 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 + bounds=172,-85,182,5 <>362 <32760> +proj=tmerc +lon_0=177 +k_0=0.9996 +x_0=500000 +y_0=10000000 +ellps=WGS84 +datum=WGS84 +units=m +bounds=172,-85,182,5 <> -
trunk/src/org/openstreetmap/josm/data/cache/JCSCachedTileLoaderJob.java
r8540 r8568 2 2 package org.openstreetmap.josm.data.cache; 3 3 4 import java.io.ByteArrayOutputStream;5 4 import java.io.FileNotFoundException; 6 5 import java.io.IOException; 7 import java.io.InputStream;8 6 import java.net.HttpURLConnection; 9 7 import java.net.URL; … … 30 28 import org.openstreetmap.josm.data.cache.ICachedLoaderListener.LoadResult; 31 29 import org.openstreetmap.josm.data.preferences.IntegerProperty; 30 import org.openstreetmap.josm.tools.Utils; 32 31 33 32 /** … … 350 349 351 350 attributes.setResponseCode(responseCode(urlConn)); 352 byte[] raw = read(urlConn);351 byte[] raw = Utils.readBytesFromStream(urlConn.getInputStream()); 353 352 354 353 if (isResponseLoadable(urlConn.getHeaderFields(), responseCode(urlConn), raw)) { … … 473 472 } 474 473 475 private static byte[] read(URLConnection urlConn) throws IOException {476 InputStream input = urlConn.getInputStream();477 try {478 ByteArrayOutputStream bout = new ByteArrayOutputStream(input.available());479 byte[] buffer = new byte[2048];480 boolean finished = false;481 do {482 int read = input.read(buffer);483 if (read >= 0) {484 bout.write(buffer, 0, read);485 } else {486 finished = true;487 }488 } while (!finished);489 if (bout.size() == 0)490 return null;491 return bout.toByteArray();492 } finally {493 input.close();494 }495 }496 497 474 /** 498 475 * TODO: move to JobFactory -
trunk/src/org/openstreetmap/josm/data/imagery/ImageryInfo.java
r8526 r8568 56 56 SCANEX("scanex"), 57 57 /** A WMS endpoint entry only stores the WMS server info, without layer, which are chosen later by the user. **/ 58 WMS_ENDPOINT("wms_endpoint"); 58 WMS_ENDPOINT("wms_endpoint"), 59 /** WMTS stores GetCapabilities URL. Does not store any information about the layer **/ 60 WMTS("wmts"); 59 61 60 62 -
trunk/src/org/openstreetmap/josm/data/projection/CustomProjection.java
r8533 r8568 8 8 import java.util.List; 9 9 import java.util.Map; 10 import java.util.concurrent.ConcurrentHashMap; 10 11 import java.util.regex.Matcher; 11 12 import java.util.regex.Pattern; … … 35 36 public class CustomProjection extends AbstractProjection { 36 37 38 private final static Map<String, Double> UNITS_TO_METERS = getUnitsToMeters(); 39 private final static double METER_PER_UNIT_DEGREE = 2 * Math.PI * 6370997 / 360; 40 37 41 /** 38 42 * pref String that defines the projection … … 45 49 protected String cacheDir; 46 50 protected Bounds bounds; 51 private double metersPerUnit = METER_PER_UNIT_DEGREE; // default to degrees 47 52 48 53 /** … … 89 94 wktext("wktext", false), // ignored 90 95 /** meters, US survey feet, etc. */ 91 units("units", true), // ignored96 units("units", true), 92 97 /** Don't use the /usr/share/proj/proj_def.dat defaults file */ 93 98 no_defs("no_defs", false), 94 99 init("init", true), 100 to_meter("to_meter", true), 95 101 // JOSM extensions, not present in PROJ.4 96 102 wmssrs("wmssrs", true), … … 103 109 104 110 /** Map of all parameters by key */ 105 static final Map<String, Param> paramsByKey = new HashMap<>();111 static final Map<String, Param> paramsByKey = new ConcurrentHashMap<>(); 106 112 static { 107 113 for (Param p : Param.values()) { … … 198 204 if (s != null) { 199 205 this.code = s; 206 } 207 s = parameters.get(Param.units.key); 208 if (s != null) { 209 this.metersPerUnit = UNITS_TO_METERS.get(s); 210 } 211 s = parameters.get(Param.to_meter.key); 212 if (s != null) { 213 this.metersPerUnit = parseDouble(s, Param.to_meter.key); 200 214 } 201 215 } … … 528 542 return name != null ? name : tr("Custom Projection"); 529 543 } 544 545 @Override 546 public double getMetersPerUnit() { 547 return metersPerUnit; 548 } 549 550 private static Map<String, Double> getUnitsToMeters() { 551 Map<String, Double> ret = new ConcurrentHashMap<>(); 552 ret.put("km", 1000d); 553 ret.put("m", 1d); 554 ret.put("dm", 1d/10); 555 ret.put("cm", 1d/100); 556 ret.put("mm", 1d/1000); 557 ret.put("kmi", 1852.0); 558 ret.put("in", 0.0254); 559 ret.put("ft", 0.3048); 560 ret.put("yd", 0.9144); 561 ret.put("mi", 1609.344); 562 ret.put("fathom", 1.8288); 563 ret.put("chain", 20.1168); 564 ret.put("link", 0.201168); 565 ret.put("us-in", 1d/39.37); 566 ret.put("us-ft", 0.304800609601219); 567 ret.put("us-yd", 0.914401828803658); 568 ret.put("us-ch", 20.11684023368047); 569 ret.put("us-mi", 1609.347218694437); 570 ret.put("ind-yd", 0.91439523); 571 ret.put("ind-ft", 0.30479841); 572 ret.put("ind-ch", 20.11669506); 573 ret.put("degree", METER_PER_UNIT_DEGREE); 574 return ret; 575 } 530 576 } -
trunk/src/org/openstreetmap/josm/data/projection/Projection.java
r6069 r8568 68 68 */ 69 69 Bounds getWorldBoundsLatLon(); 70 71 /** 72 * Get the number of meters per unit of this projection. This more 73 * defines the scale of the map, than real conversion of unit to meters 74 * as this value is more less correct only along great circles. 75 * 76 * Used by WMTS to properly scale tiles 77 * @return meters per unit of projection 78 * 79 */ 80 double getMetersPerUnit(); 70 81 } -
trunk/src/org/openstreetmap/josm/data/projection/proj/Proj.java
r7509 r8568 64 64 */ 65 65 double[] invproject(double east, double north); 66 67 66 } -
trunk/src/org/openstreetmap/josm/gui/layer/AbstractTileSourceLayer.java
r8542 r8568 31 31 import java.util.Set; 32 32 import java.util.concurrent.ConcurrentSkipListSet; 33 import java.util.concurrent.atomic.AtomicInteger; 33 34 34 35 import javax.swing.AbstractAction; … … 44 45 45 46 import org.openstreetmap.gui.jmapviewer.AttributionSupport; 46 import org.openstreetmap.gui.jmapviewer.Coordinate;47 47 import org.openstreetmap.gui.jmapviewer.MemoryTileCache; 48 48 import org.openstreetmap.gui.jmapviewer.OsmTileLoader; … … 51 51 import org.openstreetmap.gui.jmapviewer.interfaces.CachedTileLoader; 52 52 import org.openstreetmap.gui.jmapviewer.interfaces.ICoordinate; 53 import org.openstreetmap.gui.jmapviewer.interfaces.TemplatedTileSource; 53 54 import org.openstreetmap.gui.jmapviewer.interfaces.TileCache; 54 55 import org.openstreetmap.gui.jmapviewer.interfaces.TileLoader; … … 102 103 /** do set autoload when creating a new layer */ 103 104 public static final BooleanProperty PROP_DEFAULT_AUTOLOAD = new BooleanProperty(PREFERENCE_PREFIX + ".default_autoload", true); 104 /** do s et showerrors when creating a new layer*/105 /** do show errors per default */ 105 106 public static final BooleanProperty PROP_DEFAULT_SHOWERRORS = new BooleanProperty(PREFERENCE_PREFIX + ".default_showerrors", true); 106 107 /** minimum zoom level to show to user */ … … 118 119 119 120 private AttributionSupport attribution = new AttributionSupport(); 120 Tile showMetadataTile;121 121 122 122 // needed public access for session exporter … … 130 130 protected TileCache tileCache; 131 131 protected TileSource tileSource; 132 //protected tileMatrix;133 132 protected TileLoader tileLoader; 134 133 … … 154 153 protected abstract TileSource getTileSource(ImageryInfo info) throws IllegalArgumentException; 155 154 156 protected abstract Map<String, String> getHeaders(TileSource tileSource); 157 158 protected void initTileSource(TileSource tileMatrix) { 159 this.tileSource = tileMatrix; 160 attribution.initialize(tileMatrix); 155 protected Map<String, String> getHeaders(TileSource tileSource) { 156 if (tileSource instanceof TemplatedTileSource) { 157 return ((TemplatedTileSource) tileSource).getHeaders(); 158 } 159 return null; 160 } 161 162 protected void initTileSource(TileSource tileSource) { 163 attribution.initialize(tileSource); 161 164 162 165 currentZoomLevel = getBestZoom(); 163 166 164 Map<String, String> headers = getHeaders(tile Matrix);167 Map<String, String> headers = getHeaders(tileSource); 165 168 166 169 tileLoader = getTileLoaderFactory().makeTileLoader(this, headers); … … 247 250 } 248 251 249 pr ivateint getBestZoom() {252 protected int getBestZoom() { 250 253 double factor = getScaleFactor(1); // check the ratio between area of tilesize at zoom 1 to current view 251 254 double result = Math.log(factor)/Math.log(2)/2+1; … … 273 276 274 277 private final class ShowTileInfoAction extends AbstractAction { 275 private final TileHolder clickedTileHolder;278 private transient final TileHolder clickedTileHolder; 276 279 277 280 private ShowTileInfoAction(TileHolder clickedTileHolder) { … … 349 352 } 350 353 354 @Override 351 355 public Component createMenuComponent() { 352 356 JCheckBoxMenuItem item = new JCheckBoxMenuItem(this); … … 414 418 @Override 415 419 public void actionPerformed(ActionEvent ae) { 416 double new _factor = Math.sqrt(getScaleFactor(currentZoomLevel));417 Main.map.mapView.zoomToFactor(new _factor);420 double newFactor = Math.sqrt(getScaleFactor(currentZoomLevel)); 421 Main.map.mapView.zoomToFactor(newFactor); 418 422 redraw(); 419 423 } … … 451 455 @Override 452 456 public void hookUpMapView() { 453 initTileSource(getTileSource(info));457 this.tileSource = getTileSource(info); 454 458 projectionChanged(null, Main.getProjection()); // check if projection is supported 459 initTileSource(this.tileSource); 455 460 456 461 // keep them final here, so we avoid namespace clutter in the class … … 538 543 @Override 539 544 protected void finish() { 545 // empty - flush is instaneus 540 546 } 541 547 542 548 @Override 543 549 protected void cancel() { 550 // empty - flush is instaneus 544 551 } 545 552 }.run(); … … 642 649 */ 643 650 public static void setMaxZoomLvl(int maxZoomLvl) { 644 maxZoomLvl = checkMaxZoomLvl(maxZoomLvl, null); 645 PROP_MAX_ZOOM_LVL.put(maxZoomLvl); 651 PROP_MAX_ZOOM_LVL.put(checkMaxZoomLvl(maxZoomLvl, null)); 646 652 } 647 653 … … 651 657 */ 652 658 public static void setMinZoomLvl(int minZoomLvl) { 653 minZoomLvl = checkMinZoomLvl(minZoomLvl, null); 654 PROP_MIN_ZOOM_LVL.put(minZoomLvl); 659 PROP_MIN_ZOOM_LVL.put(checkMinZoomLvl(minZoomLvl, null)); 655 660 } 656 661 … … 742 747 */ 743 748 public boolean decreaseZoomLevel() { 744 //int minZoom = this.getMinZoomLvl();745 749 if (zoomDecreaseAllowed()) { 746 750 if (Main.isDebugEnabled()) { … … 750 754 zoomChanged(); 751 755 } else { 752 /*Main.debug("Current zoom level could not be decreased. Min. zoom level "+minZoom+" reached.");*/753 756 return false; 754 757 } … … 786 789 */ 787 790 private Tile getTile(int x, int y, int zoom) { 788 int max = (1 << zoom); 789 if (x < 0 || x >= max || y < 0 || y >= max) 791 if (x < 0 || x >= tileSource.getTileXMax(zoom) || y < 0 || y >= tileSource.getTileYMax(zoom)) 790 792 return null; 791 793 return tileCache.getTile(tileSource, x, y, zoom); … … 1003 1005 } 1004 1006 1005 /*int xCursor = -1;1007 int xCursor = -1; 1006 1008 int yCursor = -1; 1007 if ( PROP_DRAW_DEBUG.get()) {1009 if (Main.isDebugEnabled()) { 1008 1010 if (yCursor < t.getYtile()) { 1009 1011 if (t.getYtile() % 32 == 31) { … … 1026 1028 xCursor = t.getXtile(); 1027 1029 } 1028 } */1030 } 1029 1031 } 1030 1032 … … 1042 1044 } 1043 1045 1044 private Coordinate getShiftedCoord(EastNorth en) { 1045 LatLon ll = getShiftedLatLon(en); 1046 return new Coordinate(ll.lat(), ll.lon()); 1046 private ICoordinate getShiftedCoord(EastNorth en) { 1047 return getShiftedLatLon(en).toCoordinate(); 1047 1048 } 1048 1049 … … 1117 1118 1118 1119 private int size() { 1119 int x _span = x1 - x0 + 1;1120 int y _span = y1 - y0 + 1;1121 return x _span * y_span;1120 int xSpan = x1 - x0 + 1; 1121 int ySpan = y1 - y0 + 1; 1122 return xSpan * ySpan; 1122 1123 } 1123 1124 … … 1355 1356 } 1356 1357 int newzoom = displayZoomLevel + zoomOffset; 1357 if (newzoom < MIN_ZOOM) {1358 if (newzoom < getMinZoomLvl() || newzoom > getMaxZoomLvl()) { 1358 1359 continue; 1359 1360 } … … 1513 1514 public class PrecacheTask implements TileLoaderListener { 1514 1515 private final ProgressMonitor progressMonitor; 1515 private volatileint totalCount;1516 private volatile int processedCount = 0;1517 private TileLoader tileLoader;1516 private int totalCount; 1517 private AtomicInteger processedCount = new AtomicInteger(0); 1518 private final TileLoader tileLoader; 1518 1519 1519 1520 /** … … 1534 1535 */ 1535 1536 public boolean isFinished() { 1536 return processedCount >= totalCount;1537 return processedCount.get() >= totalCount; 1537 1538 } 1538 1539 … … 1556 1557 public void tileLoadingFinished(Tile tile, boolean success) { 1557 1558 if (success) { 1558 this.processedCount++;1559 int processed = this.processedCount.incrementAndGet(); 1559 1560 this.progressMonitor.worked(1); 1560 this.progressMonitor.setCustomText(tr("Downloaded {0}/{1} tiles", processed Count, totalCount));1561 this.progressMonitor.setCustomText(tr("Downloaded {0}/{1} tiles", processed, totalCount)); 1561 1562 } 1562 1563 } -
trunk/src/org/openstreetmap/josm/gui/layer/ImageryLayer.java
r8540 r8568 41 41 import org.openstreetmap.josm.data.ProjectionBounds; 42 42 import org.openstreetmap.josm.data.imagery.ImageryInfo; 43 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryType;44 43 import org.openstreetmap.josm.data.imagery.OffsetBookmark; 45 44 import org.openstreetmap.josm.data.preferences.ColorProperty; … … 153 152 154 153 public static ImageryLayer create(ImageryInfo info) { 155 ImageryType type = info.getImageryType(); 156 if (type == ImageryType.WMS || type == ImageryType.HTML) 154 switch(info.getImageryType()) { 155 case WMS: 156 case HTML: 157 157 return new WMSLayer(info); 158 else if (type == ImageryType.TMS || type == ImageryType.BING || type == ImageryType.SCANEX) 158 case WMTS: 159 return new WMTSLayer(info); 160 case TMS: 161 case BING: 162 case SCANEX: 159 163 return new TMSLayer(info); 160 else throw new AssertionError(); 164 default: 165 throw new AssertionError(tr("Unsupported imagery type: {0}", info.getImageryType())); 166 } 161 167 } 162 168 -
trunk/src/org/openstreetmap/josm/gui/layer/TMSLayer.java
r8540 r8568 78 78 } 79 79 80 @Override81 protected Map<String, String> getHeaders(TileSource tileSource) {82 if (tileSource instanceof TemplatedTMSTileSource) {83 return ((TemplatedTMSTileSource) tileSource).getHeaders();84 }85 return null;86 }87 88 80 /** 89 81 * Creates and returns a new TileSource instance depending on the {@link ImageryType} -
trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddImageryPanel.java
r8513 r8568 16 16 17 17 import org.openstreetmap.josm.data.imagery.ImageryInfo; 18 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryType; 18 19 import org.openstreetmap.josm.gui.widgets.JosmTextArea; 19 20 import org.openstreetmap.josm.gui.widgets.JosmTextField; … … 86 87 } 87 88 89 protected static String sanitize(String s, ImageryType type) { 90 String ret = s; 91 String imageryType = type.getTypeString() + ":"; 92 if (ret.startsWith(imageryType)) { 93 // remove ImageryType from URL 94 ret = ret.substring(imageryType.length()); 95 } 96 return sanitize(ret); 97 } 98 88 99 protected final String getImageryName() { 89 100 return sanitize(name.getText()); -
trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddTMSLayerPanel.java
r8390 r8568 11 11 12 12 import org.openstreetmap.josm.data.imagery.ImageryInfo; 13 import org.openstreetmap.josm.data.imagery.ImageryInfo.ImageryType; 13 14 import org.openstreetmap.josm.gui.widgets.JosmTextArea; 14 15 import org.openstreetmap.josm.gui.widgets.JosmTextField; … … 71 72 a.append('[').append(z).append(']'); 72 73 } 73 a.append(':').append( getImageryRawUrl());74 a.append(':').append(sanitize(getImageryRawUrl(), ImageryType.TMS)); 74 75 return a.toString(); 75 76 } -
trunk/src/org/openstreetmap/josm/gui/preferences/imagery/AddWMSLayerPanel.java
r8426 r8568 178 178 179 179 protected final String getWmsUrl() { 180 return sanitize(wmsUrl.getText() );180 return sanitize(wmsUrl.getText(), ImageryInfo.ImageryType.WMS); 181 181 } 182 182 -
trunk/src/org/openstreetmap/josm/gui/preferences/imagery/ImageryPreference.java
r8510 r8568 389 389 activeToolbar.add(new NewEntryAction(ImageryInfo.ImageryType.WMS)); 390 390 activeToolbar.add(new NewEntryAction(ImageryInfo.ImageryType.TMS)); 391 activeToolbar.add(new NewEntryAction(ImageryInfo.ImageryType.WMTS)); 391 392 //activeToolbar.add(edit); TODO 392 393 activeToolbar.add(remove); … … 482 483 putValue(SHORT_DESCRIPTION, tr("Add a new {0} entry by entering the URL", type.toString())); 483 484 String icon = /* ICON(dialogs/) */ "add"; 484 if (ImageryInfo.ImageryType.WMS.equals(type)) 485 switch (type) { 486 case WMS: 485 487 icon = /* ICON(dialogs/) */ "add_wms"; 486 else if (ImageryInfo.ImageryType.TMS.equals(type)) 488 break; 489 case TMS: 487 490 icon = /* ICON(dialogs/) */ "add_tms"; 491 break; 492 case WMTS: 493 icon = /* ICON(dialogs/) */ "add_wmts"; 494 break; 495 default: 496 break; 497 } 488 498 putValue(SMALL_ICON, ImageProvider.get("dialogs", icon)); 489 499 this.type = type; … … 493 503 public void actionPerformed(ActionEvent evt) { 494 504 final AddImageryPanel p; 495 if (ImageryInfo.ImageryType.WMS.equals(type)) { 505 switch (type) { 506 case WMS: 496 507 p = new AddWMSLayerPanel(); 497 } else if (ImageryInfo.ImageryType.TMS.equals(type)) { 508 break; 509 case TMS: 498 510 p = new AddTMSLayerPanel(); 499 } else { 511 break; 512 case WMTS: 513 p = new AddWMTSLayerPanel(); 514 break; 515 default: 500 516 throw new IllegalStateException("Type " + type + " not supported"); 501 517 } -
trunk/src/org/openstreetmap/josm/io/CachedFile.java
r8510 r8568 20 20 import java.util.Enumeration; 21 21 import java.util.List; 22 import java.util.Map; 23 import java.util.Map.Entry; 24 import java.util.concurrent.ConcurrentHashMap; 22 25 import java.util.zip.ZipEntry; 23 26 import java.util.zip.ZipFile; … … 72 75 public static final long DAYS = 24*60*60; // factor to get caching time in days 73 76 77 private Map<String, String> httpHeaders = new ConcurrentHashMap<>(); 78 74 79 /** 75 80 * Constructs a CachedFile object from a given filename, URL or internal resource. … … 142 147 public CachedFile setCachingStrategy(CachingStrategy cachingStrategy) { 143 148 this.cachingStrategy = cachingStrategy; 149 return this; 150 } 151 152 /** 153 * Sets the http headers. Only applies to URL pointing to http or https resources 154 * @param headers that should be sent together with request 155 * @return this object 156 */ 157 public CachedFile setHttpHeaders(Map<String, String> headers) { 158 this.httpHeaders.putAll(headers); 144 159 return this; 145 160 } … … 397 412 destDirFile = new File(destDir, localPath + ".tmp"); 398 413 try { 399 HttpURLConnection con = connectFollowingRedirect(url, httpAccept, ifModifiedSince );414 HttpURLConnection con = connectFollowingRedirect(url, httpAccept, ifModifiedSince, httpHeaders); 400 415 if (ifModifiedSince != null && con.getResponseCode() == HttpURLConnection.HTTP_NOT_MODIFIED) { 401 416 if (Main.isDebugEnabled()) { … … 464 479 public static HttpURLConnection connectFollowingRedirect(URL downloadUrl, String httpAccept, Long ifModifiedSince) 465 480 throws MalformedURLException, IOException { 481 return connectFollowingRedirect(downloadUrl, httpAccept, ifModifiedSince, null); 482 } 483 /** 484 * Opens a connection for downloading a resource. 485 * <p> 486 * Manually follows redirects because 487 * {@link HttpURLConnection#setFollowRedirects(boolean)} fails if the redirect 488 * is going from a http to a https URL, see <a href="https://bugs.openjdk.java.net/browse/JDK-4620571">bug report</a>. 489 * <p> 490 * This can cause problems when downloading from certain GitHub URLs. 491 * 492 * @param downloadUrl The resource URL to download 493 * @param httpAccept The accepted MIME types sent in the HTTP Accept header. Can be {@code null} 494 * @param ifModifiedSince The download time of the cache file, optional 495 * @param headers http headers to be sent together with http request 496 * @return The HTTP connection effectively linked to the resource, after all potential redirections 497 * @throws MalformedURLException If a redirected URL is wrong 498 * @throws IOException If any I/O operation goes wrong 499 * @throws OfflineAccessException if resource is accessed in offline mode, in any protocol 500 * @since TODO 501 */ 502 public static HttpURLConnection connectFollowingRedirect(URL downloadUrl, String httpAccept, Long ifModifiedSince, Map<String, String> headers) 503 throws MalformedURLException, IOException { 466 504 CheckParameterUtil.ensureParameterNotNull(downloadUrl, "downloadUrl"); 467 505 String downloadString = downloadUrl.toExternalForm(); … … 474 512 if (ifModifiedSince != null) { 475 513 con.setIfModifiedSince(ifModifiedSince); 514 } 515 if (headers != null) { 516 for (Entry<String, String> header: headers.entrySet()) { 517 con.setRequestProperty(header.getKey(), header.getValue()); 518 } 476 519 } 477 520 con.setInstanceFollowRedirects(false); -
trunk/src/org/openstreetmap/josm/tools/Utils.java
r8567 r8568 14 14 import java.awt.datatransfer.UnsupportedFlavorException; 15 15 import java.io.BufferedReader; 16 import java.io.ByteArrayOutputStream; 16 17 import java.io.Closeable; 17 18 import java.io.File; … … 1337 1338 return hasExtension(file.getName(), extensions); 1338 1339 } 1340 1341 /** 1342 * Reads the input stream and closes the stream at the end of processing (regardless if an exception was thrown) 1343 * 1344 * @param stream 1345 * @return byte array of data in input stream 1346 * @throws IOException 1347 */ 1348 public static byte[] readBytesFromStream(InputStream stream) throws IOException { 1349 try { 1350 ByteArrayOutputStream bout = new ByteArrayOutputStream(stream.available()); 1351 byte[] buffer = new byte[2048]; 1352 boolean finished = false; 1353 do { 1354 int read = stream.read(buffer); 1355 if (read >= 0) { 1356 bout.write(buffer, 0, read); 1357 } else { 1358 finished = true; 1359 } 1360 } while (!finished); 1361 if (bout.size() == 0) 1362 return null; 1363 return bout.toByteArray(); 1364 } finally { 1365 stream.close(); 1366 } 1367 } 1339 1368 } -
trunk/test/unit/org/openstreetmap/josm/data/imagery/TemplatedWMSTileSourceTest.java
r8542 r8568 7 7 import org.junit.BeforeClass; 8 8 import org.junit.Test; 9 import org.openstreetmap.gui.jmapviewer.Tile;10 9 import org.openstreetmap.gui.jmapviewer.TileXY; 11 10 import org.openstreetmap.gui.jmapviewer.tilesources.TemplatedTMSTileSource; … … 48 47 } 49 48 } 49 verifyTileSquarness(source, 150, 20, 18); 50 50 verifyTileSquarness(source, 2270, 1323, 12); 51 51 verifyLocation(source, new LatLon(53.5937132, 19.5652017)); … … 109 109 110 110 private LatLon getTileLatLon(TemplatedWMSTileSource source, int x, int y, int z) { 111 return new LatLon(source.tileXYToLatLon( new Tile(source, x, y, z)));111 return new LatLon(source.tileXYToLatLon(x, y, z)); 112 112 } 113 113
Note:
See TracChangeset
for help on using the changeset viewer.