001 //$HeadURL: svn+ssh://rbezema@svn.wald.intevation.org/deegree/base/tags/2.1/src/org/deegree/model/csct/cs/ConvenienceCSFactory.java $ 002 /*---------------- FILE HEADER ------------------------------------------ 003 004 This file is part of deegree. 005 Copyright (C) 2001-2007 by: 006 EXSE, Department of Geography, University of Bonn 007 http://www.giub.uni-bonn.de/exse/ 008 lat/lon GmbH 009 http://www.lat-lon.de 010 011 This library is free software; you can redistribute it and/or 012 modify it under the terms of the GNU Lesser General Public 013 License as published by the Free Software Foundation; either 014 version 2.1 of the License, or (at your option) any later version. 015 016 This library is distributed in the hope that it will be useful, 017 but WITHOUT ANY WARRANTY; without even the implied warranty of 018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 019 Lesser General Public License for more details. 020 021 You should have received a copy of the GNU Lesser General Public 022 License along with this library; if not, write to the Free Software 023 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 024 025 Contact: 026 027 Andreas Poth 028 lat/lon GmbH 029 Aennchenstr. 19 030 53115 Bonn 031 Germany 032 E-Mail: poth@lat-lon.de 033 034 Klaus Greve 035 Department of Geography 036 University of Bonn 037 Meckenheimer Allee 166 038 53115 Bonn 039 Germany 040 E-Mail: klaus.greve@uni-bonn.de 041 042 043 ---------------------------------------------------------------------------*/ 044 package org.deegree.model.csct.cs; 045 046 import java.awt.geom.Point2D; 047 import java.util.ArrayList; 048 import java.util.HashMap; 049 import java.util.List; 050 051 import javax.media.jai.ParameterList; 052 import javax.media.jai.ParameterListDescriptor; 053 import javax.media.jai.ParameterListDescriptorImpl; 054 import javax.media.jai.ParameterListImpl; 055 import javax.media.jai.util.Range; 056 057 import org.deegree.model.crs.CSAccess; 058 import org.deegree.model.csct.units.Unit; 059 060 /** 061 * 062 * 063 * @version $Revision: 7513 $ 064 * @author <a href="mailto:poth@lat-lon.de">Andreas Poth</a> 065 */ 066 public class ConvenienceCSFactory implements CSAccess { 067 068 private static ConvenienceCSFactory factory = null; 069 070 private CoordinateSystemFactory csFactory = CoordinateSystemFactory.getDefault(); 071 072 private static ParameterListDescriptor pld = getDescriptor( new Object[] { 073 "semi_major", 074 Double.class, 075 ParameterListDescriptor.NO_PARAMETER_DEFAULT, 076 null, 077 "semi_minor", 078 Double.class, 079 ParameterListDescriptor.NO_PARAMETER_DEFAULT, 080 null, "central_meridian", Double.class, 081 new Double( 0 ), null, 082 "latitude_of_origin", Double.class, 083 new Double( 0 ), null, "false_easting", 084 Double.class, new Double( 0 ), null, 085 "false_northing", Double.class, 086 new Double( 0 ), null, "scale_factor", 087 Double.class, new Double( 1 ), null, 088 "longitudeOfFalseOrigin", Double.class, 089 new Double( 0 ), null, 090 "latitudeofFalseOrigin", Double.class, 091 new Double( 90 ), null, 092 "standard_parallel1", Double.class, 093 new Double( 30 ), null, 094 "standard_parallel2", Double.class, 095 new Double( 40 ), null, "hemisphere", 096 Integer.class, new Integer( 1 ), null } ); 097 098 // keys are names (i.e. "EPSG:4326"), values are CoordinateSystems 099 private HashMap<String, CoordinateSystem> systems = new HashMap<String, CoordinateSystem>( 300 ); 100 101 // values are names (Strings) 102 private List<String> names = new ArrayList<String>( 300 ); 103 104 /** 105 * implementation f the singleton pattern. 106 */ 107 public static ConvenienceCSFactory getInstance() { 108 if ( factory == null ) { 109 factory = new ConvenienceCSFactory(); 110 } 111 112 return factory; 113 } 114 115 /** 116 * 117 * 118 * @param cs 119 */ 120 private void save( CoordinateSystem cs ) { 121 systems.put( cs.getName(), cs ); 122 names.add( cs.getName() ); 123 } 124 125 /** 126 * 127 * @param name 128 * @param version not supported at the moment 129 * @return 130 */ 131 public synchronized CoordinateSystem getCSByCode( String name, String version ) { 132 return getCSByName( name ); 133 } 134 135 /** 136 * 137 * 138 * @param name 139 * 140 * @return 141 */ 142 public synchronized CoordinateSystem getCSByName( String name ) { 143 name = name.toUpperCase(); 144 145 CoordinateSystem cs = systems.get( name.toUpperCase() ); 146 147 if ( cs != null ) { 148 return cs; 149 } 150 151 // if ( name.equalsIgnoreCase( "EPSG:2056" ) ) { 152 // addEPSG2056(); 153 // } else 154 if ( name.equalsIgnoreCase( "EPSG:41001" ) ) { 155 addEPSG41001(); 156 } else if ( name.equalsIgnoreCase( "EPSG:4269" ) ) { 157 addEPSG4269(); 158 } else if ( name.equalsIgnoreCase( "EPSG:4267" ) ) { 159 addEPSG4267(); 160 } else if ( name.equalsIgnoreCase( "EPSG:20790" ) ) { 161 addEPSG20790(); 162 } else if ( name.equalsIgnoreCase( "EPSG:21780" ) ) { 163 addEPSG21780(); 164 } else if ( name.equalsIgnoreCase( "EPSG:4806" ) ) { 165 addEPSG4806(); 166 } else if ( name.equalsIgnoreCase( "EPSG:4322" ) ) { 167 addEPSG4322(); 168 } else if ( name.equalsIgnoreCase( "EPSG:4324" ) ) { 169 addEPSG4324(); 170 } else if ( name.equalsIgnoreCase( "EPSG:4274" ) ) { 171 addEPSG4274(); 172 } else if ( name.equalsIgnoreCase( "EPSG:4803" ) ) { 173 addEPSG4803(); 174 } else if ( name.equalsIgnoreCase( "EPSG:4308" ) ) { 175 addEPSG4308(); 176 } else if ( name.equalsIgnoreCase( "EPSG:4807" ) ) { 177 addEPSG4807(); 178 } else if ( name.equalsIgnoreCase( "EPSG:4817" ) ) { 179 addEPSG4817(); 180 } else if ( name.equalsIgnoreCase( "EPSG:4801" ) ) { 181 addEPSG4801(); 182 } else if ( name.equalsIgnoreCase( "EPSG:4272" ) ) { 183 addEPSG4272(); 184 } else if ( name.equalsIgnoreCase( "EPSG:21781" ) ) { 185 addEPSG21781(); 186 } else if ( name.equalsIgnoreCase( "EPSG:23028" ) ) { 187 addEPSG23028(); 188 } else if ( name.equalsIgnoreCase( "EPSG:23029" ) ) { 189 addEPSG23029(); 190 } else if ( name.equalsIgnoreCase( "EPSG:23030" ) ) { 191 addEPSG23030(); 192 } else if ( name.equalsIgnoreCase( "EPSG:23031" ) ) { 193 addEPSG23031(); 194 } else if ( name.equalsIgnoreCase( "EPSG:23032" ) ) { 195 addEPSG23032(); 196 } else if ( name.equalsIgnoreCase( "EPSG:23033" ) ) { 197 addEPSG23033(); 198 } else if ( name.equalsIgnoreCase( "EPSG:23034" ) ) { 199 addEPSG23034(); 200 } else if ( name.equalsIgnoreCase( "EPSG:23035" ) ) { 201 addEPSG23035(); 202 } else if ( name.equalsIgnoreCase( "EPSG:23036" ) ) { 203 addEPSG23036(); 204 } else if ( name.equalsIgnoreCase( "EPSG:23037" ) ) { 205 addEPSG23037(); 206 } else if ( name.equalsIgnoreCase( "EPSG:23038" ) ) { 207 addEPSG23038(); 208 } else if ( name.equalsIgnoreCase( "EPSG:23090" ) ) { 209 addEPSG23090(); 210 } else if ( name.equalsIgnoreCase( "EPSG:23095" ) ) { 211 addEPSG23095(); 212 } else if ( name.equalsIgnoreCase( "EPSG:25884" ) ) { 213 addEPSG25884(); 214 } else if ( name.equalsIgnoreCase( "EPSG:25828" ) || name.equalsIgnoreCase( "EPSG:25829" ) 215 || name.equalsIgnoreCase( "EPSG:25830" ) || name.equalsIgnoreCase( "EPSG:25831" ) 216 || name.equalsIgnoreCase( "EPSG:25832" ) || name.equalsIgnoreCase( "EPSG:25833" ) 217 || name.equalsIgnoreCase( "EPSG:25834" ) || name.equalsIgnoreCase( "EPSG:25835" ) 218 || name.equalsIgnoreCase( "EPSG:25836" ) || name.equalsIgnoreCase( "EPSG:25837" ) 219 || name.equalsIgnoreCase( "EPSG:25838" ) ) { 220 String s = name.substring( 8, 10 ); 221 int code = Integer.parseInt( s ); 222 addEPSG258XX( code ); 223 } else if ( name.equalsIgnoreCase( "EPSG:26591" ) ) { 224 addEPSG26591(); 225 } else if ( name.equalsIgnoreCase( "EPSG:26592" ) ) { 226 addEPSG26592(); 227 } else if ( name.equalsIgnoreCase( "EPSG:27391" ) ) { 228 addEPSG27391(); 229 } else if ( name.equalsIgnoreCase( "EPSG:27392" ) ) { 230 addEPSG27392(); 231 } else if ( name.equalsIgnoreCase( "EPSG:27393" ) ) { 232 addEPSG27393(); 233 } else if ( name.equalsIgnoreCase( "EPSG:27394" ) ) { 234 addEPSG27394(); 235 } else if ( name.equalsIgnoreCase( "EPSG:27395" ) ) { 236 addEPSG27395(); 237 } else if ( name.equalsIgnoreCase( "EPSG:27396" ) ) { 238 addEPSG27396(); 239 } else if ( name.equalsIgnoreCase( "EPSG:27397" ) ) { 240 addEPSG27397(); 241 } else if ( name.equalsIgnoreCase( "EPSG:27398" ) ) { 242 addEPSG27398(); 243 } else if ( name.equalsIgnoreCase( "EPSG:27429" ) ) { 244 addEPSG27429(); 245 } else if ( name.equalsIgnoreCase( "EPSG:27700" ) ) { 246 addEPSG27700(); 247 } else if ( name.equalsIgnoreCase( "EPSG:28402" ) ) { 248 addEPSG28402(); 249 } else if ( name.equalsIgnoreCase( "EPSG:28403" ) ) { 250 addEPSG28403(); 251 } else if ( name.equalsIgnoreCase( "EPSG:28404" ) ) { 252 addEPSG28404(); 253 } else if ( name.equalsIgnoreCase( "EPSG:28405" ) ) { 254 addEPSG28405(); 255 } else if ( name.equalsIgnoreCase( "EPSG:28406" ) ) { 256 addEPSG28406(); 257 } else if ( name.equalsIgnoreCase( "EPSG:28407" ) ) { 258 addEPSG28407(); 259 } else if ( name.equalsIgnoreCase( "EPSG:28408" ) ) { 260 addEPSG28408(); 261 } else if ( name.equalsIgnoreCase( "EPSG:28409" ) ) { 262 addEPSG28409(); 263 } else if ( name.equalsIgnoreCase( "EPSG:28462" ) ) { 264 addEPSG28462(); 265 } else if ( name.equalsIgnoreCase( "EPSG:28462" ) || name.equalsIgnoreCase( "EPSG:28463" ) 266 || name.equalsIgnoreCase( "EPSG:28464" ) || name.equalsIgnoreCase( "EPSG:28465" ) 267 || name.equalsIgnoreCase( "EPSG:28466" ) || name.equalsIgnoreCase( "EPSG:28467" ) 268 || name.equalsIgnoreCase( "EPSG:28468" ) || name.equalsIgnoreCase( "EPSG:28469" ) ) { 269 String s = name.substring( 9 ); 270 int code = Integer.parseInt( s ); 271 addEPSG2846X( code ); 272 } else if ( name.equalsIgnoreCase( "EPSG:29900" ) ) { 273 addEPSG29900(); 274 } else if ( name.equalsIgnoreCase( "EPSG:30800" ) ) { 275 addEPSG30800(); 276 } else if ( name.equalsIgnoreCase( "EPSG:31275" ) ) { 277 addEPSG31275(); 278 } else if ( name.equalsIgnoreCase( "EPSG:31276" ) ) { 279 addEPSG31276(); 280 } else if ( name.equalsIgnoreCase( "EPSG:31277" ) ) { 281 addEPSG31277(); 282 } else if ( name.equalsIgnoreCase( "EPSG:31278" ) ) { 283 addEPSG31278(); 284 } else if ( name.equalsIgnoreCase( "EPSG:31281" ) ) { 285 addEPSG31281(); 286 } else if ( name.equalsIgnoreCase( "EPSG:31282" ) ) { 287 addEPSG31282(); 288 } else if ( name.equalsIgnoreCase( "EPSG:31283" ) ) { 289 addEPSG31283(); 290 } else if ( name.equalsIgnoreCase( "EPSG:31284" ) ) { 291 addEPSG31284(); 292 } else if ( name.equalsIgnoreCase( "EPSG:31285" ) ) { 293 addEPSG31285(); 294 } else if ( name.equalsIgnoreCase( "EPSG:31286" ) ) { 295 addEPSG31286(); 296 } else if ( name.equalsIgnoreCase( "EPSG:31466" ) || name.equalsIgnoreCase( "EPSG:31467" ) 297 || name.equalsIgnoreCase( "EPSG:31468" ) || name.equalsIgnoreCase( "EPSG:31469" ) ) { 298 String s = name.substring( 9 ); 299 int code = Integer.parseInt( s ); 300 addEPSG3146X( code ); 301 } else if ( name.equalsIgnoreCase( "EPSG:31491" ) || name.equalsIgnoreCase( "EPSG:31492" ) 302 || name.equalsIgnoreCase( "EPSG:31493" ) || name.equalsIgnoreCase( "EPSG:31494" ) 303 || name.equalsIgnoreCase( "EPSG:31495" ) ) { 304 String s = name.substring( 9 ); 305 int code = Integer.parseInt( s ); 306 addEPSG3149X( code ); 307 } else if ( name.equalsIgnoreCase( "EPSG:32201" ) || name.equalsIgnoreCase( "EPSG:32202" ) 308 || name.equalsIgnoreCase( "EPSG:32203" ) || name.equalsIgnoreCase( "EPSG:32204" ) 309 || name.equalsIgnoreCase( "EPSG:32205" ) || name.equalsIgnoreCase( "EPSG:32206" ) 310 || name.equalsIgnoreCase( "EPSG:32207" ) || name.equalsIgnoreCase( "EPSG:32208" ) 311 || name.equalsIgnoreCase( "EPSG:32209" ) || name.equalsIgnoreCase( "EPSG:32210" ) 312 || name.equalsIgnoreCase( "EPSG:32211" ) || name.equalsIgnoreCase( "EPSG:32212" ) 313 || name.equalsIgnoreCase( "EPSG:32213" ) || name.equalsIgnoreCase( "EPSG:32214" ) 314 || name.equalsIgnoreCase( "EPSG:32215" ) || name.equalsIgnoreCase( "EPSG:32216" ) 315 || name.equalsIgnoreCase( "EPSG:32217" ) || name.equalsIgnoreCase( "EPSG:32218" ) 316 || name.equalsIgnoreCase( "EPSG:32219" ) || name.equalsIgnoreCase( "EPSG:32220" ) 317 || name.equalsIgnoreCase( "EPSG:32221" ) || name.equalsIgnoreCase( "EPSG:32222" ) 318 || name.equalsIgnoreCase( "EPSG:32223" ) || name.equalsIgnoreCase( "EPSG:32224" ) 319 || name.equalsIgnoreCase( "EPSG:32225" ) || name.equalsIgnoreCase( "EPSG:32226" ) 320 || name.equalsIgnoreCase( "EPSG:32227" ) || name.equalsIgnoreCase( "EPSG:32228" ) 321 || name.equalsIgnoreCase( "EPSG:32229" ) || name.equalsIgnoreCase( "EPSG:32230" ) 322 || name.equalsIgnoreCase( "EPSG:32231" ) || name.equalsIgnoreCase( "EPSG:32232" ) 323 || name.equalsIgnoreCase( "EPSG:32233" ) || name.equalsIgnoreCase( "EPSG:32234" ) 324 || name.equalsIgnoreCase( "EPSG:32235" ) || name.equalsIgnoreCase( "EPSG:32236" ) 325 || name.equalsIgnoreCase( "EPSG:32237" ) || name.equalsIgnoreCase( "EPSG:32238" ) 326 || name.equalsIgnoreCase( "EPSG:32239" ) || name.equalsIgnoreCase( "EPSG:32240" ) 327 || name.equalsIgnoreCase( "EPSG:32241" ) || name.equalsIgnoreCase( "EPSG:32242" ) 328 || name.equalsIgnoreCase( "EPSG:32243" ) || name.equalsIgnoreCase( "EPSG:32244" ) 329 || name.equalsIgnoreCase( "EPSG:32245" ) || name.equalsIgnoreCase( "EPSG:32246" ) 330 || name.equalsIgnoreCase( "EPSG:32247" ) || name.equalsIgnoreCase( "EPSG:32248" ) 331 || name.equalsIgnoreCase( "EPSG:32249" ) || name.equalsIgnoreCase( "EPSG:32250" ) 332 || name.equalsIgnoreCase( "EPSG:32251" ) || name.equalsIgnoreCase( "EPSG:32252" ) 333 || name.equalsIgnoreCase( "EPSG:32253" ) || name.equalsIgnoreCase( "EPSG:32254" ) 334 || name.equalsIgnoreCase( "EPSG:32255" ) || name.equalsIgnoreCase( "EPSG:32256" ) 335 || name.equalsIgnoreCase( "EPSG:32257" ) || name.equalsIgnoreCase( "EPSG:32258" ) 336 || name.equalsIgnoreCase( "EPSG:32259" ) || name.equalsIgnoreCase( "EPSG:32260" ) ) { 337 String s = name.substring( 8, 10 ); 338 int code = Integer.parseInt( s ); 339 addEPSG322XX( code ); 340 } else if ( name.equalsIgnoreCase( "EPSG:32401" ) || name.equalsIgnoreCase( "EPSG:32402" ) 341 || name.equalsIgnoreCase( "EPSG:32403" ) || name.equalsIgnoreCase( "EPSG:32404" ) 342 || name.equalsIgnoreCase( "EPSG:32405" ) || name.equalsIgnoreCase( "EPSG:32406" ) 343 || name.equalsIgnoreCase( "EPSG:32407" ) || name.equalsIgnoreCase( "EPSG:32408" ) 344 || name.equalsIgnoreCase( "EPSG:32409" ) || name.equalsIgnoreCase( "EPSG:32410" ) 345 || name.equalsIgnoreCase( "EPSG:32411" ) || name.equalsIgnoreCase( "EPSG:32412" ) 346 || name.equalsIgnoreCase( "EPSG:32413" ) || name.equalsIgnoreCase( "EPSG:32414" ) 347 || name.equalsIgnoreCase( "EPSG:32415" ) || name.equalsIgnoreCase( "EPSG:32416" ) 348 || name.equalsIgnoreCase( "EPSG:32417" ) || name.equalsIgnoreCase( "EPSG:32418" ) 349 || name.equalsIgnoreCase( "EPSG:32419" ) || name.equalsIgnoreCase( "EPSG:32420" ) 350 || name.equalsIgnoreCase( "EPSG:32421" ) || name.equalsIgnoreCase( "EPSG:32422" ) 351 || name.equalsIgnoreCase( "EPSG:32423" ) || name.equalsIgnoreCase( "EPSG:32424" ) 352 || name.equalsIgnoreCase( "EPSG:32425" ) || name.equalsIgnoreCase( "EPSG:32426" ) 353 || name.equalsIgnoreCase( "EPSG:32427" ) || name.equalsIgnoreCase( "EPSG:32428" ) 354 || name.equalsIgnoreCase( "EPSG:32429" ) || name.equalsIgnoreCase( "EPSG:32430" ) 355 || name.equalsIgnoreCase( "EPSG:32431" ) || name.equalsIgnoreCase( "EPSG:32432" ) 356 || name.equalsIgnoreCase( "EPSG:32433" ) || name.equalsIgnoreCase( "EPSG:32434" ) 357 || name.equalsIgnoreCase( "EPSG:32435" ) || name.equalsIgnoreCase( "EPSG:32436" ) 358 || name.equalsIgnoreCase( "EPSG:32437" ) || name.equalsIgnoreCase( "EPSG:32438" ) 359 || name.equalsIgnoreCase( "EPSG:32439" ) || name.equalsIgnoreCase( "EPSG:32440" ) 360 || name.equalsIgnoreCase( "EPSG:32441" ) || name.equalsIgnoreCase( "EPSG:32442" ) 361 || name.equalsIgnoreCase( "EPSG:32443" ) || name.equalsIgnoreCase( "EPSG:32444" ) 362 || name.equalsIgnoreCase( "EPSG:32445" ) || name.equalsIgnoreCase( "EPSG:32446" ) 363 || name.equalsIgnoreCase( "EPSG:32447" ) || name.equalsIgnoreCase( "EPSG:32448" ) 364 || name.equalsIgnoreCase( "EPSG:32449" ) || name.equalsIgnoreCase( "EPSG:32450" ) 365 || name.equalsIgnoreCase( "EPSG:32451" ) || name.equalsIgnoreCase( "EPSG:32452" ) 366 || name.equalsIgnoreCase( "EPSG:32453" ) || name.equalsIgnoreCase( "EPSG:32454" ) 367 || name.equalsIgnoreCase( "EPSG:32455" ) || name.equalsIgnoreCase( "EPSG:32456" ) 368 || name.equalsIgnoreCase( "EPSG:32457" ) || name.equalsIgnoreCase( "EPSG:32458" ) 369 || name.equalsIgnoreCase( "EPSG:32459" ) || name.equalsIgnoreCase( "EPSG:32460" ) ) { 370 String s = name.substring( 8, 10 ); 371 int code = Integer.parseInt( s ); 372 addEPSG324XX( code ); 373 } else if ( name.equalsIgnoreCase( "EPSG:32601" ) || name.equalsIgnoreCase( "EPSG:32602" ) 374 || name.equalsIgnoreCase( "EPSG:32603" ) || name.equalsIgnoreCase( "EPSG:32604" ) 375 || name.equalsIgnoreCase( "EPSG:32605" ) || name.equalsIgnoreCase( "EPSG:32606" ) 376 || name.equalsIgnoreCase( "EPSG:32607" ) || name.equalsIgnoreCase( "EPSG:32608" ) 377 || name.equalsIgnoreCase( "EPSG:32609" ) || name.equalsIgnoreCase( "EPSG:32610" ) 378 || name.equalsIgnoreCase( "EPSG:32611" ) || name.equalsIgnoreCase( "EPSG:32612" ) 379 || name.equalsIgnoreCase( "EPSG:32613" ) || name.equalsIgnoreCase( "EPSG:32614" ) 380 || name.equalsIgnoreCase( "EPSG:32615" ) || name.equalsIgnoreCase( "EPSG:32616" ) 381 || name.equalsIgnoreCase( "EPSG:32617" ) || name.equalsIgnoreCase( "EPSG:32618" ) 382 || name.equalsIgnoreCase( "EPSG:32619" ) || name.equalsIgnoreCase( "EPSG:32620" ) 383 || name.equalsIgnoreCase( "EPSG:32621" ) || name.equalsIgnoreCase( "EPSG:32622" ) 384 || name.equalsIgnoreCase( "EPSG:32623" ) || name.equalsIgnoreCase( "EPSG:32624" ) 385 || name.equalsIgnoreCase( "EPSG:32625" ) || name.equalsIgnoreCase( "EPSG:32626" ) 386 || name.equalsIgnoreCase( "EPSG:32627" ) || name.equalsIgnoreCase( "EPSG:32628" ) 387 || name.equalsIgnoreCase( "EPSG:32629" ) || name.equalsIgnoreCase( "EPSG:32630" ) 388 || name.equalsIgnoreCase( "EPSG:32631" ) || name.equalsIgnoreCase( "EPSG:32632" ) 389 || name.equalsIgnoreCase( "EPSG:32633" ) || name.equalsIgnoreCase( "EPSG:32634" ) 390 || name.equalsIgnoreCase( "EPSG:32635" ) || name.equalsIgnoreCase( "EPSG:32636" ) 391 || name.equalsIgnoreCase( "EPSG:32637" ) || name.equalsIgnoreCase( "EPSG:32638" ) 392 || name.equalsIgnoreCase( "EPSG:32639" ) || name.equalsIgnoreCase( "EPSG:32640" ) 393 || name.equalsIgnoreCase( "EPSG:32641" ) || name.equalsIgnoreCase( "EPSG:32642" ) 394 || name.equalsIgnoreCase( "EPSG:32643" ) || name.equalsIgnoreCase( "EPSG:32644" ) 395 || name.equalsIgnoreCase( "EPSG:32645" ) || name.equalsIgnoreCase( "EPSG:32646" ) 396 || name.equalsIgnoreCase( "EPSG:32647" ) || name.equalsIgnoreCase( "EPSG:32648" ) 397 || name.equalsIgnoreCase( "EPSG:32649" ) || name.equalsIgnoreCase( "EPSG:32650" ) 398 || name.equalsIgnoreCase( "EPSG:32651" ) || name.equalsIgnoreCase( "EPSG:32652" ) 399 || name.equalsIgnoreCase( "EPSG:32653" ) || name.equalsIgnoreCase( "EPSG:32654" ) 400 || name.equalsIgnoreCase( "EPSG:32655" ) || name.equalsIgnoreCase( "EPSG:32656" ) 401 || name.equalsIgnoreCase( "EPSG:32657" ) || name.equalsIgnoreCase( "EPSG:32658" ) 402 || name.equalsIgnoreCase( "EPSG:32659" ) || name.equalsIgnoreCase( "EPSG:32660" ) ) { 403 String s = name.substring( 8, 10 ); 404 int code = Integer.parseInt( s ); 405 addEPSG326XX( code ); 406 } else if ( name.equalsIgnoreCase( "EPSG:32701" ) || name.equalsIgnoreCase( "EPSG:32702" ) 407 || name.equalsIgnoreCase( "EPSG:32703" ) || name.equalsIgnoreCase( "EPSG:32704" ) 408 || name.equalsIgnoreCase( "EPSG:32705" ) || name.equalsIgnoreCase( "EPSG:32706" ) 409 || name.equalsIgnoreCase( "EPSG:32707" ) || name.equalsIgnoreCase( "EPSG:32708" ) 410 || name.equalsIgnoreCase( "EPSG:32709" ) || name.equalsIgnoreCase( "EPSG:32710" ) 411 || name.equalsIgnoreCase( "EPSG:32711" ) || name.equalsIgnoreCase( "EPSG:32712" ) 412 || name.equalsIgnoreCase( "EPSG:32713" ) || name.equalsIgnoreCase( "EPSG:32714" ) 413 || name.equalsIgnoreCase( "EPSG:32715" ) || name.equalsIgnoreCase( "EPSG:32716" ) 414 || name.equalsIgnoreCase( "EPSG:32717" ) || name.equalsIgnoreCase( "EPSG:32718" ) 415 || name.equalsIgnoreCase( "EPSG:32719" ) || name.equalsIgnoreCase( "EPSG:32720" ) 416 || name.equalsIgnoreCase( "EPSG:32721" ) || name.equalsIgnoreCase( "EPSG:32722" ) 417 || name.equalsIgnoreCase( "EPSG:32723" ) || name.equalsIgnoreCase( "EPSG:32724" ) 418 || name.equalsIgnoreCase( "EPSG:32725" ) || name.equalsIgnoreCase( "EPSG:32726" ) 419 || name.equalsIgnoreCase( "EPSG:32727" ) || name.equalsIgnoreCase( "EPSG:32728" ) 420 || name.equalsIgnoreCase( "EPSG:32729" ) || name.equalsIgnoreCase( "EPSG:32730" ) 421 || name.equalsIgnoreCase( "EPSG:32731" ) || name.equalsIgnoreCase( "EPSG:32732" ) 422 || name.equalsIgnoreCase( "EPSG:32733" ) || name.equalsIgnoreCase( "EPSG:32734" ) 423 || name.equalsIgnoreCase( "EPSG:32735" ) || name.equalsIgnoreCase( "EPSG:32736" ) 424 || name.equalsIgnoreCase( "EPSG:32737" ) || name.equalsIgnoreCase( "EPSG:32738" ) 425 || name.equalsIgnoreCase( "EPSG:32739" ) || name.equalsIgnoreCase( "EPSG:32740" ) 426 || name.equalsIgnoreCase( "EPSG:32741" ) || name.equalsIgnoreCase( "EPSG:32742" ) 427 || name.equalsIgnoreCase( "EPSG:32743" ) || name.equalsIgnoreCase( "EPSG:32744" ) 428 || name.equalsIgnoreCase( "EPSG:32745" ) || name.equalsIgnoreCase( "EPSG:32746" ) 429 || name.equalsIgnoreCase( "EPSG:32747" ) || name.equalsIgnoreCase( "EPSG:32748" ) 430 || name.equalsIgnoreCase( "EPSG:32749" ) || name.equalsIgnoreCase( "EPSG:32750" ) 431 || name.equalsIgnoreCase( "EPSG:32751" ) || name.equalsIgnoreCase( "EPSG:32752" ) 432 || name.equalsIgnoreCase( "EPSG:32753" ) || name.equalsIgnoreCase( "EPSG:32754" ) 433 || name.equalsIgnoreCase( "EPSG:32755" ) || name.equalsIgnoreCase( "EPSG:32756" ) 434 || name.equalsIgnoreCase( "EPSG:32757" ) || name.equalsIgnoreCase( "EPSG:32758" ) 435 || name.equalsIgnoreCase( "EPSG:32759" ) || name.equalsIgnoreCase( "EPSG:32760" ) ) { 436 String s = name.substring( 8, 10 ); 437 int code = Integer.parseInt( s ); 438 addEPSG327XX( code ); 439 } else if ( name.equalsIgnoreCase( "EPSG:4120" ) ) { 440 addEPSG4120(); 441 } else if ( name.equalsIgnoreCase( "EPSG:4121" ) ) { 442 addEPSG4121(); 443 } else if ( name.equalsIgnoreCase( "EPSG:4124" ) ) { 444 addEPSG4124(); 445 } else if ( name.equalsIgnoreCase( "EPSG:4149" ) ) { 446 addEPSG4149(); 447 } else if ( name.equalsIgnoreCase( "EPSG:4150" ) ) { 448 addEPSG4150(); 449 } else if ( name.equalsIgnoreCase( "EPSG:4151" ) ) { 450 addEPSG4151(); 451 } else if ( name.equalsIgnoreCase( "EPSG:4171" ) ) { 452 addEPSG4171(); 453 } else if ( name.equalsIgnoreCase( "EPSG:4173" ) ) { 454 addEPSG4173(); 455 } else if ( name.equalsIgnoreCase( "EPSG:4230" ) ) { 456 addEPSG4230(); 457 } else if ( name.equalsIgnoreCase( "EPSG:4231" ) ) { 458 addEPSG4231(); 459 } else if ( name.equalsIgnoreCase( "EPSG:4237" ) ) { 460 addEPSG4237(); 461 } else if ( name.equalsIgnoreCase( "EPSG:4258" ) ) { 462 addEPSG4258(); 463 } else if ( name.equalsIgnoreCase( "EPSG:4265" ) ) { 464 addEPSG4265(); 465 } else if ( name.equalsIgnoreCase( "EPSG:4275" ) ) { 466 addEPSG4275(); 467 } else if ( name.equalsIgnoreCase( "EPSG:4277" ) ) { 468 addEPSG4277(); 469 } else if ( name.equalsIgnoreCase( "EPSG:4284" ) ) { 470 addEPSG4284(); 471 } else if ( name.equalsIgnoreCase( "EPSG:4289" ) ) { 472 addEPSG4289(); 473 } else if ( name.equalsIgnoreCase( "EPSG:4299" ) ) { 474 addEPSG4299(); 475 } else if ( name.equalsIgnoreCase( "EPSG:4312" ) ) { 476 addEPSG4312(); 477 } else if ( name.equalsIgnoreCase( "EPSG:4313" ) ) { 478 addEPSG4313(); 479 } else if ( name.equalsIgnoreCase( "EPSG:4314" ) ) { 480 addEPSG4314(); 481 } else if ( name.equalsIgnoreCase( "EPSG:32661" ) ) { 482 addEPSG32661(); 483 } else if ( name.equalsIgnoreCase( "EPSG:4326" ) || name.equalsIgnoreCase( "urn:ogc:def:crs:OGC:2:84" ) 484 || ( name.equalsIgnoreCase( "CRS:84" ) ) ) { 485 addEPSG4326( name ); 486 } else if ( name.equalsIgnoreCase( "LuRef" ) ) { 487 addLuRef(); 488 } else if ( name.equalsIgnoreCase( "EPSG:31287" ) ) { 489 addEPSG31287(); 490 } else if ( name.equalsIgnoreCase( "EPSG:31300" ) ) { 491 addEPSG31300(); 492 } else if ( name.equalsIgnoreCase( "EPSG:27561" ) ) { 493 addEPSG27561(); 494 } else if ( name.equalsIgnoreCase( "EPSG:27562" ) ) { 495 addEPSG27562(); 496 } else if ( name.equalsIgnoreCase( "EPSG:27563" ) ) { 497 addEPSG27563(); 498 } else if ( name.equalsIgnoreCase( "EPSG:27564" ) ) { 499 addEPSG27564(); 500 } else if ( name.equalsIgnoreCase( "EPSG:27571" ) ) { 501 addEPSG27571(); 502 } else if ( name.equalsIgnoreCase( "EPSG:27572" ) ) { 503 addEPSG27572(); 504 } else if ( name.equalsIgnoreCase( "EPSG:27573" ) ) { 505 addEPSG27573(); 506 } else if ( name.equalsIgnoreCase( "EPSG:27574" ) ) { 507 addEPSG27574(); 508 } else if ( name.equalsIgnoreCase( "EPSG:27581" ) ) { 509 addEPSG27581(); 510 } else if ( name.equalsIgnoreCase( "EPSG:27582" ) ) { 511 addEPSG27582(); 512 } else if ( name.equalsIgnoreCase( "EPSG:27583" ) ) { 513 addEPSG27583(); 514 } else if ( name.equalsIgnoreCase( "EPSG:27584" ) ) { 515 addEPSG27584(); 516 } else if ( name.equalsIgnoreCase( "EPSG:27591" ) ) { 517 addEPSG27591(); 518 } else if ( name.equalsIgnoreCase( "EPSG:27592" ) ) { 519 addEPSG27592(); 520 } else if ( name.equalsIgnoreCase( "EPSG:27593" ) ) { 521 addEPSG27593(); 522 } else if ( name.equalsIgnoreCase( "EPSG:27594" ) ) { 523 addEPSG27594(); 524 } else if ( name.equalsIgnoreCase( "EPSG:27291" ) ) { 525 addEPSG27291(); 526 } else if ( name.equalsIgnoreCase( "EPSG:27292" ) ) { 527 addEPSG27292(); 528 } else if ( name.equalsIgnoreCase( "EPSG:27200" ) ) { 529 addEPSG27200(); 530 } else if ( name.equalsIgnoreCase( "EPSG:26716" ) ) { 531 addEPSG26716(); 532 } else if ( name.equalsIgnoreCase( "EPSG:28992" ) ) { 533 addEPSG28992(); 534 } else if ( name.equalsIgnoreCase( "EPSG:26912" ) ) { 535 addEPSG26912(); 536 } else if ( name.equalsIgnoreCase( "EPSG:2152" ) ) { 537 addEPSG2152(); 538 } 539 return systems.get( name ); 540 } 541 542 /** 543 * 544 */ 545 private void addEPSG4267() { 546 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Clarke 1866", 6378206.4, 294.978698, Unit.METRE ); 547 548 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 549 convInfo.dx = -3; 550 convInfo.dy = 142; 551 convInfo.dz = 183; 552 553 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 554 555 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4267", Unit.DEGREE, horDatum, 556 PrimeMeridian.GREENWICH, 557 AxisInfo.LONGITUDE, 558 AxisInfo.LATITUDE ); 559 save( cs ); 560 } 561 562 private void addEPSG4269() { 563 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1980", 6378137.0, 298.2572221, Unit.METRE ); 564 565 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 566 567 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 568 569 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4269", Unit.DEGREE, horDatum, 570 PrimeMeridian.GREENWICH, 571 AxisInfo.LONGITUDE, 572 AxisInfo.LATITUDE ); 573 save( cs ); 574 } 575 576 /** 577 * Returns the parameter list descriptor for the specified properties list. 578 */ 579 private static ParameterListDescriptor getDescriptor( final Object[] properties ) { 580 final String[] names = new String[properties.length / 4]; 581 final Class[] classes = new Class[names.length]; 582 final Object[] defaults = new Object[names.length]; 583 final Range[] ranges = new Range[names.length]; 584 for ( int i = 0; i < names.length; i++ ) { 585 final int j = i * 4; 586 names[i] = (String) properties[j + 0]; 587 classes[i] = (Class) properties[j + 1]; 588 defaults[i] = properties[j + 2]; 589 ranges[i] = (Range) properties[j + 3]; 590 } 591 return new ParameterListDescriptorImpl( null, names, classes, defaults, ranges ); 592 } 593 594 /** 595 * 596 */ 597 private void addEPSG4326( String name ) { 598 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( name, Unit.DEGREE, 599 HorizontalDatum.WGS84, 600 PrimeMeridian.GREENWICH, 601 AxisInfo.LONGITUDE, 602 AxisInfo.LATITUDE ); 603 604 save( cs ); 605 } 606 607 /** 608 * <p> 609 * Norway - onshore. 610 * </p> 611 * <p> 612 * Geodetic survey. Recommended coordinate axis representation for the human interface. 613 * </p> 614 */ 615 private void addEPSG4817() { 616 Ellipsoid ellipsoid = csFactory.createFlattenedSphere( "NGO 1948 (Oslo)", 6377492.018, 299.1528128, Unit.METRE ); 617 618 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 619 convInfo.dx = 0; 620 convInfo.dy = 0; 621 convInfo.dz = 0; 622 623 HorizontalDatum hz = csFactory.createHorizontalDatum( "NGO 1948 (Oslo)", DatumType.CLASSIC, ellipsoid, convInfo ); 624 625 PrimeMeridian pm = csFactory.createPrimeMeridian( "NGO 1948 (Oslo)", Unit.DEGREE, 10.72291667 ); 626 627 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4817", Unit.DEGREE, hz, pm, 628 AxisInfo.LONGITUDE, 629 AxisInfo.LATITUDE ); 630 631 save( cs ); 632 } 633 634 /** 635 * 636 */ 637 private void addEPSG4322() { 638 Ellipsoid ellipsoid = csFactory.createFlattenedSphere( "WGS 72", 6378135, 298.26, Unit.METRE ); 639 640 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 641 convInfo.dx = 0; 642 convInfo.dy = 0; 643 convInfo.dz = 4.5; 644 convInfo.ex = 0; 645 convInfo.ey = 0; 646 convInfo.ez = 0.554; 647 convInfo.ppm = 0.2263; 648 649 HorizontalDatum hz = csFactory.createHorizontalDatum( "WGS 72", DatumType.CLASSIC, ellipsoid, convInfo ); 650 651 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4322", Unit.DEGREE, hz, 652 PrimeMeridian.GREENWICH, 653 AxisInfo.LONGITUDE, 654 AxisInfo.LATITUDE ); 655 656 save( cs ); 657 } 658 659 /** 660 * 661 */ 662 private void addEPSG4324() { 663 Ellipsoid ellipsoid = csFactory.createFlattenedSphere( "WGS 72BE", 6378135, 298.26, Unit.METRE ); 664 665 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 666 convInfo.dx = 0; 667 convInfo.dy = 0; 668 convInfo.dz = 1.9; 669 convInfo.ex = 0; 670 convInfo.ey = 0; 671 convInfo.ez = 0.814; 672 convInfo.ppm = -0.38; 673 674 HorizontalDatum hz = csFactory.createHorizontalDatum( "WGS 72 Transit Broadcast Ephemeris", DatumType.CLASSIC, 675 ellipsoid, convInfo ); 676 677 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4324", Unit.DEGREE, hz, 678 PrimeMeridian.GREENWICH, 679 AxisInfo.LONGITUDE, 680 AxisInfo.LATITUDE ); 681 682 save( cs ); 683 } 684 685 /** 686 * 687 */ 688 private void addEPSG4314() { 689 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 690 691 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 692 693 // BKG 694 convInfo.dx = 586; 695 convInfo.dy = 87; 696 convInfo.dz = 409; 697 convInfo.ex = 0.52; 698 convInfo.ey = 0.15; 699 convInfo.ez = -2.82; 700 convInfo.ppm = 9; 701 702 // EPSG 703 /* 704 * convInfo.dx = 598.1; convInfo.dy = 73.7; convInfo.dz = 418.2; convInfo.ex = 0.202; 705 * convInfo.ey = 0.045; convInfo.ez = -2.455; convInfo.ppm = 6.7; 706 */ 707 708 /* 709 * convInfo.dx = 582; convInfo.dy = 105; convInfo.dz = 414; convInfo.ex = 1.04; convInfo.ey = 710 * 0.32; convInfo.ez = -3.08; convInfo.ppm = 9; 711 */ 712 713 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 714 715 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4314", Unit.DEGREE, horDatum, 716 PrimeMeridian.GREENWICH, 717 AxisInfo.LONGITUDE, 718 AxisInfo.LATITUDE ); 719 save( cs ); 720 } 721 722 /** 723 * NZGD49 / alias = GD49 724 * <p> 725 * New Zealand 726 * </p> 727 * <p> 728 * Geodetic survey. Recommended coordinate axis representation for the human interface. 729 * Superseded by NZGD49 in March 2000. New Zealand Department of Lands and Surveys Technical 730 * Report No. 1; 1978. 731 * </p> 732 */ 733 private void addEPSG4272() { 734 735 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "International 1924", 6378388.0, 297.0, Unit.METRE ); 736 737 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 738 convInfo.dx = 59.47; 739 convInfo.dy = -5.04; 740 convInfo.dz = 187.44; 741 convInfo.ex = -0.47; 742 convInfo.ey = 0.1; 743 convInfo.ez = -1.024; 744 convInfo.ppm = -4.5993; 745 746 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 747 748 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4272", Unit.DEGREE, horDatum, 749 PrimeMeridian.GREENWICH, 750 AxisInfo.LONGITUDE, 751 AxisInfo.LATITUDE ); 752 save( cs ); 753 } 754 755 /** 756 * 757 */ 758 private void addEPSG4230() { 759 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "International 1924", 6378388.0, 297.0, Unit.METRE ); 760 761 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 762 convInfo.dx = -87; 763 convInfo.dy = -98; 764 convInfo.dz = -121; 765 766 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 767 768 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4230", Unit.DEGREE, horDatum, 769 PrimeMeridian.GREENWICH, 770 AxisInfo.LONGITUDE, 771 AxisInfo.LATITUDE ); 772 save( cs ); 773 } 774 775 /** 776 * 777 */ 778 private void addEPSG4801() { 779 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 780 781 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 782 convInfo.dx = 660.077; 783 convInfo.dy = 13.551; 784 convInfo.dz = 369.344; 785 convInfo.ex = 2.484; 786 convInfo.ey = 1.738; 787 convInfo.ez = 2.939; 788 convInfo.ppm = 5.66; 789 790 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 791 792 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4801", Unit.DEGREE, horDatum, 793 PrimeMeridian.GREENWICH, 794 AxisInfo.LONGITUDE, 795 AxisInfo.LATITUDE ); 796 save( cs ); 797 } 798 799 /** 800 * 801 */ 802 private void addEPSG4806() { 803 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "International 1924", 6378388.0, 297.0, Unit.METRE ); 804 805 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 806 convInfo.dx = -225; 807 convInfo.dy = -65; 808 convInfo.dz = -9; 809 810 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 811 812 PrimeMeridian pm = csFactory.createPrimeMeridian( "Rome", Unit.DEGREE, 12.45233333333333 ); 813 814 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4806", Unit.DEGREE, horDatum, 815 pm, AxisInfo.LONGITUDE, 816 AxisInfo.LATITUDE ); 817 save( cs ); 818 } 819 820 /** 821 * 822 */ 823 private void addEPSG23028() { 824 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 825 826 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 827 828 double centerMeridian = -15.0; 829 double easting = 500000; 830 double northing = 0; 831 double scaleFactor = 0.9996; 832 833 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 834 new Point2D.Double( centerMeridian, 0 ), 835 new Point2D.Double( easting, northing ), scaleFactor ); 836 837 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23028", geoCS, projection, 838 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 839 save( cs ); 840 } 841 842 /** 843 * 844 */ 845 private void addEPSG23029() { 846 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 847 848 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 849 850 double centerMeridian = -9.0; 851 double easting = 500000; 852 double northing = 0; 853 double scaleFactor = 0.9996; 854 855 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 856 new Point2D.Double( centerMeridian, 0 ), 857 new Point2D.Double( easting, northing ), scaleFactor ); 858 859 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23029", geoCS, projection, 860 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 861 save( cs ); 862 } 863 864 /** 865 * 866 */ 867 private void addEPSG23030() { 868 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 869 870 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 871 872 double centerMeridian = -3.0; 873 double easting = 500000; 874 double northing = 0; 875 double scaleFactor = 0.9996; 876 877 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 878 new Point2D.Double( centerMeridian, 0 ), 879 new Point2D.Double( easting, northing ), scaleFactor ); 880 881 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23030", geoCS, projection, 882 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 883 save( cs ); 884 } 885 886 /** 887 * 888 */ 889 private void addEPSG23031() { 890 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 891 892 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 893 894 double centerMeridian = 3.0; 895 double easting = 500000; 896 double northing = 0; 897 double scaleFactor = 0.9996; 898 899 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 900 new Point2D.Double( centerMeridian, 0 ), 901 new Point2D.Double( easting, northing ), scaleFactor ); 902 903 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23031", geoCS, projection, 904 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 905 save( cs ); 906 } 907 908 /** 909 * 910 */ 911 private void addEPSG23032() { 912 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 913 914 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 915 916 double centerMeridian = 9.0; 917 double easting = 500000; 918 double northing = 0; 919 double scaleFactor = 0.9996; 920 921 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 922 new Point2D.Double( centerMeridian, 0 ), 923 new Point2D.Double( easting, northing ), scaleFactor ); 924 925 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23032", geoCS, projection, 926 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 927 save( cs ); 928 } 929 930 /** 931 * 932 */ 933 private void addEPSG23033() { 934 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 935 936 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 937 938 double centerMeridian = 15.0; 939 double easting = 500000; 940 double northing = 0; 941 double scaleFactor = 0.9996; 942 943 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 944 new Point2D.Double( centerMeridian, 0 ), 945 new Point2D.Double( easting, northing ), scaleFactor ); 946 947 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23033", geoCS, projection, 948 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 949 save( cs ); 950 } 951 952 /** 953 * 954 */ 955 private void addEPSG23034() { 956 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 957 958 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 959 960 double centerMeridian = 21.0; 961 double easting = 0; 962 double northing = 0; 963 double scaleFactor = 0.9996; 964 965 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 966 new Point2D.Double( centerMeridian, 0 ), 967 new Point2D.Double( easting, northing ), scaleFactor ); 968 969 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23034", geoCS, projection, 970 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 971 save( cs ); 972 } 973 974 /** 975 * 976 */ 977 private void addEPSG23035() { 978 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 979 980 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 981 982 double centerMeridian = 27.0; 983 double easting = 500000; 984 double northing = 0; 985 double scaleFactor = 0.9996; 986 987 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 988 new Point2D.Double( centerMeridian, 0 ), 989 new Point2D.Double( easting, northing ), scaleFactor ); 990 991 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23035", geoCS, projection, 992 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 993 save( cs ); 994 } 995 996 /** 997 * 998 */ 999 private void addEPSG23036() { 1000 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 1001 1002 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1003 1004 double centerMeridian = 33.0; 1005 double easting = 500000; 1006 double northing = 0; 1007 double scaleFactor = 0.9996; 1008 1009 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1010 new Point2D.Double( centerMeridian, 0 ), 1011 new Point2D.Double( easting, northing ), scaleFactor ); 1012 1013 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23036", geoCS, projection, 1014 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1015 save( cs ); 1016 } 1017 1018 /** 1019 * 1020 */ 1021 private void addEPSG23037() { 1022 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 1023 1024 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1025 1026 double centerMeridian = 39.0; 1027 double easting = 500000; 1028 double northing = 0; 1029 double scaleFactor = 0.9996; 1030 1031 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1032 new Point2D.Double( centerMeridian, 0 ), 1033 new Point2D.Double( easting, northing ), scaleFactor ); 1034 1035 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23037", geoCS, projection, 1036 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1037 save( cs ); 1038 } 1039 1040 /** 1041 * 1042 */ 1043 private void addEPSG23038() { 1044 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 1045 1046 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1047 1048 double centerMeridian = 45.0; 1049 double easting = 500000; 1050 double northing = 0; 1051 double scaleFactor = 0.9996; 1052 1053 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1054 new Point2D.Double( centerMeridian, 0 ), 1055 new Point2D.Double( easting, northing ), scaleFactor ); 1056 1057 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23038", geoCS, projection, 1058 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1059 save( cs ); 1060 } 1061 1062 /** 1063 * 1064 */ 1065 private void addEPSG23090() { 1066 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 1067 1068 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1069 1070 double centerMeridian = 0.0; 1071 double easting = 0; 1072 double northing = 0; 1073 double scaleFactor = 0.9996; 1074 1075 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1076 new Point2D.Double( centerMeridian, 0 ), 1077 new Point2D.Double( easting, northing ), scaleFactor ); 1078 1079 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23090", geoCS, projection, 1080 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1081 save( cs ); 1082 } 1083 1084 /** 1085 * 1086 */ 1087 private void addEPSG23095() { 1088 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 1089 1090 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1091 1092 double centerMeridian = 5.0; 1093 double easting = 0; 1094 double northing = 0; 1095 double scaleFactor = 0.9996; 1096 1097 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1098 new Point2D.Double( centerMeridian, 0 ), 1099 new Point2D.Double( easting, northing ), scaleFactor ); 1100 1101 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:23095", geoCS, projection, 1102 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1103 save( cs ); 1104 } 1105 1106 /** 1107 * German Gauss-Kr�ger Zones 1108 * 1109 * @param code 1110 */ 1111 private void addEPSG3146X( int code ) { 1112 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4314" ); 1113 1114 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1115 1116 double centerMeridian = ( ( code - 6 ) * 3.0 ) + 6; 1117 double easting = 2500000 + ( ( code - 6 ) * 1000000 ); 1118 double northing = 0.0; 1119 double scaleFactor = 1.0; 1120 1121 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1122 new Point2D.Double( centerMeridian, 0 ), 1123 new Point2D.Double( easting, northing ), scaleFactor ); 1124 1125 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:3146" + code, geoCS, 1126 projection, Unit.METRE, AxisInfo.X, 1127 AxisInfo.Y ); 1128 save( cs ); 1129 } 1130 1131 /** 1132 * German Gauss-Kr�ger Zones (old EPSG:code) 1133 * 1134 * @param code 1135 */ 1136 private void addEPSG3149X( int code ) { 1137 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4314" ); 1138 1139 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1140 1141 double centerMeridian = ( code * 3.0 ); 1142 double easting = 2500000 + ( ( code - 2 ) * 1000000 ); 1143 double northing = 0.0; 1144 double scaleFactor = 1.0; 1145 1146 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1147 new Point2D.Double( centerMeridian, 0 ), 1148 new Point2D.Double( easting, northing ), scaleFactor ); 1149 1150 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:3149" + code, geoCS, 1151 projection, Unit.METRE, AxisInfo.X, 1152 AxisInfo.Y ); 1153 save( cs ); 1154 } 1155 1156 /** 1157 * 1158 */ 1159 private void addEPSG4231() { 1160 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "International 1924", 6378388.0, 297.0, Unit.METRE ); 1161 1162 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1163 convInfo.dx = -82.981; 1164 convInfo.dy = -99.719; 1165 convInfo.dz = -110.709; 1166 convInfo.ex = -0.5076; 1167 convInfo.ey = -0.35; 1168 convInfo.ez = 0.3898; 1169 convInfo.ppm = -0.3143; 1170 1171 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1172 1173 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4231", Unit.DEGREE, horDatum, 1174 PrimeMeridian.GREENWICH, 1175 AxisInfo.LONGITUDE, 1176 AxisInfo.LATITUDE ); 1177 save( cs ); 1178 } 1179 1180 /** 1181 * 1182 */ 1183 private void addEPSG4258() { 1184 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1980", 6378137.0, 298.2572221, Unit.METRE ); 1185 1186 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1187 1188 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1189 1190 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4258", Unit.DEGREE, horDatum, 1191 PrimeMeridian.GREENWICH, 1192 AxisInfo.LONGITUDE, 1193 AxisInfo.LATITUDE ); 1194 save( cs ); 1195 } 1196 1197 /** 1198 * 1199 */ 1200 private void addEPSG4150() { 1201 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1202 1203 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1204 convInfo.dx = 674.374; 1205 convInfo.dy = 15.056; 1206 convInfo.dz = 405.346; 1207 1208 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1209 1210 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4150", Unit.DEGREE, horDatum, 1211 PrimeMeridian.GREENWICH, 1212 AxisInfo.LONGITUDE, 1213 AxisInfo.LATITUDE ); 1214 save( cs ); 1215 } 1216 1217 /** 1218 * 1219 */ 1220 private void addEPSG4120() { 1221 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1222 1223 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1224 convInfo.dx = -199.87; 1225 convInfo.dy = 74.79; 1226 convInfo.dz = 246.62; 1227 1228 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1229 1230 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4120", Unit.DEGREE, horDatum, 1231 PrimeMeridian.GREENWICH, 1232 AxisInfo.LONGITUDE, 1233 AxisInfo.LATITUDE ); 1234 save( cs ); 1235 } 1236 1237 /** 1238 * 1239 */ 1240 private void addEPSG4124() { 1241 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1242 1243 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1244 convInfo.dx = 419.3836; 1245 convInfo.dy = 99.3335; 1246 convInfo.dz = 591.3451; 1247 convInfo.ex = -0.850389; 1248 convInfo.ey = -1.817277; 1249 convInfo.ez = 7.862238; 1250 convInfo.ppm = -0.99496; 1251 1252 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1253 1254 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4124", Unit.DEGREE, horDatum, 1255 PrimeMeridian.GREENWICH, 1256 AxisInfo.LONGITUDE, 1257 AxisInfo.LATITUDE ); 1258 save( cs ); 1259 } 1260 1261 /** 1262 * 1263 */ 1264 private void addEPSG4149() { 1265 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1266 1267 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1268 convInfo.dx = 660.077; 1269 convInfo.dy = 13.551; 1270 convInfo.dz = 369.344; 1271 convInfo.ex = 2.484; 1272 convInfo.ey = 1.783; 1273 convInfo.ez = 2.939; 1274 convInfo.ppm = 5.66; 1275 1276 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1277 1278 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4149", Unit.DEGREE, horDatum, 1279 PrimeMeridian.GREENWICH, 1280 AxisInfo.LONGITUDE, 1281 AxisInfo.LATITUDE ); 1282 save( cs ); 1283 } 1284 1285 /** 1286 * 1287 */ 1288 private void addEPSG4151() { 1289 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1980", 6377397.155, 299.1528128, Unit.METRE ); 1290 1291 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1292 convInfo.dx = 674.374; 1293 convInfo.dy = 15.056; 1294 convInfo.dz = 405.346; 1295 1296 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1297 1298 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4151", Unit.DEGREE, horDatum, 1299 PrimeMeridian.GREENWICH, 1300 AxisInfo.LONGITUDE, 1301 AxisInfo.LATITUDE ); 1302 save( cs ); 1303 } 1304 1305 /** 1306 * 1307 */ 1308 private void addEPSG4121() { 1309 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1980", 6378137.0, 298.2572221, Unit.METRE ); 1310 1311 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1312 convInfo.dx = -199.87; 1313 convInfo.dy = 74.79; 1314 convInfo.dz = 246.62; 1315 1316 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1317 1318 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4121", Unit.DEGREE, horDatum, 1319 PrimeMeridian.GREENWICH, 1320 AxisInfo.LONGITUDE, 1321 AxisInfo.LATITUDE ); 1322 save( cs ); 1323 } 1324 1325 /** 1326 * 1327 */ 1328 private void addEPSG4171() { 1329 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1980", 6378137.0, 298.2572221, Unit.METRE ); 1330 1331 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1332 1333 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1334 1335 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4171", Unit.DEGREE, horDatum, 1336 PrimeMeridian.GREENWICH, 1337 AxisInfo.LONGITUDE, 1338 AxisInfo.LATITUDE ); 1339 save( cs ); 1340 } 1341 1342 /** 1343 * 1344 */ 1345 private void addEPSG4173() { 1346 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1980", 6378137.0, 298.2572221, Unit.METRE ); 1347 1348 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1349 1350 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1351 1352 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4173", Unit.DEGREE, horDatum, 1353 PrimeMeridian.GREENWICH, 1354 AxisInfo.LONGITUDE, 1355 AxisInfo.LATITUDE ); 1356 save( cs ); 1357 } 1358 1359 /** 1360 * 1361 */ 1362 private void addEPSG4237() { 1363 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "GRS 1967", 6378160.0, 298.2471674, Unit.METRE ); 1364 1365 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1366 convInfo.dx = -56; 1367 convInfo.dy = 75.77; 1368 convInfo.dz = 15.31; 1369 convInfo.ex = -0.37; 1370 convInfo.ey = -0.2; 1371 convInfo.ez = -0.21; 1372 convInfo.ppm = -1.01; 1373 1374 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1375 1376 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4237", Unit.DEGREE, horDatum, 1377 PrimeMeridian.GREENWICH, 1378 AxisInfo.LONGITUDE, 1379 AxisInfo.LATITUDE ); 1380 save( cs ); 1381 } 1382 1383 /** 1384 * 1385 */ 1386 private void addEPSG4265() { 1387 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "International 1924", 6378388.0, 297.0, Unit.METRE ); 1388 1389 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1390 convInfo.dx = -225; 1391 convInfo.dy = -65; 1392 convInfo.dz = 9; 1393 1394 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1395 1396 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4265", Unit.DEGREE, horDatum, 1397 PrimeMeridian.GREENWICH, 1398 AxisInfo.LONGITUDE, 1399 AxisInfo.LATITUDE ); 1400 save( cs ); 1401 } 1402 1403 /** 1404 * 1405 */ 1406 private void addEPSG4275() { 1407 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Clark 1880 (IGN)", 6378249.2, 293.466021, Unit.METRE ); 1408 1409 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1410 convInfo.dx = -168; 1411 convInfo.dy = -60; 1412 convInfo.dz = 320; 1413 1414 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1415 1416 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4275", Unit.DEGREE, horDatum, 1417 PrimeMeridian.GREENWICH, 1418 AxisInfo.LONGITUDE, 1419 AxisInfo.LATITUDE ); 1420 save( cs ); 1421 } 1422 1423 /** 1424 * 1425 */ 1426 private void addEPSG4807() { 1427 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Clark 1880 (IGN)", 6378249.2, 293.466021, Unit.METRE ); 1428 1429 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1430 convInfo.dx = -168; 1431 convInfo.dy = -60; 1432 convInfo.dz = +320; 1433 1434 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1435 1436 PrimeMeridian pm = csFactory.createPrimeMeridian( "Paris", Unit.DEGREE, 2.337229166666667 ); // 2.5969213 1437 // ); 1438 1439 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4807", Unit.DEGREE, horDatum, 1440 pm, AxisInfo.LONGITUDE, 1441 AxisInfo.LATITUDE ); 1442 save( cs ); 1443 } 1444 1445 /** 1446 * 1447 */ 1448 private void addEPSG4277() { 1449 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Airy 1830", 6377563.0, 299.3249646, Unit.METRE ); 1450 1451 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1452 convInfo.dx = 535.948; 1453 convInfo.dy = -31.357; 1454 convInfo.dz = 665.16; 1455 convInfo.ex = 0.15; 1456 convInfo.ey = 0.247; 1457 convInfo.ez = 0.998; 1458 convInfo.ppm = -21.689; 1459 1460 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1461 1462 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4277", Unit.DEGREE, horDatum, 1463 PrimeMeridian.GREENWICH, 1464 AxisInfo.LONGITUDE, 1465 AxisInfo.LATITUDE ); 1466 save( cs ); 1467 } 1468 1469 /** 1470 * 1471 */ 1472 private void addEPSG4284() { 1473 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Krassowsky 1940", 6378245.0, 298.3, Unit.METRE ); 1474 1475 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1476 convInfo.dx = 21.53219; 1477 convInfo.dy = -97.00027; 1478 convInfo.dz = -60.74046; 1479 convInfo.ex = -0.99548; 1480 convInfo.ey = -0.58147; 1481 convInfo.ez = -0.2418; 1482 convInfo.ppm = -4.5981; 1483 1484 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1485 1486 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4284", Unit.DEGREE, horDatum, 1487 PrimeMeridian.GREENWICH, 1488 AxisInfo.LONGITUDE, 1489 AxisInfo.LATITUDE ); 1490 save( cs ); 1491 } 1492 1493 /** 1494 * 1495 */ 1496 private void addEPSG4289() { 1497 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1498 1499 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1500 convInfo.dx = 593.16; 1501 convInfo.dy = 26.15; 1502 convInfo.dz = 478.54; 1503 convInfo.ex = -6.3239; 1504 convInfo.ey = -0.5008; 1505 convInfo.ez = -5.5487; 1506 convInfo.ppm = 4.0775; 1507 1508 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1509 1510 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4289", Unit.DEGREE, horDatum, 1511 PrimeMeridian.GREENWICH, 1512 AxisInfo.LONGITUDE, 1513 AxisInfo.LATITUDE ); 1514 save( cs ); 1515 } 1516 1517 /** 1518 * 1519 */ 1520 private void addEPSG4299() { 1521 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Airy Modified 1849", 6377340.189, 299.3249646, 1522 Unit.METRE ); 1523 1524 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1525 convInfo.dx = 506; 1526 convInfo.dy = -122; 1527 convInfo.dz = 611; 1528 1529 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1530 1531 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4299", Unit.DEGREE, horDatum, 1532 PrimeMeridian.GREENWICH, 1533 AxisInfo.LONGITUDE, 1534 AxisInfo.LATITUDE ); 1535 save( cs ); 1536 } 1537 1538 /** 1539 * 1540 */ 1541 private void addEPSG4312() { 1542 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1543 1544 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1545 convInfo.dx = 682; 1546 convInfo.dy = -203; 1547 convInfo.dz = 480; 1548 1549 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1550 1551 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4312", Unit.DEGREE, horDatum, 1552 PrimeMeridian.GREENWICH, 1553 AxisInfo.LONGITUDE, 1554 AxisInfo.LATITUDE ); 1555 save( cs ); 1556 } 1557 1558 /** 1559 * 1560 */ 1561 private void addEPSG4308() { 1562 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Bessel 1841", 6377397.155, 299.1528128, Unit.METRE ); 1563 1564 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1565 1566 // ?????? 1567 convInfo.dx = 682; 1568 convInfo.dy = -203; 1569 convInfo.dz = 480; 1570 1571 // ?????? 1572 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1573 1574 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4308", Unit.DEGREE, horDatum, 1575 PrimeMeridian.GREENWICH, 1576 AxisInfo.LONGITUDE, 1577 AxisInfo.LATITUDE ); 1578 save( cs ); 1579 } 1580 1581 /** 1582 * <p> 1583 * Portugal - onshore. 1584 * </p> 1585 * <p> 1586 * Geodetic survey. Recommended coordinate axis representation for the human interface. 1587 * Supersedes Lisbon 1890 system which used Bessel 1841 ellipsoid. Superseded by Datum 73 (code 1588 * 4274). 1589 */ 1590 private void addEPSG4803() { 1591 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Lisbon 1937 (Lisbon)", 6378388, 297, Unit.METRE ); 1592 1593 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1594 1595 // ?????? 1596 convInfo.dx = 0; 1597 convInfo.dy = 0; 1598 convInfo.dz = 0; 1599 1600 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1601 1602 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4803", Unit.DEGREE, horDatum, 1603 PrimeMeridian.GREENWICH, 1604 AxisInfo.LONGITUDE, 1605 AxisInfo.LATITUDE ); 1606 save( cs ); 1607 } 1608 1609 /** 1610 * <p> 1611 * Portugal - onshore. 1612 * </p> 1613 * <p> 1614 * Geodetic survey. Recommended coordinate axis representation for the human interface. 1615 * </p> 1616 */ 1617 private void addEPSG4274() { 1618 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "Datum 73", 6378388, 297, Unit.METRE ); 1619 1620 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1621 1622 convInfo.dx = -231; 1623 convInfo.dy = 102.6; 1624 convInfo.dz = 29.8; 1625 convInfo.ex = -0.615; 1626 convInfo.ey = -0.198; 1627 convInfo.ez = 0.881; 1628 convInfo.ppm = 1.79; 1629 1630 HorizontalDatum horDatum = new HorizontalDatum( "Datum 73", DatumType.CLASSIC, ellipsoid, convInfo ); 1631 1632 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4274", Unit.DEGREE, horDatum, 1633 PrimeMeridian.GREENWICH, 1634 AxisInfo.LONGITUDE, 1635 AxisInfo.LATITUDE ); 1636 save( cs ); 1637 } 1638 1639 /** 1640 * 1641 */ 1642 private void addEPSG4313() { 1643 Ellipsoid ellipsoid = Ellipsoid.createFlattenedSphere( "International 1924", 6378388.0, 297.0, Unit.METRE ); 1644 1645 WGS84ConversionInfo convInfo = new WGS84ConversionInfo(); 1646 convInfo.dx = -99.059; 1647 convInfo.dy = 53.322; 1648 convInfo.dz = -112.486; 1649 convInfo.ex = -0.419; 1650 convInfo.ey = 0.83; 1651 convInfo.ez = -1.885; 1652 convInfo.ppm = 0.999999; 1653 1654 HorizontalDatum horDatum = new HorizontalDatum( "My HorizontalDatum", DatumType.CLASSIC, ellipsoid, convInfo ); 1655 1656 GeographicCoordinateSystem cs = csFactory.createGeographicCoordinateSystem( "EPSG:4313", Unit.DEGREE, horDatum, 1657 PrimeMeridian.GREENWICH, 1658 AxisInfo.LONGITUDE, 1659 AxisInfo.LATITUDE ); 1660 save( cs ); 1661 } 1662 1663 /** 1664 * 1665 */ 1666 private void addEPSG20790() { 1667 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4803" ); 1668 1669 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1670 1671 double centerMeridian = 1.0; 1672 double easting = 200000.0; 1673 double northing = 300000.0; 1674 double scaleFactor = 1.0; 1675 1676 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1677 new Point2D.Double( centerMeridian, 0 ), 1678 new Point2D.Double( easting, northing ), scaleFactor ); 1679 1680 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:20790", geoCS, projection, 1681 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1682 save( cs ); 1683 } 1684 1685 /** 1686 * 1687 */ 1688 private void addEPSG21780() { 1689 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4801" ); 1690 1691 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1692 1693 double centerMeridian = 0.0; 1694 double easting = 0.0; 1695 1696 Projection projection = null; 1697 1698 /* 1699 * implement factory for oblique mercator projection 1700 */ 1701 projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1702 new Point2D.Double( centerMeridian, 0 ), new Point2D.Double( easting, 1703 0 ), 0 ); 1704 1705 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:21780", geoCS, projection, 1706 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1707 save( cs ); 1708 } 1709 1710 /** 1711 * 1712 */ 1713 private void addEPSG21781() { 1714 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4149" ); 1715 1716 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1717 1718 double centerMeridian = 7.495833333; // (7-26-22,5) 1719 double easting = 600000.0; 1720 1721 Projection projection = null; 1722 1723 projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1724 new Point2D.Double( centerMeridian, 0 ), new Point2D.Double( easting, 1725 0 ), 0 ); 1726 1727 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( 1728 "EPSG:21781", 1729 geoCS, 1730 projection, 1731 org.deegree.model.csct.units.Unit.METRE, 1732 AxisInfo.X, AxisInfo.Y ); 1733 save( cs ); 1734 } 1735 1736 /** 1737 * 1738 * 1739 * @param code 1740 */ 1741 private void addEPSG258XX( int code ) { 1742 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4258" ); 1743 1744 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1745 1746 double centerMeridian = ( ( code - 28 ) * 6.0 ) - 15.0; 1747 double easting = 500000.0; 1748 double northing = 0.0; 1749 double scaleFactor = 0.9996; 1750 1751 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1752 new Point2D.Double( centerMeridian, 0 ), 1753 new Point2D.Double( easting, northing ), scaleFactor ); 1754 1755 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:258" + code, geoCS, projection, 1756 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1757 1758 geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4314" ); 1759 1760 ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1761 1762 save( cs ); 1763 } 1764 1765 /** 1766 * 1767 */ 1768 private void addEPSG25884() { 1769 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4258" ); 1770 1771 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1772 1773 double centerMeridian = 24.0; 1774 double easting = 500000.0; 1775 double northing = 0.0; 1776 double scaleFactor = 1.0; 1777 1778 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1779 new Point2D.Double( centerMeridian, 0 ), 1780 new Point2D.Double( easting, northing ), scaleFactor ); 1781 1782 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:25884", geoCS, projection, 1783 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1784 save( cs ); 1785 } 1786 1787 /** 1788 * 1789 */ 1790 private void addEPSG26591() { 1791 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4806" ); 1792 1793 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1794 1795 double centerMeridian = 9.0; 1796 double easting = 1500000.0; 1797 double northing = 0.0; 1798 double scaleFactor = 0.9996; 1799 1800 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1801 new Point2D.Double( centerMeridian, 0 ), 1802 new Point2D.Double( easting, northing ), scaleFactor ); 1803 1804 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:26591", geoCS, projection, 1805 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1806 save( cs ); 1807 } 1808 1809 /** 1810 * 1811 */ 1812 private void addEPSG26592() { 1813 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4806" ); 1814 1815 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1816 1817 double centerMeridian = 15.0; 1818 double easting = 2520000.0; 1819 double northing = 0.0; 1820 double scaleFactor = 0.9996; 1821 1822 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1823 new Point2D.Double( centerMeridian, 0 ), 1824 new Point2D.Double( easting, northing ), scaleFactor ); 1825 1826 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:26592", geoCS, projection, 1827 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1828 save( cs ); 1829 } 1830 1831 /** 1832 * 1833 */ 1834 private void addEPSG27391() { 1835 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1836 1837 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1838 1839 double centerMeridian = 4.66667; // (4-40-0) 1840 double easting = 0.0; 1841 double northing = 0.0; 1842 double scaleFactor = 1.0; 1843 1844 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1845 new Point2D.Double( centerMeridian, 0 ), 1846 new Point2D.Double( easting, northing ), scaleFactor ); 1847 1848 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27391", geoCS, projection, 1849 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1850 save( cs ); 1851 } 1852 1853 /** 1854 * 1855 */ 1856 private void addEPSG27392() { 1857 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1858 1859 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1860 1861 double centerMeridian = 2.33333; // (2-20-0) 1862 double easting = 0.0; 1863 double northing = 0.0; 1864 double scaleFactor = 1.0; 1865 1866 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1867 new Point2D.Double( centerMeridian, 0 ), 1868 new Point2D.Double( easting, northing ), scaleFactor ); 1869 1870 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27392", geoCS, projection, 1871 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1872 save( cs ); 1873 } 1874 1875 /** 1876 * 1877 */ 1878 private void addEPSG27393() { 1879 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1880 1881 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1882 1883 double centerMeridian = 0.0; 1884 double easting = 0.0; 1885 double northing = 0.0; 1886 double scaleFactor = 1.0; 1887 1888 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1889 new Point2D.Double( centerMeridian, 0 ), 1890 new Point2D.Double( easting, northing ), scaleFactor ); 1891 1892 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27393", geoCS, projection, 1893 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1894 save( cs ); 1895 } 1896 1897 /** 1898 * 1899 */ 1900 private void addEPSG27394() { 1901 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1902 1903 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1904 1905 double centerMeridian = 2.50; // (2-30-0) 1906 double easting = 0.0; 1907 double northing = 0.0; 1908 double scaleFactor = 1.0; 1909 1910 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1911 new Point2D.Double( centerMeridian, 0 ), 1912 new Point2D.Double( easting, northing ), scaleFactor ); 1913 1914 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27394", geoCS, projection, 1915 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1916 save( cs ); 1917 } 1918 1919 /** 1920 * 1921 */ 1922 private void addEPSG27395() { 1923 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1924 1925 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1926 1927 double centerMeridian = 6.16667; // (6-10-0) 1928 double easting = 0.0; 1929 double northing = 0.0; 1930 double scaleFactor = 1.0; 1931 1932 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1933 new Point2D.Double( centerMeridian, 0 ), 1934 new Point2D.Double( easting, northing ), scaleFactor ); 1935 1936 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27395", geoCS, projection, 1937 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1938 save( cs ); 1939 } 1940 1941 /** 1942 * 1943 */ 1944 private void addEPSG27396() { 1945 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1946 1947 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1948 1949 double centerMeridian = 10.16667; // (10-10-0) 1950 double easting = 0.0; 1951 double northing = 0.0; 1952 double scaleFactor = 1.0; 1953 1954 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1955 new Point2D.Double( centerMeridian, 0 ), 1956 new Point2D.Double( easting, northing ), scaleFactor ); 1957 1958 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27396", geoCS, projection, 1959 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1960 save( cs ); 1961 } 1962 1963 /** 1964 * 1965 */ 1966 private void addEPSG27397() { 1967 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1968 1969 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1970 1971 double centerMeridian = 14.16667; // (14-10-0) 1972 double easting = 0.0; 1973 double northing = 0.0; 1974 double scaleFactor = 1.0; 1975 1976 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1977 new Point2D.Double( centerMeridian, 0 ), 1978 new Point2D.Double( easting, northing ), scaleFactor ); 1979 1980 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27397", geoCS, projection, 1981 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 1982 save( cs ); 1983 } 1984 1985 /** 1986 * 1987 */ 1988 private void addEPSG27398() { 1989 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4817" ); 1990 1991 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 1992 1993 double centerMeridian = 18.33333; // (18-20-0) 1994 double easting = 0.0; 1995 double northing = 0.0; 1996 double scaleFactor = 1.0; 1997 1998 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 1999 new Point2D.Double( centerMeridian, 0 ), 2000 new Point2D.Double( easting, northing ), scaleFactor ); 2001 2002 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27398", geoCS, projection, 2003 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2004 save( cs ); 2005 } 2006 2007 /** 2008 * 2009 */ 2010 private void addEPSG27429() { 2011 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4274" ); 2012 2013 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2014 2015 double centerMeridian = 9.0; 2016 double easting = 500000.0; 2017 double northing = 0.0; 2018 double scaleFactor = 1.0; 2019 2020 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2021 new Point2D.Double( centerMeridian, 0 ), 2022 new Point2D.Double( easting, northing ), scaleFactor ); 2023 2024 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27429", geoCS, projection, 2025 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2026 save( cs ); 2027 } 2028 2029 /** 2030 * 2031 */ 2032 private void addEPSG27700() { 2033 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4277" ); 2034 2035 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2036 2037 double centerMeridian = -2.0; 2038 double easting = 400000.0; 2039 double northing = -100000.0; 2040 double scaleFactor = 0.9996012717; 2041 2042 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2043 new Point2D.Double( centerMeridian, 0 ), 2044 new Point2D.Double( easting, northing ), scaleFactor ); 2045 2046 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27700", geoCS, projection, 2047 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2048 save( cs ); 2049 } 2050 2051 /** 2052 * 2053 */ 2054 private void addEPSG28402() { 2055 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2056 2057 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2058 2059 double centerMeridian = 9.0; 2060 double easting = 2500000.0; 2061 double northing = 0.0; 2062 double scaleFactor = 1.0; 2063 2064 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2065 new Point2D.Double( centerMeridian, 0 ), 2066 new Point2D.Double( easting, northing ), scaleFactor ); 2067 2068 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28402", geoCS, projection, 2069 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2070 save( cs ); 2071 } 2072 2073 /** 2074 * 2075 */ 2076 private void addEPSG28403() { 2077 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2078 2079 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2080 2081 double centerMeridian = 15.0; 2082 double easting = 3500000.0; 2083 double northing = 0.0; 2084 double scaleFactor = 1.0; 2085 2086 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2087 new Point2D.Double( centerMeridian, 0 ), 2088 new Point2D.Double( easting, northing ), scaleFactor ); 2089 2090 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28403", geoCS, projection, 2091 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2092 save( cs ); 2093 } 2094 2095 /** 2096 * 2097 */ 2098 private void addEPSG28404() { 2099 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2100 2101 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2102 2103 double centerMeridian = 21.0; 2104 double easting = 4500000.0; 2105 double northing = 0.0; 2106 double scaleFactor = 1.0; 2107 2108 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2109 new Point2D.Double( centerMeridian, 0 ), 2110 new Point2D.Double( easting, northing ), scaleFactor ); 2111 2112 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28404", geoCS, projection, 2113 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2114 save( cs ); 2115 } 2116 2117 /** 2118 * 2119 */ 2120 private void addEPSG28405() { 2121 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2122 2123 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2124 2125 double centerMeridian = 27.0; 2126 double easting = 5500000.0; 2127 double northing = 0.0; 2128 double scaleFactor = 1.0; 2129 2130 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2131 new Point2D.Double( centerMeridian, 0 ), 2132 new Point2D.Double( easting, northing ), scaleFactor ); 2133 2134 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28405", geoCS, projection, 2135 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2136 save( cs ); 2137 } 2138 2139 /** 2140 * 2141 */ 2142 private void addEPSG28406() { 2143 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2144 2145 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2146 2147 double centerMeridian = 33.0; 2148 double easting = 6500000.0; 2149 double northing = 0.0; 2150 double scaleFactor = 1.0; 2151 2152 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2153 new Point2D.Double( centerMeridian, 0 ), 2154 new Point2D.Double( easting, northing ), scaleFactor ); 2155 2156 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28406", geoCS, projection, 2157 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2158 save( cs ); 2159 } 2160 2161 /** 2162 * 2163 */ 2164 private void addEPSG28407() { 2165 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2166 2167 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2168 2169 double centerMeridian = 39.0; 2170 double easting = 7500000.0; 2171 double northing = 0.0; 2172 double scaleFactor = 1.0; 2173 2174 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2175 new Point2D.Double( centerMeridian, 0 ), 2176 new Point2D.Double( easting, northing ), scaleFactor ); 2177 2178 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28407", geoCS, projection, 2179 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2180 save( cs ); 2181 } 2182 2183 /** 2184 * 2185 */ 2186 private void addEPSG28408() { 2187 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2188 2189 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2190 2191 double centerMeridian = 45.0; 2192 double easting = 8500000.0; 2193 double northing = 0.0; 2194 double scaleFactor = 1.0; 2195 2196 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2197 new Point2D.Double( centerMeridian, 0 ), 2198 new Point2D.Double( easting, northing ), scaleFactor ); 2199 2200 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28408", geoCS, projection, 2201 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2202 save( cs ); 2203 } 2204 2205 /** 2206 * 2207 */ 2208 private void addEPSG28409() { 2209 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2210 2211 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2212 2213 double centerMeridian = 51.0; 2214 double easting = 9500000.0; 2215 double northing = 0.0; 2216 double scaleFactor = 1.0; 2217 2218 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2219 new Point2D.Double( centerMeridian, 0 ), 2220 new Point2D.Double( easting, northing ), scaleFactor ); 2221 2222 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28409", geoCS, projection, 2223 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2224 save( cs ); 2225 } 2226 2227 /** 2228 * 2229 */ 2230 private void addEPSG28462() { 2231 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2232 2233 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2234 2235 double centerMeridian = 9.0; 2236 double easting = 500000.0; 2237 double northing = 0.0; 2238 double scaleFactor = 1.0; 2239 2240 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2241 new Point2D.Double( centerMeridian, 0 ), 2242 new Point2D.Double( easting, northing ), scaleFactor ); 2243 2244 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28462", geoCS, projection, 2245 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2246 save( cs ); 2247 } 2248 2249 /** 2250 * 2251 * 2252 * @param code 2253 */ 2254 private void addEPSG2846X( int code ) { 2255 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4284" ); 2256 2257 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2258 2259 double centerMeridian = ( code * 6 ) - 3; 2260 double easting = 500000.0; 2261 double northing = 0.0; 2262 double scaleFactor = 1.0; 2263 2264 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2265 new Point2D.Double( centerMeridian, 0 ), 2266 new Point2D.Double( easting, northing ), scaleFactor ); 2267 2268 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:2846X" + code, geoCS, 2269 projection, Unit.METRE, AxisInfo.X, 2270 AxisInfo.Y ); 2271 save( cs ); 2272 } 2273 2274 /** 2275 * 2276 */ 2277 private void addEPSG29900() { 2278 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4299" ); 2279 2280 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2281 2282 double centerMeridian = 8.0; 2283 double easting = 200000.0; 2284 double northing = 250000.0; 2285 double scaleFactor = 1.0; 2286 2287 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2288 new Point2D.Double( centerMeridian, 0 ), 2289 new Point2D.Double( easting, northing ), scaleFactor ); 2290 2291 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:29900", geoCS, projection, 2292 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2293 save( cs ); 2294 } 2295 2296 /** 2297 * 2298 */ 2299 private void addEPSG30800() { 2300 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4299" ); 2301 2302 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2303 2304 double centerMeridian = 15.88277; // 15-48-29,8 2305 double easting = 1500000.0; 2306 double northing = 0.0; 2307 double scaleFactor = 1.0; 2308 2309 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2310 new Point2D.Double( centerMeridian, 0 ), 2311 new Point2D.Double( easting, northing ), scaleFactor ); 2312 2313 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:30800", geoCS, projection, 2314 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2315 save( cs ); 2316 } 2317 2318 /** 2319 * 2320 */ 2321 private void addEPSG31275() { 2322 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2323 2324 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2325 2326 double centerMeridian = 15.0; 2327 double easting = 5500000.0; 2328 double northing = 0.0; 2329 double scaleFactor = 1.0; 2330 2331 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2332 new Point2D.Double( centerMeridian, 0 ), 2333 new Point2D.Double( easting, northing ), scaleFactor ); 2334 2335 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31275", geoCS, projection, 2336 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2337 save( cs ); 2338 } 2339 2340 /** 2341 * 2342 */ 2343 private void addEPSG31276() { 2344 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2345 2346 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2347 2348 double centerMeridian = 18.0; 2349 double easting = 6500000.0; 2350 double northing = 0.0; 2351 double scaleFactor = 1.0; 2352 2353 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2354 new Point2D.Double( centerMeridian, 0 ), 2355 new Point2D.Double( easting, northing ), scaleFactor ); 2356 2357 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31276", geoCS, projection, 2358 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2359 save( cs ); 2360 } 2361 2362 /** 2363 * 2364 */ 2365 private void addEPSG31277() { 2366 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2367 2368 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2369 2370 double centerMeridian = 21.0; 2371 double easting = 7500000.0; 2372 double northing = 0.0; 2373 double scaleFactor = 1.0; 2374 2375 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2376 new Point2D.Double( centerMeridian, 0 ), 2377 new Point2D.Double( easting, northing ), scaleFactor ); 2378 2379 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31277", geoCS, projection, 2380 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2381 save( cs ); 2382 } 2383 2384 /** 2385 * 2386 */ 2387 private void addEPSG31278() { 2388 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2389 2390 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2391 2392 double centerMeridian = 21.0; 2393 double easting = 7500000.0; 2394 double northing = 0.0; 2395 double scaleFactor = 1.0; 2396 2397 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2398 new Point2D.Double( centerMeridian, 0 ), 2399 new Point2D.Double( easting, northing ), scaleFactor ); 2400 2401 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31278", geoCS, projection, 2402 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2403 save( cs ); 2404 } 2405 2406 /** 2407 * 2408 */ 2409 private void addEPSG31281() { 2410 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4314" ); 2411 2412 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2413 2414 double centerMeridian = 28.0; 2415 double easting = 0.0; 2416 double northing = 0.0; 2417 double scaleFactor = 1.0; 2418 2419 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2420 new Point2D.Double( centerMeridian, 0 ), 2421 new Point2D.Double( easting, northing ), scaleFactor ); 2422 2423 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31281", geoCS, projection, 2424 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2425 save( cs ); 2426 } 2427 2428 /** 2429 * 2430 */ 2431 private void addEPSG31282() { 2432 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4314" ); 2433 2434 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2435 2436 double centerMeridian = 31.0; 2437 double easting = 0.0; 2438 double northing = 0.0; 2439 double scaleFactor = 1.0; 2440 2441 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2442 new Point2D.Double( centerMeridian, 0 ), 2443 new Point2D.Double( easting, northing ), scaleFactor ); 2444 2445 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31282", geoCS, projection, 2446 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2447 save( cs ); 2448 } 2449 2450 /** 2451 * 2452 */ 2453 private void addEPSG31283() { 2454 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4314" ); 2455 2456 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2457 2458 double centerMeridian = 34.0; 2459 double easting = 0.0; 2460 double northing = 0.0; 2461 double scaleFactor = 1.0; 2462 2463 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2464 new Point2D.Double( centerMeridian, 0 ), 2465 new Point2D.Double( easting, northing ), scaleFactor ); 2466 2467 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31283", geoCS, projection, 2468 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2469 save( cs ); 2470 } 2471 2472 /** 2473 * 2474 */ 2475 private void addEPSG31284() { 2476 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2477 2478 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2479 2480 double centerMeridian = 10.33333; // 10-20-0 2481 double easting = 150000.0; 2482 double northing = 0.0; 2483 double scaleFactor = 1.0; 2484 2485 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2486 new Point2D.Double( centerMeridian, 0 ), 2487 new Point2D.Double( easting, northing ), scaleFactor ); 2488 2489 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31284", geoCS, projection, 2490 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2491 save( cs ); 2492 } 2493 2494 /** 2495 * 2496 */ 2497 private void addEPSG31285() { 2498 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2499 2500 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2501 2502 double centerMeridian = 13.33333; // 13-20-0 2503 double easting = 450000.0; 2504 double northing = 0.0; 2505 double scaleFactor = 1.0; 2506 2507 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2508 new Point2D.Double( centerMeridian, 0 ), 2509 new Point2D.Double( easting, northing ), scaleFactor ); 2510 2511 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31285", geoCS, projection, 2512 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2513 save( cs ); 2514 } 2515 2516 /** 2517 * 2518 */ 2519 private void addEPSG31286() { 2520 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2521 2522 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2523 2524 double centerMeridian = 16.33333; // 16-20-0 2525 double easting = 750000.0; 2526 double northing = 0.0; 2527 double scaleFactor = 1.0; 2528 2529 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2530 new Point2D.Double( centerMeridian, 0 ), 2531 new Point2D.Double( easting, northing ), scaleFactor ); 2532 2533 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31286", geoCS, projection, 2534 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2535 save( cs ); 2536 } 2537 2538 /** 2539 * 2540 * 2541 * @param code 2542 */ 2543 private void addEPSG322XX( int code ) { 2544 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4322" ); 2545 2546 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2547 2548 double centerMeridian = ( ( code - 28 ) * 6.0 ) - 15.0; 2549 double easting = 500000.0; 2550 double northing = 0.0; 2551 double scaleFactor = 1.0; 2552 2553 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2554 new Point2D.Double( centerMeridian, 0 ), 2555 new Point2D.Double( easting, northing ), scaleFactor ); 2556 2557 String s = null; 2558 2559 if ( code < 10 ) { 2560 s = "EPSG:3220" + code; 2561 } else { 2562 s = "EPSG:322" + code; 2563 } 2564 2565 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( s, geoCS, projection, Unit.METRE, 2566 AxisInfo.X, AxisInfo.Y ); 2567 save( cs ); 2568 } 2569 2570 /** 2571 * 2572 * 2573 * @param code 2574 */ 2575 private void addEPSG324XX( int code ) { 2576 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4324" ); 2577 2578 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2579 2580 double centerMeridian = ( ( code - 28 ) * 6.0 ) - 15.0; 2581 double easting = 500000.0; 2582 double northing = 0.0; 2583 double scaleFactor = 1.0; 2584 2585 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2586 new Point2D.Double( centerMeridian, 0 ), 2587 new Point2D.Double( easting, northing ), scaleFactor ); 2588 String s = null; 2589 2590 if ( code < 10 ) { 2591 s = "EPSG:3240" + code; 2592 } else { 2593 s = "EPSG:324" + code; 2594 } 2595 2596 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( s, geoCS, projection, Unit.METRE, 2597 AxisInfo.X, AxisInfo.Y ); 2598 save( cs ); 2599 } 2600 2601 /** 2602 * 2603 * 2604 * @param code 2605 */ 2606 private void addEPSG326XX( int code ) { 2607 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4326" ); 2608 2609 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2610 2611 double centerMeridian = ( ( code - 28 ) * 6.0 ) - 15.0; 2612 double easting = 500000.0; 2613 double northing = 0.0; 2614 double scaleFactor = 0.9996; 2615 2616 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2617 new Point2D.Double( centerMeridian, 0 ), 2618 new Point2D.Double( easting, northing ), scaleFactor ); 2619 2620 String s = null; 2621 2622 if ( code < 10 ) { 2623 s = "EPSG:3260" + code; 2624 } else { 2625 s = "EPSG:326" + code; 2626 } 2627 2628 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( s, geoCS, projection, Unit.METRE, 2629 AxisInfo.X, AxisInfo.Y ); 2630 save( cs ); 2631 } 2632 2633 /** 2634 * 2635 * 2636 * @param code 2637 */ 2638 private void addEPSG327XX( int code ) { 2639 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4326" ); 2640 2641 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2642 2643 double centerMeridian = ( ( code - 33 ) * 6.0 ) - 15.0; 2644 double easting = 500000.0; 2645 double northing = 1000000.0; 2646 double scaleFactor = 0.9996; 2647 2648 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2649 new Point2D.Double( centerMeridian, 0 ), 2650 new Point2D.Double( easting, northing ), scaleFactor ); 2651 2652 String s = null; 2653 2654 if ( code < 10 ) { 2655 s = "EPSG:3270" + code; 2656 } else { 2657 s = "EPSG:327" + code; 2658 } 2659 2660 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( s, geoCS, projection, Unit.METRE, 2661 AxisInfo.X, AxisInfo.Y ); 2662 save( cs ); 2663 } 2664 2665 /** 2666 * 2667 */ 2668 private void addEPSG32661() { 2669 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4326" ); 2670 2671 if ( geoCS == null ) { 2672 return; 2673 } 2674 2675 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2676 2677 double centerMeridian = 0.0; 2678 double easting = 500000.0; 2679 double northing = 0.0; 2680 double scaleFactor = 1.0; 2681 2682 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2683 new Point2D.Double( centerMeridian, 0 ), 2684 new Point2D.Double( easting, northing ), scaleFactor ); 2685 2686 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:32661", geoCS, projection, 2687 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2688 save( cs ); 2689 } 2690 2691 /** 2692 * 2693 */ 2694 private void addLuRef() { 2695 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4230" ); 2696 2697 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 2698 2699 double centerMeridian = 6.16666666666666666666666; 2700 double centerLat = 49.833333333333333333333333; 2701 double easting = 80000; 2702 double northing = 100000; 2703 double scaleFactor = 1; 2704 2705 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 2706 new Point2D.Double( centerMeridian, centerLat ), 2707 new Point2D.Double( easting, northing ), scaleFactor ); 2708 2709 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "LuRef", geoCS, projection, 2710 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2711 save( cs ); 2712 } 2713 2714 /** 2715 * MGI / Austria Lambert 2716 */ 2717 private void addEPSG31287() { 2718 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4312" ); 2719 2720 if ( geoCS == null ) { 2721 return; 2722 } 2723 2724 ParameterList param = new ParameterListImpl( pld ); 2725 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2726 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2727 param.setParameter( "false_easting", 400000.0 ); 2728 param.setParameter( "false_northing", 400000.0 ); 2729 param.setParameter( "central_meridian", 13.33333333333333 ); 2730 param.setParameter( "latitude_of_origin", 47.5 ); 2731 param.setParameter( "standard_parallel1", 49.0 ); 2732 param.setParameter( "standard_parallel2", 46.0 ); 2733 param.setParameter( "scale_factor", 1.0 ); 2734 2735 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2736 2737 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31287", geoCS, projection, 2738 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2739 save( cs ); 2740 } 2741 2742 /** 2743 * Belge 1972 / Belge Lambert 72 2744 */ 2745 private void addEPSG31300() { 2746 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4313" ); 2747 2748 if ( geoCS == null ) { 2749 return; 2750 } 2751 2752 ParameterList param = new ParameterListImpl( pld ); 2753 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2754 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2755 param.setParameter( "false_easting", 150000.013 ); 2756 param.setParameter( "false_northing", 5400088.438 ); 2757 param.setParameter( "central_meridian", 4.3674866666667 ); 2758 param.setParameter( "latitude_of_origin", 90.0 ); 2759 param.setParameter( "standard_parallel1", 49.8333339 ); 2760 param.setParameter( "standard_parallel2", 51.1666672333333 ); 2761 2762 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2763 2764 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:31300", geoCS, projection, 2765 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2766 save( cs ); 2767 } 2768 2769 /*********************************************************************************************** 2770 * NTF (Paris) / Lambert Nord France 2771 */ 2772 private void addEPSG27561() { 2773 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2774 2775 if ( geoCS == null ) { 2776 return; 2777 } 2778 2779 ParameterList param = new ParameterListImpl( pld ); 2780 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2781 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2782 param.setParameter( "false_easting", 600000.0 ); 2783 param.setParameter( "false_northing", 200000.0 ); 2784 param.setParameter( "central_meridian", 2.33722916666667 ); 2785 param.setParameter( "latitude_of_origin", 49.5 ); 2786 param.setParameter( "standard_parallel1", 48.59852277777780 ); 2787 param.setParameter( "standard_parallel2", 50.39591166666670 ); 2788 param.setParameter( "scale_factor", 0.999877341 ); 2789 2790 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2791 2792 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27561", geoCS, projection, 2793 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2794 save( cs ); 2795 } 2796 2797 /** 2798 * NTF (Paris) / Lambert Centre France 2799 */ 2800 private void addEPSG27562() { 2801 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2802 2803 if ( geoCS == null ) { 2804 return; 2805 } 2806 2807 ParameterList param = new ParameterListImpl( pld ); 2808 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2809 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2810 param.setParameter( "false_easting", 600000.0 ); 2811 param.setParameter( "false_northing", 200000.0 ); 2812 param.setParameter( "central_meridian", 2.33722916666667 ); 2813 param.setParameter( "latitude_of_origin", 46.80 ); 2814 param.setParameter( "standard_parallel1", 45.8989188888889 ); 2815 param.setParameter( "standard_parallel2", 47.6960144444444 ); 2816 param.setParameter( "scale_factor", 0.99987742 ); 2817 2818 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2819 2820 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27562", geoCS, projection, 2821 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2822 save( cs ); 2823 } 2824 2825 /** 2826 * NTF (Paris) / Lambert Sud France 2827 */ 2828 private void addEPSG27563() { 2829 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2830 2831 if ( geoCS == null ) { 2832 return; 2833 } 2834 2835 ParameterList param = new ParameterListImpl( pld ); 2836 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2837 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2838 param.setParameter( "false_easting", 600000.0 ); 2839 param.setParameter( "false_northing", 200000.0 ); 2840 param.setParameter( "central_meridian", 2.33722916666667 ); 2841 param.setParameter( "latitude_of_origin", 44.1 ); 2842 param.setParameter( "standard_parallel1", 43.1992913888888889 ); 2843 param.setParameter( "standard_parallel2", 44.9960938888888889 ); 2844 param.setParameter( "scale_factor", 0.999877499 ); 2845 2846 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2847 2848 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27563", geoCS, projection, 2849 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2850 save( cs ); 2851 } 2852 2853 /** 2854 * NTF (Paris) / Lambert Corse 2855 */ 2856 private void addEPSG27564() { 2857 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2858 2859 if ( geoCS == null ) { 2860 return; 2861 } 2862 2863 ParameterList param = new ParameterListImpl( pld ); 2864 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2865 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2866 param.setParameter( "false_easting", 234.358 ); 2867 param.setParameter( "false_northing", 185861.369 ); 2868 param.setParameter( "central_meridian", 2.33722916666667 ); 2869 param.setParameter( "latitude_of_origin", 42.165 ); 2870 param.setParameter( "standard_parallel1", 41.56038777777778 ); 2871 param.setParameter( "standard_parallel2", 42.76766333333333 ); 2872 param.setParameter( "scale_factor", 0.99994471 ); 2873 2874 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2875 2876 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27564", geoCS, projection, 2877 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2878 save( cs ); 2879 } 2880 2881 /** 2882 * NTF (Paris) / Lambert zone I 2883 */ 2884 private void addEPSG27571() { 2885 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2886 2887 if ( geoCS == null ) { 2888 return; 2889 } 2890 2891 ParameterList param = new ParameterListImpl( pld ); 2892 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2893 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2894 param.setParameter( "false_easting", 600000.0 ); 2895 param.setParameter( "false_northing", 1200000.0 ); 2896 param.setParameter( "central_meridian", 2.33722916666667 ); 2897 param.setParameter( "latitude_of_origin", 49.5 ); 2898 param.setParameter( "standard_parallel1", 48.59852277777780 ); 2899 param.setParameter( "standard_parallel2", 50.39591166666670 ); 2900 param.setParameter( "scale_factor", 0.999877341 ); 2901 2902 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2903 2904 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27571", geoCS, projection, 2905 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2906 save( cs ); 2907 } 2908 2909 /** 2910 * NTF (Paris) / Lambert zone II (France II etendu) 2911 */ 2912 private void addEPSG27572() { 2913 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2914 2915 if ( geoCS == null ) { 2916 return; 2917 } 2918 2919 ParameterList param = new ParameterListImpl( pld ); 2920 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2921 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2922 param.setParameter( "false_easting", 600000.0 ); 2923 param.setParameter( "false_northing", 2200000.0 ); 2924 param.setParameter( "central_meridian", 2.33722916666667 ); 2925 param.setParameter( "latitude_of_origin", 46.8 ); 2926 param.setParameter( "standard_parallel1", 45.8989188888889 ); 2927 param.setParameter( "standard_parallel2", 47.6960144444444 ); 2928 param.setParameter( "scale_factor", 0.99987742 ); 2929 2930 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2931 2932 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27572", geoCS, projection, 2933 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2934 save( cs ); 2935 } 2936 2937 /** 2938 * NTF (Paris) / Lambert zone III 2939 */ 2940 private void addEPSG27573() { 2941 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2942 2943 if ( geoCS == null ) { 2944 return; 2945 } 2946 2947 ParameterList param = new ParameterListImpl( pld ); 2948 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2949 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2950 param.setParameter( "false_easting", 600000.0 ); 2951 param.setParameter( "false_northing", 3200000.0 ); 2952 param.setParameter( "central_meridian", 2.33722916666667 ); 2953 param.setParameter( "latitude_of_origin", 44.1 ); 2954 param.setParameter( "standard_parallel1", 43.1992913888888889 ); 2955 param.setParameter( "standard_parallel2", 44.9960938888888889 ); 2956 param.setParameter( "scale_factor", 0.999877499 ); 2957 2958 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2959 2960 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27573", geoCS, projection, 2961 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2962 save( cs ); 2963 } 2964 2965 /** 2966 * NTF (Paris) / Lambert zone IV 2967 */ 2968 private void addEPSG27574() { 2969 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2970 2971 if ( geoCS == null ) { 2972 return; 2973 } 2974 2975 ParameterList param = new ParameterListImpl( pld ); 2976 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 2977 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 2978 param.setParameter( "false_easting", 234.358 ); 2979 param.setParameter( "false_northing", 4185861.369 ); 2980 param.setParameter( "central_meridian", 2.33722916666667 ); 2981 param.setParameter( "latitude_of_origin", 42.165 ); 2982 param.setParameter( "standard_parallel1", 41.56038777777778 ); 2983 param.setParameter( "standard_parallel2", 42.76766333333333 ); 2984 param.setParameter( "scale_factor", 0.99994471 ); 2985 2986 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 2987 2988 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27574", geoCS, projection, 2989 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 2990 save( cs ); 2991 } 2992 2993 /** 2994 * NTF (Paris) / France I (Deprecated for EPSG version 6.5) 2995 */ 2996 private void addEPSG27581() { 2997 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 2998 2999 if ( geoCS == null ) { 3000 return; 3001 } 3002 3003 ParameterList param = new ParameterListImpl( pld ); 3004 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3005 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3006 param.setParameter( "false_easting", 600000.0 ); 3007 param.setParameter( "false_northing", 1200000.0 ); 3008 param.setParameter( "central_meridian", 2.33722916666667 ); 3009 param.setParameter( "latitude_of_origin", 49.5 ); 3010 param.setParameter( "standard_parallel1", 48.59852277777780 ); 3011 param.setParameter( "standard_parallel2", 50.39591166666670 ); 3012 param.setParameter( "scale_factor", 0.999877341 ); 3013 3014 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3015 3016 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27581", geoCS, projection, 3017 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3018 save( cs ); 3019 } 3020 3021 /** 3022 * NTF (Paris) / France II (France II etendu) (Deprecated for EPSG version 6.5) 3023 */ 3024 private void addEPSG27582() { 3025 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3026 3027 if ( geoCS == null ) { 3028 return; 3029 } 3030 3031 ParameterList param = new ParameterListImpl( pld ); 3032 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3033 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3034 param.setParameter( "false_easting", 600000.0 ); 3035 param.setParameter( "false_northing", 2200000.0 ); 3036 param.setParameter( "central_meridian", 2.33722916666667 ); 3037 param.setParameter( "latitude_of_origin", 46.8 ); 3038 param.setParameter( "standard_parallel1", 45.8989188888889 ); 3039 param.setParameter( "standard_parallel2", 47.6960144444444 ); 3040 param.setParameter( "scale_factor", 0.99987742 ); 3041 3042 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3043 3044 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27582", geoCS, projection, 3045 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3046 save( cs ); 3047 } 3048 3049 /** 3050 * NTF (Paris) / France III (Deprecated for EPSG version 6.5) 3051 */ 3052 private void addEPSG27583() { 3053 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3054 3055 if ( geoCS == null ) { 3056 return; 3057 } 3058 3059 ParameterList param = new ParameterListImpl( pld ); 3060 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3061 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3062 param.setParameter( "false_easting", 600000.0 ); 3063 param.setParameter( "false_northing", 3200000.0 ); 3064 param.setParameter( "central_meridian", 2.33722916666667 ); 3065 param.setParameter( "latitude_of_origin", 44.1 ); 3066 param.setParameter( "standard_parallel1", 43.1992913888888889 ); 3067 param.setParameter( "standard_parallel2", 44.9960938888888889 ); 3068 param.setParameter( "scale_factor", 0.999877499 ); 3069 3070 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3071 3072 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27583", geoCS, projection, 3073 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3074 save( cs ); 3075 } 3076 3077 /** 3078 * NTF (Paris) / France IV (Deprecated for EPSG version 6.5) 3079 */ 3080 private void addEPSG27584() { 3081 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3082 3083 if ( geoCS == null ) { 3084 return; 3085 } 3086 3087 ParameterList param = new ParameterListImpl( pld ); 3088 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3089 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3090 param.setParameter( "false_easting", 234.358 ); 3091 param.setParameter( "false_northing", 4185861.369 ); 3092 param.setParameter( "central_meridian", 2.33722916666667 ); 3093 param.setParameter( "latitude_of_origin", 42.165 ); 3094 param.setParameter( "standard_parallel1", 41.56038777777778 ); 3095 param.setParameter( "standard_parallel2", 42.76766333333333 ); 3096 param.setParameter( "scale_factor", 0.99994471 ); 3097 3098 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3099 3100 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27584", geoCS, projection, 3101 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3102 save( cs ); 3103 } 3104 3105 /** 3106 * NTF (Paris) / Nord France (Deprecated for EPSG version 6.5) 3107 */ 3108 private void addEPSG27591() { 3109 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3110 3111 if ( geoCS == null ) { 3112 return; 3113 } 3114 3115 ParameterList param = new ParameterListImpl( pld ); 3116 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3117 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3118 param.setParameter( "false_easting", 600000.0 ); 3119 param.setParameter( "false_northing", 200000.0 ); 3120 param.setParameter( "central_meridian", 2.33722916666667 ); 3121 param.setParameter( "latitude_of_origin", 49.5 ); 3122 param.setParameter( "standard_parallel1", 48.59852277777780 ); 3123 param.setParameter( "standard_parallel2", 50.39591166666670 ); 3124 param.setParameter( "scale_factor", 0.999877341 ); 3125 3126 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3127 3128 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27591", geoCS, projection, 3129 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3130 save( cs ); 3131 } 3132 3133 /** 3134 * NTF (Paris) / Centre France (Deprecated for EPSG version 6.5) 3135 */ 3136 private void addEPSG27592() { 3137 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3138 3139 if ( geoCS == null ) { 3140 return; 3141 } 3142 3143 ParameterList param = new ParameterListImpl( pld ); 3144 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3145 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3146 param.setParameter( "false_easting", 600000.0 ); 3147 param.setParameter( "false_northing", 200000.0 ); 3148 param.setParameter( "central_meridian", 2.33722916666667 ); 3149 param.setParameter( "latitude_of_origin", 46.80 ); 3150 param.setParameter( "standard_parallel1", 45.8989188888889 ); 3151 param.setParameter( "standard_parallel2", 47.6960144444444 ); 3152 param.setParameter( "scale_factor", 0.99987742 ); 3153 3154 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3155 3156 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27592", geoCS, projection, 3157 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3158 save( cs ); 3159 } 3160 3161 /** 3162 * NTF (Paris) / Sud France (Deprecated for EPSG version 6.5) 3163 */ 3164 private void addEPSG27593() { 3165 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3166 3167 if ( geoCS == null ) { 3168 return; 3169 } 3170 3171 ParameterList param = new ParameterListImpl( pld ); 3172 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3173 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3174 param.setParameter( "false_easting", 600000.0 ); 3175 param.setParameter( "false_northing", 200000.0 ); 3176 param.setParameter( "central_meridian", 2.33722916666667 ); 3177 param.setParameter( "latitude_of_origin", 44.1 ); 3178 param.setParameter( "standard_parallel1", 43.1992913888888889 ); 3179 param.setParameter( "standard_parallel2", 44.9960938888888889 ); 3180 param.setParameter( "scale_factor", 0.999877499 ); 3181 3182 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3183 3184 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27593", geoCS, projection, 3185 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3186 save( cs ); 3187 } 3188 3189 /** 3190 * NTF (Paris) / Corse (Deprecated for EPSG version 6.5) 3191 */ 3192 private void addEPSG27594() { 3193 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4807" ); 3194 3195 if ( geoCS == null ) { 3196 return; 3197 } 3198 3199 ParameterList param = new ParameterListImpl( pld ); 3200 param.setParameter( "semi_major", geoCS.getHorizontalDatum().getEllipsoid().getSemiMajorAxis() ); 3201 param.setParameter( "semi_minor", geoCS.getHorizontalDatum().getEllipsoid().getSemiMinorAxis() ); 3202 param.setParameter( "false_easting", 234.358 ); 3203 param.setParameter( "false_northing", 185861.369 ); 3204 param.setParameter( "central_meridian", 2.33722916666667 ); 3205 param.setParameter( "latitude_of_origin", 42.165 ); 3206 param.setParameter( "standard_parallel1", 41.56038777777778 ); 3207 param.setParameter( "standard_parallel2", 42.76766333333333 ); 3208 param.setParameter( "scale_factor", 0.99994471 ); 3209 3210 Projection projection = csFactory.createProjection( "My projection", "Lambert_Conformal_Conic_2SP", param ); 3211 3212 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27594", geoCS, projection, 3213 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3214 save( cs ); 3215 } 3216 3217 /** 3218 * <p> 3219 * NZGD49 / North Island Grid 3220 * </p> 3221 * <p> 3222 * alias = GD49 / North Island Grid 3223 * </p> 3224 * <p> 3225 * New Zealand - North Island. 3226 * </p> 3227 * <p> 3228 * Large and medium scale topographic mapping and engineering survey. Sears 1922 British 3229 * foot-metre conversion factor applied to ellipsoid. Superseded by 27200 (GD49 / New Zealand 3230 * Map Grid) in 1972. 3231 * </p> 3232 * notice: british yards are used as units! 3233 */ 3234 private void addEPSG27291() { 3235 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4272" ); 3236 3237 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3238 3239 ParameterList param = new ParameterListImpl( pld ); 3240 param.setParameter( "hemisphere", -1 ); 3241 param.setParameter( "semi_major", ellipsoid.getSemiMajorAxis() ); 3242 param.setParameter( "semi_minor", ellipsoid.getSemiMinorAxis() ); 3243 param.setParameter( "false_easting", 300000.0 ); 3244 param.setParameter( "false_northing", 400000.0 ); 3245 param.setParameter( "central_meridian", -175.5 ); 3246 param.setParameter( "latitude_of_origin", -39.0 ); 3247 param.setParameter( "scale_factor", 1.0 ); 3248 3249 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", param ); 3250 3251 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27291", geoCS, projection, 3252 Unit.BRITISHYARD, AxisInfo.X, 3253 AxisInfo.Y ); 3254 save( cs ); 3255 } 3256 3257 /** 3258 * <p> 3259 * NZGD49 / South Island Grid 3260 * </p> 3261 * <p> 3262 * alias = GD49 / South Island Grid 3263 * </p> 3264 * <p> 3265 * New Zealand - South Island. 3266 * </p> 3267 * <p> 3268 * Large and medium scale topographic mapping and engineering survey. Sears 1922 British 3269 * foot-metre conversion factor applied to ellipsoid. Superseded by 27200 (GD49 / New Zealand 3270 * Map Grid) in 1972. 3271 * </p> 3272 * notice: british yards are used as units! 3273 */ 3274 private void addEPSG27292() { 3275 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4272" ); 3276 3277 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3278 3279 ParameterList param = new ParameterListImpl( pld ); 3280 param.setParameter( "hemisphere", -1 ); 3281 param.setParameter( "semi_major", ellipsoid.getSemiMajorAxis() ); 3282 param.setParameter( "semi_minor", ellipsoid.getSemiMinorAxis() ); 3283 param.setParameter( "false_easting", 500000.0 ); 3284 param.setParameter( "false_northing", 500000.0 ); 3285 param.setParameter( "central_meridian", -171.5 ); 3286 param.setParameter( "latitude_of_origin", -44.0 ); 3287 param.setParameter( "scale_factor", 1.0 ); 3288 3289 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", param ); 3290 3291 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27292", geoCS, projection, 3292 Unit.BRITISHYARD, AxisInfo.X, 3293 AxisInfo.Y ); 3294 save( cs ); 3295 } 3296 3297 /** 3298 * <p> 3299 * NNZGD49 / New Zealand Map Grid 3300 * </p> 3301 * <p> 3302 * alias = GD49 / NZ Map Grid 3303 * </p> 3304 * <p> 3305 * New Zealand 3306 * </p> 3307 * <p> 3308 * Large and medium scale topographic mapping and engineering survey. Supersedes 27291 (NZGD49 / 3309 * North Island Grid) and 27292 (NZGD49 / South Island Grid) from 1972. 3310 */ 3311 private void addEPSG27200() { 3312 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4272" ); 3313 3314 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3315 3316 ParameterList param = new ParameterListImpl( pld ); 3317 param.setParameter( "hemisphere", -1 ); 3318 param.setParameter( "semi_major", ellipsoid.getSemiMajorAxis() ); 3319 param.setParameter( "semi_minor", ellipsoid.getSemiMinorAxis() ); 3320 param.setParameter( "false_easting", 2510000.0 ); 3321 param.setParameter( "false_northing", 6023150.0 ); 3322 param.setParameter( "central_meridian", 173.0 ); 3323 param.setParameter( "latitude_of_origin", -41.0 ); 3324 param.setParameter( "scale_factor", 1.0 ); 3325 3326 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", param ); 3327 3328 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:27200", geoCS, projection, 3329 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3330 3331 save( cs ); 3332 } 3333 3334 /** 3335 * 3336 */ 3337 private void addEPSG26716() { 3338 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4267" ); 3339 3340 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3341 3342 double centerMeridian = -87.000000; 3343 double easting = 500000.000000; 3344 double northing = 0.0; 3345 double scaleFactor = 0.9996; 3346 3347 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 3348 new Point2D.Double( centerMeridian, 0 ), 3349 new Point2D.Double( easting, northing ), scaleFactor ); 3350 3351 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:26716", geoCS, projection, 3352 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3353 save( cs ); 3354 } 3355 3356 /** 3357 * <p> 3358 * RD new / Amersfoort Rijksdriehoekstelsel 3359 * </p> 3360 * 3361 * <p> 3362 * The Netherlands 3363 * </p> 3364 * <p> 3365 * Large and medium scale topographic mapping and engineering survey. Supersedes 28991 3366 * (Amersfoort / RD Old) 3367 * 3368 */ 3369 private void addEPSG28992() { 3370 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4289" ); 3371 3372 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3373 ParameterList param = new ParameterListImpl( pld ); 3374 param.setParameter( "semi_major", ellipsoid.getSemiMajorAxis() ); 3375 param.setParameter( "semi_minor", ellipsoid.getSemiMinorAxis() ); 3376 param.setParameter( "false_easting", 155000.0 ); 3377 3378 param.setParameter( "false_northing", 463000.0 ); 3379 param.setParameter( "central_meridian", 5.38763889 ); 3380 param.setParameter( "latitude_of_origin", 52.15616055 ); 3381 param.setParameter( "scale_factor", 0.99990790 ); 3382 3383 Projection projection = csFactory.createProjection( "My projection", "Stereographic", param ); 3384 3385 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:28992", geoCS, projection, 3386 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3387 save( cs ); 3388 } 3389 3390 private void addEPSG26912() { 3391 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4269" ); 3392 3393 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3394 3395 double centerMeridian = -111.0; 3396 double easting = 500000.0; 3397 double northing = 0.0; 3398 double scaleFactor = 0.9996; 3399 3400 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 3401 new Point2D.Double( centerMeridian, 0 ), 3402 new Point2D.Double( easting, northing ), scaleFactor ); 3403 3404 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:26912", geoCS, projection, 3405 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3406 save( cs ); 3407 } 3408 3409 private void addEPSG2152() { 3410 3411 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4269" ); 3412 3413 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3414 3415 double centerMeridian = -111.0; 3416 double easting = 500000.0; 3417 double northing = 0.0; 3418 double scaleFactor = 0.9996; 3419 3420 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 3421 new Point2D.Double( centerMeridian, 0 ), 3422 new Point2D.Double( easting, northing ), scaleFactor ); 3423 3424 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:2152", geoCS, projection, 3425 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3426 save( cs ); 3427 } 3428 3429 private void addEPSG41001() { 3430 GeographicCoordinateSystem geoCS = (GeographicCoordinateSystem) getCSByName( "EPSG:4269" ); 3431 3432 Ellipsoid ellipsoid = geoCS.getHorizontalDatum().getEllipsoid(); 3433 3434 double centerMeridian = -90.0; 3435 double easting = 0.0; 3436 double northing = 0.0; 3437 double scaleFactor = 0.9996; 3438 3439 Projection projection = csFactory.createProjection( "My projection", "Transverse_Mercator", ellipsoid, 3440 new Point2D.Double( centerMeridian, 0 ), 3441 new Point2D.Double( easting, northing ), scaleFactor ); 3442 3443 ProjectedCoordinateSystem cs = csFactory.createProjectedCoordinateSystem( "EPSG:41001", geoCS, projection, 3444 Unit.METRE, AxisInfo.X, AxisInfo.Y ); 3445 save( cs ); 3446 } 3447 3448 }