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 }