Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSFloodplainArtifact.java @ 5540:25c2505df28f
Merged
author | Christian Lins <christian.lins@intevation.de> |
---|---|
date | Wed, 03 Apr 2013 16:00:21 +0200 |
parents | 23d8f2700b38 |
children |
comparison
equal
deleted
inserted
replaced
5539:8d0af912351c | 5540:25c2505df28f |
---|---|
82 public FloodplainState(WMSDBArtifact artifact) { | 82 public FloodplainState(WMSDBArtifact artifact) { |
83 super(artifact); | 83 super(artifact); |
84 riverId = 0; | 84 riverId = 0; |
85 } | 85 } |
86 | 86 |
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 } | |
101 | |
102 protected River getRiver() { | 87 protected River getRiver() { |
103 return RiverFactory.getRiver(getRiverId()); | 88 return RiverFactory.getRiver(getRiverId()); |
104 } | 89 } |
105 | 90 |
106 @Override | 91 @Override |
119 return FLYSUtils.getRiverSrid(river.getName()); | 104 return FLYSUtils.getRiverSrid(river.getName()); |
120 } | 105 } |
121 | 106 |
122 @Override | 107 @Override |
123 protected Envelope getExtent(boolean reproject) { | 108 protected Envelope getExtent(boolean reproject) { |
124 River river = getRiver(); | 109 River river = getRiver(); |
125 Floodplain plain = Floodplain.getFloodplain(river.getName()); | 110 List<Floodplain> fps; |
126 | 111 |
127 Envelope e = plain.getGeom().getEnvelopeInternal(); | 112 String kind = getIdPart(2); |
128 | 113 |
129 return e != null && reproject | 114 if (kind != null && ! kind.equals("1")) { |
130 ? GeometryUtils.transform(e, getSrid()) | 115 fps = Floodplain.getFloodplains(river.getName(), |
131 : e; | 116 getName(), Integer.parseInt(kind)); |
117 } else { | |
118 fps = Floodplain.getFloodplains(river.getName(), 1); | |
119 } | |
120 | |
121 Envelope max = null; | |
122 | |
123 for (Floodplain fp: fps) { | |
124 Envelope env = fp.getGeom().getEnvelopeInternal(); | |
125 | |
126 if (max == null) { | |
127 max = env; | |
128 continue; | |
129 } | |
130 | |
131 max.expandToInclude(env); | |
132 } | |
133 | |
134 return max != null && reproject | |
135 ? GeometryUtils.transform(max, getSrid()) | |
136 : max; | |
132 } | 137 } |
133 | 138 |
134 @Override | 139 @Override |
135 protected String getFilter() { | 140 protected String getFilter() { |
136 return "river_id=" + String.valueOf(getRiverId()); | 141 String kind = getIdPart(2); |
142 if (kind != null && ! kind.equals("1")) { | |
143 return "river_id=" + String.valueOf(getRiverId()) + | |
144 " AND kind_id=" + kind + | |
145 " AND name='" + getName() + "'"; | |
146 } | |
147 return "river_id=" + String.valueOf(getRiverId()) + | |
148 " AND kind_id=1"; | |
137 } | 149 } |
138 | 150 |
139 @Override | 151 @Override |
140 protected String getDataString() { | 152 protected String getDataString() { |
141 String srid = getSrid(); | 153 String srid = getSrid(); |