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();

http://dive4elements.wald.intevation.org