Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/WMSQPSArtifact.java @ 5472:d7bb32f95220
merged.
author | Raimund Renkert <rrenkert@intevation.de> |
---|---|
date | Wed, 27 Mar 2013 15:59:30 +0100 |
parents | 948a106bc4cd |
children |
comparison
equal
deleted
inserted
replaced
5471:de3c77d35fef | 5472:d7bb32f95220 |
---|---|
75 public static class WMSQPSState extends WMSDBState implements FacetTypes { | 75 public static class WMSQPSState extends WMSDBState implements FacetTypes { |
76 | 76 |
77 private static final Logger logger = | 77 private static final Logger logger = |
78 Logger.getLogger(WMSQPSState.class); | 78 Logger.getLogger(WMSQPSState.class); |
79 | 79 |
80 protected int riverId; | |
81 | |
82 public WMSQPSState(WMSDBArtifact artifact) { | 80 public WMSQPSState(WMSDBArtifact artifact) { |
83 super(artifact); | 81 super(artifact); |
84 riverId = 0; | |
85 } | |
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 } | 82 } |
101 | 83 |
102 @Override | 84 @Override |
103 protected String getFacetType() { | 85 protected String getFacetType() { |
104 return FLOODMAP_QPS; | 86 return FLOODMAP_QPS; |
116 } | 98 } |
117 | 99 |
118 @Override | 100 @Override |
119 protected Envelope getExtent(boolean reproject) { | 101 protected Envelope getExtent(boolean reproject) { |
120 River river = RiverFactory.getRiver(getRiverId()); | 102 River river = RiverFactory.getRiver(getRiverId()); |
103 List<CrossSectionTrack> qps; | |
121 | 104 |
122 List<CrossSectionTrack> qps = | 105 String kind = getIdPart(2); |
123 CrossSectionTrack.getCrossSectionTrack(river.getName()); | 106 |
107 if (kind != null && kind.equals("1")) { | |
108 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(), | |
109 Integer.parseInt(kind)); | |
110 } else if (kind != null) { | |
111 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(), | |
112 getName(), Integer.parseInt(kind)); | |
113 } else { | |
114 qps = CrossSectionTrack.getCrossSectionTrack(river.getName(), | |
115 getName()); | |
116 } | |
124 | 117 |
125 Envelope max = null; | 118 Envelope max = null; |
126 | 119 |
127 for (CrossSectionTrack qp: qps) { | 120 for (CrossSectionTrack qp: qps) { |
128 Envelope env = qp.getGeom().getEnvelopeInternal(); | 121 Envelope env = qp.getGeom().getEnvelopeInternal(); |
140 : max; | 133 : max; |
141 } | 134 } |
142 | 135 |
143 @Override | 136 @Override |
144 protected String getFilter() { | 137 protected String getFilter() { |
145 return "river_id=" + String.valueOf(getRiverId()); | 138 String kind = getIdPart(2); |
139 if (kind != null && kind.equals("1")) { | |
140 // There can be several layers named qps that differ in kind | |
141 return "river_id=" + String.valueOf(getRiverId()) + | |
142 " AND kind_id=" + kind; | |
143 } else if (kind != null) { | |
144 return "river_id=" + String.valueOf(getRiverId()) + | |
145 " AND kind_id=" + kind + | |
146 " AND name='" + getName() + "'"; | |
147 } | |
148 return "river_id=" + String.valueOf(getRiverId()) + | |
149 " AND name='" + getName() + "'"; | |
146 } | 150 } |
147 | 151 |
148 @Override | 152 @Override |
149 protected String getDataString() { | 153 protected String getDataString() { |
150 String srid = getSrid(); | 154 String srid = getSrid(); |