// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.opendata.core.io; import static org.openstreetmap.josm.tools.I18n.tr; import java.util.regex.Matcher; import org.openstreetmap.josm.data.projection.Projection; import org.openstreetmap.josm.data.projection.Projections; public class LambertCC9ZonesProjectionPatterns extends ProjectionPatterns { public static final Projection[] lambertCC9Zones = new Projection[9]; static { for (int i = 0; i < lambertCC9Zones.length; i++) { lambertCC9Zones[i] = Projections.getProjectionByCode("EPSG:"+Integer.toString(3942+i)); } } public LambertCC9ZonesProjectionPatterns(String proj) { super(proj); } @Override public Projection getProjection(String xFieldName, String yFieldName) { Matcher mx = getXPattern().matcher(xFieldName); Matcher my = getYPattern().matcher(yFieldName); mx.find(); my.find(); String ccx = mx.group(1); String ccy = mx.group(1); if (!ccx.equals(ccy)) { throw new IllegalArgumentException( tr("''Lambert CC 9 zones'' coordinates found with different zone codes for X and Y: "+xFieldName+", "+yFieldName)); } return lambertCC9Zones[Integer.parseInt(ccx)-42]; } }