Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/RiverAxisArtifact.java @ 5481:5187911f5d45
Merged
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Wed, 27 Mar 2013 20:19:32 +0100 |
parents | ae60bb7b8085 |
children |
comparison
equal
deleted
inserted
replaced
5480:7a68967ca72a | 5481:5187911f5d45 |
---|---|
9 import de.intevation.artifacts.ArtifactFactory; | 9 import de.intevation.artifacts.ArtifactFactory; |
10 import de.intevation.artifacts.CallMeta; | 10 import de.intevation.artifacts.CallMeta; |
11 import de.intevation.flys.artifacts.model.FacetTypes; | 11 import de.intevation.flys.artifacts.model.FacetTypes; |
12 import de.intevation.flys.artifacts.model.RiverFactory; | 12 import de.intevation.flys.artifacts.model.RiverFactory; |
13 import de.intevation.flys.model.River; | 13 import de.intevation.flys.model.River; |
14 import de.intevation.flys.model.RiverAxis; | |
14 import de.intevation.flys.utils.FLYSUtils; | 15 import de.intevation.flys.utils.FLYSUtils; |
15 import de.intevation.flys.utils.GeometryUtils; | 16 import de.intevation.flys.utils.GeometryUtils; |
16 | 17 |
17 import java.util.List; | 18 import java.util.List; |
18 | 19 |
78 | 79 |
79 public RiverAxisState(){} | 80 public RiverAxisState(){} |
80 | 81 |
81 public RiverAxisState(FLYSArtifact artifact) { | 82 public RiverAxisState(FLYSArtifact artifact) { |
82 super(artifact); | 83 super(artifact); |
83 riverId = 0; | |
84 } | |
85 | |
86 @Override | |
87 public int getRiverId() { | |
88 if (riverId == 0) { | |
89 String ids = artifact.getDataAsString("ids"); | |
90 | |
91 try { | |
92 riverId = Integer.parseInt(ids); | |
93 } | |
94 catch (NumberFormatException nfe) { | |
95 logger.error("Cannot parse river id from '" + ids + "'"); | |
96 } | |
97 } | |
98 | |
99 return riverId; | |
100 } | 84 } |
101 | 85 |
102 @Override | 86 @Override |
103 protected String getFacetType() { | 87 protected String getFacetType() { |
104 return FLOODMAP_RIVERAXIS; | 88 return FLOODMAP_RIVERAXIS; |
121 } | 105 } |
122 | 106 |
123 @Override | 107 @Override |
124 protected Envelope getExtent(boolean reproject) { | 108 protected Envelope getExtent(boolean reproject) { |
125 River river = RiverFactory.getRiver(getRiverId()); | 109 River river = RiverFactory.getRiver(getRiverId()); |
110 List<RiverAxis> axes; | |
126 | 111 |
127 if (reproject) { | 112 String kind = getIdPart(2); |
128 logger.debug("Query extent for RiverAxis with Srid: " + getSrid()); | 113 |
129 return GeometryUtils.transform( | 114 if (kind != null && kind.equals("1")) { |
130 GeometryUtils.getRiverBoundary(river.getName()), | 115 axes = RiverAxis.getRiverAxis(river.getName(), |
131 getSrid()); | 116 Integer.parseInt(kind)); |
117 } else if (kind != null) { | |
118 axes = RiverAxis.getRiverAxis(river.getName(), | |
119 getName(), Integer.parseInt(kind)); | |
120 } else { | |
121 if (reproject) { | |
122 logger.debug("Query extent for RiverAxis with Srid: " + getSrid()); | |
123 return GeometryUtils.transform( | |
124 GeometryUtils.getRiverBoundary(river.getName()), | |
125 getSrid()); | |
126 } else { | |
127 return GeometryUtils.transform( | |
128 GeometryUtils.getRiverBoundary(river.getName()), | |
129 "31467"); | |
130 } | |
132 } | 131 } |
133 else { | 132 |
134 return GeometryUtils.transform( | 133 Envelope max = null; |
135 GeometryUtils.getRiverBoundary(river.getName()), | 134 |
136 "31467"); | 135 for (RiverAxis ax: axes) { |
136 Envelope env = ax.getGeom().getEnvelopeInternal(); | |
137 | |
138 if (max == null) { | |
139 max = env; | |
140 continue; | |
141 } | |
142 | |
143 max.expandToInclude(env); | |
137 } | 144 } |
145 | |
146 return max != null && reproject | |
147 ? GeometryUtils.transform(max, getSrid()) | |
148 : max; | |
138 } | 149 } |
139 | 150 |
140 @Override | 151 @Override |
141 protected String getFilter() { | 152 protected String getFilter() { |
142 return "river_id=" + String.valueOf(getRiverId()); | 153 String kind = getIdPart(2); |
154 if (kind != null && kind.equals("1")) { | |
155 return "river_id=" + String.valueOf(getRiverId()) + | |
156 " AND kind_id=" + kind; | |
157 } else if (kind != null) { | |
158 return "river_id=" + String.valueOf(getRiverId()) + | |
159 " AND kind_id=" + kind + | |
160 " AND name='" + getName() + "'"; | |
161 } else if (getIdPart(1) != null) { | |
162 return "river_id=" + String.valueOf(getRiverId()) + | |
163 " AND name='" + getName() + "'"; | |
164 } | |
165 return "river_id=" + String.valueOf(getRiverId()) + | |
166 " AND kind_id=" + kind; | |
143 } | 167 } |
144 | 168 |
145 @Override | 169 @Override |
146 protected String getDataString() { | 170 protected String getDataString() { |
147 if (FLYSUtils.isUsingOracle()) { | 171 if (FLYSUtils.isUsingOracle()) { |