Mercurial > dive4elements > gnv-client
comparison gnv-artifacts/src/main/java/de/intevation/gnv/chart/ChartFactory.java @ 82:5eb62df21f9a
Added Support for Vertical Profiles Marnet, STAUN, IMIS
gnv-artifacts/trunk@111 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Tim Englich <tim.englich@intevation.de> |
---|---|
date | Tue, 22 Sep 2009 13:20:30 +0000 |
parents | d117fd4b82e5 |
children | 5d4f5d26bb7a |
comparison
equal
deleted
inserted
replaced
81:9b41f3688610 | 82:5eb62df21f9a |
---|---|
242 maxGap = (dEnd.getTime() - dStart.getTime())/(pEnd-pStart) + 1000; | 242 maxGap = (dEnd.getTime() - dStart.getTime())/(pEnd-pStart) + 1000; |
243 | 243 |
244 if (sDebug) | 244 if (sDebug) |
245 sLogger.debug("MaxGap : "+maxGap/1000+" Länge : "+(dEnd.getTime() - dStart.getTime())/1000+ | 245 sLogger.debug("MaxGap : "+maxGap/1000+" Länge : "+(dEnd.getTime() - dStart.getTime())/1000+ |
246 "Intervall "+(dEnd.getTime() - dStart.getTime())/(pEnd-pStart)/1000); | 246 "Intervall "+(dEnd.getTime() - dStart.getTime())/(pEnd-pStart)/1000); |
247 lDate = lRow0.getDate("TIMEVALUE"); | 247 lDate = lRow0.getDate("XORDINATE"); |
248 lDate0 = lDate; | 248 lDate0 = lDate; |
249 lValue = lRow0.getDouble("DATAVALUE"); | 249 lValue = lRow0.getDouble("YORDINATE"); |
250 if (lValue > lLowerCut && lValue < lUpperCut){ | 250 if (lValue > lLowerCut && lValue < lUpperCut){ |
251 //lTimeseries.addOrUpdate(new Minute(lDate), lValue); | 251 //lTimeseries.addOrUpdate(new Minute(lDate), lValue); |
252 lTimeseries.add(new Minute(lDate), lValue); | 252 lTimeseries.add(new Minute(lDate), lValue); |
253 } | 253 } |
254 } | 254 } |
255 //for (int i = pStart+1; i <= pEnd; i++) { | 255 //for (int i = pStart+1; i <= pEnd; i++) { |
256 lRow1 =lRow; | 256 lRow1 =lRow; |
257 lDate = lRow1.getDate("TIMEVALUE"); | 257 lDate = lRow1.getDate("XORDINATE"); |
258 lValue = lRow1.getDouble("DATAVALUE"); | 258 lValue = lRow1.getDouble("YORDINATE"); |
259 lDateDiff = lDate.getTime() - lDate0.getTime(); | 259 lDateDiff = lDate.getTime() - lDate0.getTime(); |
260 if (lDateDiff > maxGap) { | 260 if (lDateDiff > maxGap) { |
261 // add 1 minute in millisecs to left hand side Date | 261 // add 1 minute in millisecs to left hand side Date |
262 // and insert Dummy to break line | 262 // and insert Dummy to break line |
263 lDate0.setTime((lDate0.getTime() + 60000)); | 263 lDate0.setTime((lDate0.getTime() + 60000)); |
296 int lUpperCut, int lLowerCut,Collection<KeyValueDescibeData> parameters, Collection<KeyValueDescibeData> measurements) throws TechnicalChartException { | 296 int lUpperCut, int lLowerCut,Collection<KeyValueDescibeData> parameters, Collection<KeyValueDescibeData> measurements) throws TechnicalChartException { |
297 | 297 |
298 TimeSeriesCollection lTimeSeriesCollection = new TimeSeriesCollection(); | 298 TimeSeriesCollection lTimeSeriesCollection = new TimeSeriesCollection(); |
299 try{ | 299 try{ |
300 Date dStart = null, dEnd= null; | 300 Date dStart = null, dEnd= null; |
301 int break1, break2, break3; | 301 String break1, break2, break3; |
302 int mStart = 0; | 302 int mStart = 0; |
303 int mEnd = 0; | 303 int mEnd = 0; |
304 | 304 |
305 | 305 |
306 Iterator<Result> resultIterator = resultSet.iterator(); | 306 Iterator<Result> resultIterator = resultSet.iterator(); |
307 if (resultIterator.hasNext()){ | 307 if (resultIterator.hasNext()){ |
308 // Row row = new Row(sArrayStrLine); | 308 // Row row = new Row(sArrayStrLine); |
309 Result row = resultIterator.next(); | 309 Result row = resultIterator.next(); |
310 | 310 |
311 break1 = row.getInteger("PARAMETERID").intValue(); // 2 | 311 break1 = row.getString("GROUP1"); // 2 |
312 break2 = row.getInteger("MEASUREMENTID").intValue(); //3 | 312 break2 = row.getString("GROUP2"); //3 |
313 break3 = row.getInteger("TIMESERIESID").intValue(); // 4 | 313 break3 = row.getString("GROUP3"); // 4 |
314 dStart = row.getDate("TIMEVALUE"); | 314 dStart = row.getDate("XORDINATE"); |
315 int i = 1; | 315 int i = 1; |
316 while (resultIterator.hasNext()) { | 316 while (resultIterator.hasNext()) { |
317 row = resultIterator.next(); | 317 row = resultIterator.next(); |
318 if (break1 != row.getInteger("PARAMETERID").intValue() | 318 if (!break1.equals(row.getString("GROUP1")) |
319 || break2 != row.getInteger("MEASUREMENTID").intValue() | 319 || !break2 .equals(row.getString("GROUP2")) |
320 || break3 != row.getInteger("TIMESERIESID").intValue()){ | 320 || !break3.equals(row.getString("GROUP3"))){ |
321 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+ | 321 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+ |
322 findValueTitle(measurements,break2)+"m"; | 322 findValueTitle(measurements,break2)+"m"; |
323 | 323 |
324 lTimeSeriesCollection.addSeries(createTimeSeries(mTimeSeriesName, | 324 lTimeSeriesCollection.addSeries(createTimeSeries(mTimeSeriesName, |
325 resultSet, lUpperCut, lLowerCut, mStart, mEnd, dStart, dEnd)); | 325 resultSet, lUpperCut, lLowerCut, mStart, mEnd, dStart, dEnd)); |
326 mStart = i; | 326 mStart = i; |
327 dStart = row.getDate("TIMEVALUE"); | 327 dStart = row.getDate("XORDINATE"); |
328 break1 = row.getInteger("PARAMETERID").intValue(); | 328 break1 = row.getString("GROUP1"); |
329 break2 = row.getInteger("MEASUREMENTID").intValue(); //3 | 329 break2 = row.getString("GROUP2"); //3 |
330 break3 = row.getInteger("TIMESERIESID").intValue(); // 4 | 330 break3 = row.getString("GROUP3"); // 4 |
331 | 331 |
332 } | 332 } |
333 mEnd = i; | 333 mEnd = i; |
334 //mEnd ++; | 334 //mEnd ++; |
335 dEnd = row.getDate("TIMEVALUE"); | 335 dEnd = row.getDate("XORDINATE"); |
336 i = i + 1; | 336 i = i + 1; |
337 } | 337 } |
338 | 338 |
339 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+ | 339 String mTimeSeriesName = findValueTitle(parameters,break1)+" "+ |
340 findValueTitle(measurements,break2)+"m"; | 340 findValueTitle(measurements,break2)+"m"; |
367 | 367 |
368 lEncoder.encode(lImage, outputStream); | 368 lEncoder.encode(lImage, outputStream); |
369 | 369 |
370 } | 370 } |
371 | 371 |
372 private String findValueTitle(Collection<KeyValueDescibeData> values,int pMmtId){ | 372 private String findValueTitle(Collection<KeyValueDescibeData> values, String pMmtId){ |
373 Iterator<KeyValueDescibeData> it = values.iterator(); | 373 int id = 0; |
374 try { | |
375 id = Integer.parseInt(pMmtId); | |
376 } catch (NumberFormatException e) { | |
377 sLogger.warn(e,e); | |
378 return pMmtId; | |
379 } | |
380 | |
381 Iterator<KeyValueDescibeData> it = values.iterator(); | |
374 while(it.hasNext()){ | 382 while(it.hasNext()){ |
375 KeyValueDescibeData data = it.next(); | 383 KeyValueDescibeData data = it.next(); |
376 if ((long) pMmtId ==data.getKey()){ | 384 if (id ==Integer.parseInt(data.getKey())){ // TODO just a hack |
377 return data.getValue(); | 385 return data.getValue(); |
378 } | 386 } |
379 } | 387 } |
380 return ""; | 388 return ""; |
381 } | 389 } |