82 |
82 |
File f = new File(file);
|
83 |
83 |
Document doc = db.parse(f);
|
84 |
84 |
|
85 |
|
if(doc.getDocumentElement().getTagName().equals("GeoPoints")){
|
86 |
|
NodeList nodeList = doc.getDocumentElement().getChildNodes();
|
87 |
|
lyrPoints.clear();
|
88 |
|
for(int i=0;i<nodeList.getLength();i++){
|
89 |
|
Node node = nodeList.item(i);
|
90 |
|
if(node.getNodeName().equals("FLyrGeoRaster")){
|
91 |
|
NodeList nl = node.getChildNodes();
|
92 |
|
lastViewPort = processFlyrGeoRasterNodeValue(nl);
|
|
85 |
if(doc.getDocumentElement().getTagName().equals(RasterMetaFileTags.MAIN_TAG)){
|
|
86 |
NodeList nodeListMain = doc.getDocumentElement().getChildNodes();
|
|
87 |
for(int j=0;j<nodeListMain.getLength();j++){
|
|
88 |
Node nodeMain = nodeListMain.item(j);
|
|
89 |
if(nodeMain.getNodeName().equals(RasterMetaFileTags.GEOPOINTS)){
|
|
90 |
|
|
91 |
NodeList nodeListGeoPoints = nodeMain.getChildNodes();
|
|
92 |
lyrPoints.clear();
|
|
93 |
for(int i=0;i<nodeListGeoPoints.getLength();i++){
|
|
94 |
Node node = nodeListGeoPoints.item(i);
|
|
95 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_LYR)){
|
|
96 |
NodeList nl = node.getChildNodes();
|
|
97 |
lastViewPort = processFlyrGeoRasterNodeValue(nl);
|
|
98 |
}
|
|
99 |
if(node.getNodeName().equals(RasterMetaFileTags.GEOPOINT)){
|
|
100 |
NodeList nl = node.getChildNodes();
|
|
101 |
processGeoPointNodeValue(nl);
|
|
102 |
}
|
|
103 |
}
|
|
104 |
this.geoPointList = lyrPoints.getListPoint();
|
|
105 |
|
93 |
106 |
}
|
94 |
|
if(node.getNodeName().equals("GeoPoint")){
|
95 |
|
NodeList nl = node.getChildNodes();
|
96 |
|
processGeoPointNodeValue(nl);
|
97 |
|
}
|
98 |
107 |
}
|
99 |
|
this.geoPointList = lyrPoints.getListPoint();
|
100 |
108 |
}
|
101 |
109 |
} catch (ParserConfigurationException e) {
|
102 |
110 |
return;
|
... | ... | |
121 |
129 |
System.out.println(e);
|
122 |
130 |
}
|
123 |
131 |
|
124 |
|
generalTag = xmlDoc.createElement("GeoPoints");
|
|
132 |
generalTag = xmlDoc.createElement(RasterMetaFileTags.GEOPOINTS);
|
125 |
133 |
xmlDoc.appendChild(generalTag);
|
126 |
134 |
|
127 |
135 |
createXMLFLyrGeoRasterNode(lyrPoints.getLyrGeoRaster());
|
... | ... | |
194 |
202 |
double[] res = null;
|
195 |
203 |
for(int j=0;j<nl.getLength();j++){
|
196 |
204 |
Node geoNode = nl.item(j);
|
197 |
|
if(geoNode.getNodeName().equals("ViewPort")){
|
|
205 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.POINTS_VP)){
|
198 |
206 |
res = new double[4];
|
199 |
207 |
NodeList vpChildNodes = geoNode.getChildNodes();
|
200 |
208 |
for(int i=0;i<vpChildNodes.getLength();i++){
|
201 |
209 |
Node vpNode = vpChildNodes.item(i);
|
202 |
|
if(vpNode.getNodeName().equals("Extent")){
|
|
210 |
if(vpNode.getNodeName().equals(RasterMetaFileTags.POINTS_BBOX)){
|
203 |
211 |
NodeList extentChildNodes = vpNode.getChildNodes();
|
204 |
212 |
for(int k=0;k<extentChildNodes.getLength();k++){
|
205 |
213 |
Node extentNode = extentChildNodes.item(k);
|
206 |
|
if(extentNode.getNodeName().equals("X"))
|
|
214 |
if(extentNode.getNodeName().equals(RasterMetaFileTags.POINTS_PX))
|
207 |
215 |
res[0] = Double.valueOf(extentNode.getFirstChild().getNodeValue()).doubleValue();
|
208 |
|
if(extentNode.getNodeName().equals("Y"))
|
|
216 |
if(extentNode.getNodeName().equals(RasterMetaFileTags.POINTS_PY))
|
209 |
217 |
res[1] = Double.valueOf(extentNode.getFirstChild().getNodeValue()).doubleValue();
|
210 |
|
if(extentNode.getNodeName().equals("Width"))
|
|
218 |
if(extentNode.getNodeName().equals(RasterMetaFileTags.POINTS_W))
|
211 |
219 |
res[2] = Double.valueOf(extentNode.getFirstChild().getNodeValue()).doubleValue();
|
212 |
|
if(extentNode.getNodeName().equals("Height"))
|
|
220 |
if(extentNode.getNodeName().equals(RasterMetaFileTags.POINTS_H))
|
213 |
221 |
res[3] = Double.valueOf(extentNode.getFirstChild().getNodeValue()).doubleValue();
|
214 |
222 |
}
|
215 |
223 |
}
|
... | ... | |
230 |
238 |
boolean active = false;
|
231 |
239 |
for(int j=0;j<nl.getLength();j++){
|
232 |
240 |
Node geoNode = nl.item(j);
|
233 |
|
if(geoNode.getNodeName().equals("PixelX"))
|
|
241 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_PX))
|
234 |
242 |
pX = Double.valueOf(geoNode.getFirstChild().getNodeValue()).doubleValue();
|
235 |
|
if(geoNode.getNodeName().equals("PixelY"))
|
|
243 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_PY))
|
236 |
244 |
pY = Double.valueOf(geoNode.getFirstChild().getNodeValue()).doubleValue();
|
237 |
|
if(geoNode.getNodeName().equals("MapX"))
|
|
245 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_MAPX))
|
238 |
246 |
mX = Double.valueOf(geoNode.getFirstChild().getNodeValue()).doubleValue();
|
239 |
|
if(geoNode.getNodeName().equals("MapY"))
|
|
247 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_MAPY))
|
240 |
248 |
mY = Double.valueOf(geoNode.getFirstChild().getNodeValue()).doubleValue();
|
241 |
|
if(geoNode.getNodeName().equals("Active"))
|
|
249 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_ACTIVE))
|
242 |
250 |
active = Boolean.valueOf(geoNode.getFirstChild().getNodeValue()).booleanValue();
|
243 |
|
if(geoNode.getNodeName().equals("LeftCenterPoint"))
|
|
251 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_LCENTER))
|
244 |
252 |
leftCenter = processCenterPoint(geoNode.getChildNodes());
|
245 |
|
if(geoNode.getNodeName().equals("RightCenterPoint"))
|
|
253 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_RCENTER))
|
246 |
254 |
rightCenter = processCenterPoint(geoNode.getChildNodes());
|
247 |
|
if(geoNode.getNodeName().equals("LeftViewPort"))
|
|
255 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_LVP))
|
248 |
256 |
leftViewPort = processViewPort(geoNode.getChildNodes());
|
249 |
|
if(geoNode.getNodeName().equals("RightViewPort"))
|
|
257 |
if(geoNode.getNodeName().equals(RasterMetaFileTags.GEOPOINT_RVP))
|
250 |
258 |
rightViewPort = processViewPort(geoNode.getChildNodes());
|
251 |
259 |
}
|
252 |
260 |
|
... | ... | |
296 |
304 |
double x = 0D, y = 0D, width = 0D, height = 0D;
|
297 |
305 |
for(int j=0;j<nodeList.getLength();j++){
|
298 |
306 |
Node node = nodeList.item(j);
|
299 |
|
if(node.getNodeName().equals("X"))
|
|
307 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_PX))
|
300 |
308 |
x = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
301 |
|
if(node.getNodeName().equals("Y"))
|
|
309 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_PY))
|
302 |
310 |
y = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
303 |
|
if(node.getNodeName().equals("Width"))
|
|
311 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_W))
|
304 |
312 |
width = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
305 |
|
if(node.getNodeName().equals("Height"))
|
|
313 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_H))
|
306 |
314 |
height = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
307 |
315 |
}
|
308 |
316 |
r.setRect(x, y, width, height);
|
... | ... | |
319 |
327 |
double x = 0D, y = 0D;
|
320 |
328 |
for(int j=0;j<nodeList.getLength();j++){
|
321 |
329 |
Node node = nodeList.item(j);
|
322 |
|
if(node.getNodeName().equals("Width"))
|
|
330 |
if(node.getNodeName().equals(RasterMetaFileTags.WIDTH))
|
323 |
331 |
x = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
324 |
|
if(node.getNodeName().equals("Height"))
|
|
332 |
if(node.getNodeName().equals(RasterMetaFileTags.HEIGHT))
|
325 |
333 |
y = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
326 |
334 |
}
|
327 |
335 |
d.setSize(x, y);
|
... | ... | |
337 |
345 |
ViewPort vp = new ViewPort(null);
|
338 |
346 |
for(int j=0;j<nodeList.getLength();j++){
|
339 |
347 |
Node node = nodeList.item(j);
|
340 |
|
if(node.getNodeName().equals("Projection"))
|
|
348 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_PROJ))
|
341 |
349 |
vp.setProjection(ProjectionPool.get(node.getFirstChild().getNodeValue()));
|
342 |
|
if(node.getNodeName().equals("Extent"))
|
|
350 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_BBOX))
|
343 |
351 |
vp.setExtent(processExtent(node.getChildNodes()));
|
344 |
|
if(node.getNodeName().equals("Dimension"))
|
|
352 |
if(node.getNodeName().equals(RasterMetaFileTags.POINTS_DIM))
|
345 |
353 |
vp.setImageSize(processImageSize(node.getChildNodes()));
|
346 |
354 |
}
|
347 |
355 |
vp.setScale();
|
... | ... | |
359 |
367 |
double x = 0D, y = 0D;
|
360 |
368 |
for(int j=0;j<nodeList.getLength();j++){
|
361 |
369 |
Node node = nodeList.item(j);
|
362 |
|
if(node.getNodeName().equals("X"))
|
|
370 |
if(node.getNodeName().equals(RasterMetaFileTags.POSX))
|
363 |
371 |
x = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
364 |
|
if(node.getNodeName().equals("Y"))
|
|
372 |
if(node.getNodeName().equals(RasterMetaFileTags.POSY))
|
365 |
373 |
y = Double.valueOf(node.getFirstChild().getNodeValue()).doubleValue();
|
366 |
374 |
}
|
367 |
375 |
p.setLocation(x, y);
|
... | ... | |
394 |
402 |
Element itemlevel1 = null;
|
395 |
403 |
Element itemlevel2 = null;
|
396 |
404 |
itemlevel1 = xmlDoc.createElement(elem);
|
397 |
|
createSimpleElement(itemlevel1, "Projection", values[6]);
|
398 |
|
itemlevel2 = xmlDoc.createElement("Extent");
|
399 |
|
createSimpleElement(itemlevel2, "X", values[0]);
|
400 |
|
createSimpleElement(itemlevel2, "Y", values[1]);
|
401 |
|
createSimpleElement(itemlevel2, "Width", values[2]);
|
402 |
|
createSimpleElement(itemlevel2, "Height", values[3]);
|
|
405 |
createSimpleElement(itemlevel1, RasterMetaFileTags.POINTS_PROJ, values[6]);
|
|
406 |
itemlevel2 = xmlDoc.createElement(RasterMetaFileTags.POINTS_BBOX);
|
|
407 |
createSimpleElement(itemlevel2, RasterMetaFileTags.POINTS_PX, values[0]);
|
|
408 |
createSimpleElement(itemlevel2, RasterMetaFileTags.POINTS_PY, values[1]);
|
|
409 |
createSimpleElement(itemlevel2, RasterMetaFileTags.POINTS_W, values[2]);
|
|
410 |
createSimpleElement(itemlevel2, RasterMetaFileTags.POINTS_H, values[3]);
|
403 |
411 |
itemlevel1.appendChild(itemlevel2);
|
404 |
|
itemlevel2 = xmlDoc.createElement("Dimension");
|
405 |
|
createSimpleElement(itemlevel2, "Width", values[4]);
|
406 |
|
createSimpleElement(itemlevel2, "Height", values[5]);
|
|
412 |
itemlevel2 = xmlDoc.createElement(RasterMetaFileTags.POINTS_DIM);
|
|
413 |
createSimpleElement(itemlevel2, RasterMetaFileTags.WIDTH, values[4]);
|
|
414 |
createSimpleElement(itemlevel2, RasterMetaFileTags.HEIGHT, values[5]);
|
407 |
415 |
itemlevel1.appendChild(itemlevel2);
|
408 |
416 |
parent.appendChild(itemlevel1);
|
409 |
417 |
}
|
... | ... | |
415 |
423 |
*/
|
416 |
424 |
private void createXMLFLyrGeoRasterNode(FLyrGeoRaster lyrGeo) {
|
417 |
425 |
Element xmlGeoPoint;
|
418 |
|
xmlGeoPoint = xmlDoc.createElement("FLyrGeoRaster");
|
|
426 |
xmlGeoPoint = xmlDoc.createElement(RasterMetaFileTags.POINTS_LYR);
|
419 |
427 |
generalTag.appendChild(xmlGeoPoint);
|
420 |
428 |
xmlGeoPoint.setAttribute("Name", lyrGeo.getName());
|
421 |
429 |
String[] vpData = {String.valueOf(lyrGeo.getMinX()),
|
... | ... | |
425 |
433 |
String.valueOf(lyrGeo.getImageWidth()),
|
426 |
434 |
String.valueOf(lyrGeo.getImageHeight()),
|
427 |
435 |
lyrGeo.getProjection().getAbrev()};
|
428 |
|
createViewPortNode(xmlGeoPoint, "ViewPort", vpData);
|
|
436 |
createViewPortNode(xmlGeoPoint, RasterMetaFileTags.POINTS_VP, vpData);
|
429 |
437 |
}
|
430 |
438 |
|
431 |
439 |
/**
|
... | ... | |
438 |
446 |
Element xmlGeoPoint;
|
439 |
447 |
Element itemlevel1;
|
440 |
448 |
|
441 |
|
xmlGeoPoint = xmlDoc.createElement("GeoPoint");
|
|
449 |
xmlGeoPoint = xmlDoc.createElement(RasterMetaFileTags.GEOPOINT);
|
442 |
450 |
xmlGeoPoint.setAttribute("n", String.valueOf(i));
|
443 |
451 |
generalTag.appendChild(xmlGeoPoint);
|
444 |
452 |
|
445 |
|
createSimpleElement(xmlGeoPoint, "PixelX", String.valueOf(geoPoint.pixelPoint.getX()));
|
446 |
|
createSimpleElement(xmlGeoPoint, "PixelY", String.valueOf(geoPoint.pixelPoint.getY()));
|
447 |
|
createSimpleElement(xmlGeoPoint, "MapX", String.valueOf(geoPoint.mapPoint.getX()));
|
448 |
|
createSimpleElement(xmlGeoPoint, "MapY", String.valueOf(geoPoint.mapPoint.getY()));
|
449 |
|
createSimpleElement(xmlGeoPoint, "Active", String.valueOf(geoPoint.active));
|
|
453 |
createSimpleElement(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_PX, String.valueOf(geoPoint.pixelPoint.getX()));
|
|
454 |
createSimpleElement(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_PY, String.valueOf(geoPoint.pixelPoint.getY()));
|
|
455 |
createSimpleElement(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_MAPX, String.valueOf(geoPoint.mapPoint.getX()));
|
|
456 |
createSimpleElement(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_MAPY, String.valueOf(geoPoint.mapPoint.getY()));
|
|
457 |
createSimpleElement(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_ACTIVE, String.valueOf(geoPoint.active));
|
450 |
458 |
|
451 |
|
itemlevel1 = xmlDoc.createElement("LeftCenterPoint");
|
452 |
|
createSimpleElement(itemlevel1, "X", String.valueOf(geoPoint.leftCenterPoint.getX()));
|
453 |
|
createSimpleElement(itemlevel1, "Y", String.valueOf(geoPoint.leftCenterPoint.getY()));
|
|
459 |
itemlevel1 = xmlDoc.createElement(RasterMetaFileTags.GEOPOINT_LCENTER);
|
|
460 |
createSimpleElement(itemlevel1, RasterMetaFileTags.POSX, String.valueOf(geoPoint.leftCenterPoint.getX()));
|
|
461 |
createSimpleElement(itemlevel1, RasterMetaFileTags.POSY, String.valueOf(geoPoint.leftCenterPoint.getY()));
|
454 |
462 |
xmlGeoPoint.appendChild(itemlevel1);
|
455 |
463 |
|
456 |
|
itemlevel1 = xmlDoc.createElement("RightCenterPoint");
|
457 |
|
createSimpleElement(itemlevel1, "X", String.valueOf(geoPoint.rightCenterPoint.getX()));
|
458 |
|
createSimpleElement(itemlevel1, "Y", String.valueOf(geoPoint.rightCenterPoint.getY()));
|
|
464 |
itemlevel1 = xmlDoc.createElement(RasterMetaFileTags.GEOPOINT_RCENTER);
|
|
465 |
createSimpleElement(itemlevel1, RasterMetaFileTags.POSX, String.valueOf(geoPoint.rightCenterPoint.getX()));
|
|
466 |
createSimpleElement(itemlevel1, RasterMetaFileTags.POSY, String.valueOf(geoPoint.rightCenterPoint.getY()));
|
459 |
467 |
xmlGeoPoint.appendChild(itemlevel1);
|
460 |
468 |
|
461 |
469 |
String[] values1 = {String.valueOf(geoPoint.leftViewPort.getExtent().getX()),
|
... | ... | |
465 |
473 |
String.valueOf(geoPoint.leftViewPort.getImageWidth()),
|
466 |
474 |
String.valueOf(geoPoint.leftViewPort.getImageHeight()),
|
467 |
475 |
geoPoint.leftViewPort.getProjection().getAbrev()};
|
468 |
|
createViewPortNode(xmlGeoPoint, "LeftViewPort", values1);
|
|
476 |
createViewPortNode(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_LVP, values1);
|
469 |
477 |
|
470 |
478 |
String[] values2 = {String.valueOf(geoPoint.rightViewPort.getExtent().getX()),
|
471 |
479 |
String.valueOf(geoPoint.rightViewPort.getExtent().getY()),
|
... | ... | |
475 |
483 |
String.valueOf(geoPoint.rightViewPort.getImageHeight()),
|
476 |
484 |
geoPoint.rightViewPort.getProjection().getAbrev()};
|
477 |
485 |
|
478 |
|
createViewPortNode(xmlGeoPoint, "RightViewPort", values2);
|
|
486 |
createViewPortNode(xmlGeoPoint, RasterMetaFileTags.GEOPOINT_RVP, values2);
|
479 |
487 |
}
|
480 |
488 |
|
481 |
489 |
//****************************************************
|
... | ... | |
516 |
524 |
BufferedReader inGrf = new BufferedReader(new InputStreamReader(new FileInputStream(grf)));
|
517 |
525 |
BufferedWriter outTmp = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(rmf)));
|
518 |
526 |
|
519 |
|
outTmp.write("<?xml version=\"1.0\" encoding=\"ISO-8859-15\"?>\n");
|
|
527 |
outTmp.write("<?xml version=\"1.0\" encoding=\""+RasterMetaFileTags.ENCODING+"\"?>\n");
|
520 |
528 |
outTmp.write("<"+RasterMetaFileTags.MAIN_TAG+" "+"xmlns=\""+RasterMetaFileTags.NAMESPACE+"\">\n");
|
521 |
529 |
String str = inGrf.readLine();
|
522 |
530 |
str = inGrf.readLine();
|
... | ... | |
568 |
576 |
}
|
569 |
577 |
|
570 |
578 |
//Saltamos los puntos que ya existian en el .rmf
|
571 |
|
str = inRmf.readLine();
|
572 |
|
while(!str.startsWith("</"+RasterMetaFileTags.GEOPOINTS) && str != null)
|
|
579 |
try{
|
573 |
580 |
str = inRmf.readLine();
|
|
581 |
while(str != null &&
|
|
582 |
!str.startsWith("</"+RasterMetaFileTags.GEOPOINTS) &&
|
|
583 |
!str.startsWith("</"+RasterMetaFileTags.MAIN_TAG))
|
|
584 |
str = inRmf.readLine();
|
|
585 |
}catch(Exception exc){
|
|
586 |
|
|
587 |
}
|
574 |
588 |
|
575 |
589 |
//Leemos el resto del fichero .rmf
|
576 |
|
str = inRmf.readLine();
|
|
590 |
if( !str.startsWith("</"+RasterMetaFileTags.MAIN_TAG))
|
|
591 |
str = inRmf.readLine();
|
577 |
592 |
while(str != null){
|
578 |
593 |
if(!str.startsWith("<?xml"))
|
579 |
594 |
outTmp.write(str+"\n");
|
... | ... | |
610 |
625 |
strWriter = new StringWriter();
|
611 |
626 |
outFormat = new OutputFormat();
|
612 |
627 |
|
613 |
|
outFormat.setEncoding("ISO-8859-15");
|
|
628 |
outFormat.setEncoding(RasterMetaFileTags.ENCODING);
|
614 |
629 |
outFormat.setIndenting(true);
|
615 |
630 |
outFormat.setIndent(4);
|
616 |
631 |
|