|
From: Logs S. c. messages. <gvs...@li...> - 2013-11-23 15:18:20
|
Revision: 1062
http://sourceforge.net/p/gvsigce/code/1062
Author: fergonco
Date: 2013-11-23 15:18:15 +0000 (Sat, 23 Nov 2013)
Log Message:
-----------
applying https://devel.gvsig.org/redmine/projects/gvsig-desktop/repository/revisions/37958 https://devel.gvsig.org/redmine/projects/gvsig-desktop/repository/revisions/37959 https://devel.gvsig.org/redmine/projects/gvsig-desktop/repository/revisions/37960
Modified Paths:
--------------
trunk/extensions/extGPE-gvSIG/.classpath
trunk/extensions/extGPE-gvSIG/config/parser.properties
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/handlers/DefaultFmapContentHandler.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEFeature.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/AddFeatureToDriver.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEDriverFactory.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/KMLVectorialDriver.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/utils/GPETypesConversion.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/writer/ExportTask.java
trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/reader/v2/GPEParserTest.java
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/symbols/MarkerFillSymbol.java
trunk/extensions/extSymbology/src/org/gvsig/symbology/fmap/symbols/PictureMarkerSymbol.java
trunk/extensions/extSymbology/src/org/gvsig/symbology/gui/layerproperties/LabelTextStylePanel.java
trunk/libraries/libGPE/src/org/gvsig/gpe/parser/GPEContentHandler.java
trunk/libraries/libGPE/src/org/gvsig/gpe/parser/IGPEContentHandler.java
trunk/libraries/libGPE/src/org/gvsig/gpe/writer/GPEWriterHandler.java
trunk/libraries/libGPE-KML/src/META-INF/services/org.gvsig.gpe.parser.GPEParser
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEDeafultKmlParser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEKml2_1_Parser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEKmz2_1_Parser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/profiles/DefaultBindingProfile.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/profiles/IBindingProfile.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/profiles/Kml2_1_BindingProfile.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/coordinates/CoordinatesTypeIterator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/coordinates/IKmlCoordinatesIterator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/coordinates/KmlCoodinatesIterator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/coordinates/LatLonAltBoxIterator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/coordinates/LatLonBoxIterator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/DocumentBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/ElementBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/FeatureBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/FolderBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/LookAtBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/MetadataBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/PlaceMarketBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/StyleBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/GeometryBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/InnerBoundaryIsBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/LineStringTypeBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/LinearRingBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/MultiGeometryBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/OuterBoundaryIsBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/PointTypeBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/PolygonTypeBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/geometries/RegionBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/header/HeaderBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KMLUtilsParser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/Kml2_1_Tags.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/GPEKmlWriterHandlerImplementor.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/profiles/DefaultWriterProfile.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/profiles/IWriterProfile.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/profiles/Kml21WriterProfile.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/v21/features/ElementWriter.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/v21/features/PlaceMarkWriter.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v21/kml/KMLBaseTest.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v21/kmz/KMZv21BaseTest.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/writer/v21/kml/KMLPointsLayerTest.java
Added Paths:
-----------
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEMetadata.java
trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java.orig
trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/
trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlGorlizTest.java
trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlOutputTest.java
trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlPruebaPuntosTest.java
trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlPurpleLineTest.java
trunk/extensions/extGPE-gvSIG/testdata/PruebaPuntos.kmz
trunk/extensions/extGPE-gvSIG/testdata/SpainMorocco.kml
trunk/extensions/extGPE-gvSIG/testdata/gorliz.kml
trunk/extensions/extGPE-gvSIG/testdata/output.kml
trunk/extensions/extGPE-gvSIG/testdata/purple_line.kml
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEDefaultKmlParser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEKml2_2_Parser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEKmz2_2_Parser.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/Kml2_2_QNameComparator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/KmlWithOutNamespaceComparator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/coordinates/KmlCoordinatesIterator.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/v21/features/StyleMapBinding.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/Kml2_2_Tags.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlColorStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlCompoundStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlIconStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlLabelStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlLineStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlPolygonStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/utils/KmlStyle.java
trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/writer/v21/features/StylesWriter.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v21/kml/KMLGorlizTest.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v21/kml/KMLTurnHereTest.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v21/kml/TestSplit.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v21/kmz/KMZPruebaPuntosStyleMapTest.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/kml/
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/kml/KMLOutput_gvSIG_Test.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/kml/KMLPurpleLine2_2Test.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/kml/KMLnucleos_ArcMap_Test.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/kmz/
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/parser/v22/kmz/KMZNucleosArcMapTest.java
trunk/libraries/libGPE-KML/src-test/org/gvsig/gpe/kml/writer/v21/kml/KMLWriteLegendTest.java
trunk/libraries/libGPE-KML/testdata/PruebaPuntos.kmz
trunk/libraries/libGPE-KML/testdata/nucleos.kmz
trunk/libraries/libGPE-KML/testdata/output.kml
trunk/libraries/libGPE-KML/testdata/purple_line.kml
trunk/libraries/libGPE-XML/src/org/gvsig/gpe/xml/utils/AbstractQNameComparator.java
trunk/libraries/libGPE-XML/src/org/gvsig/gpe/xml/utils/LocalNameComparator.java
trunk/libraries/libGPE-XML/src/org/gvsig/gpe/xml/utils/NamespaceAwareComparator.java
trunk/libraries/libGPE-XML/src/org/gvsig/gpe/xml/utils/QNameComparator.java
Modified: trunk/extensions/extGPE-gvSIG/.classpath
===================================================================
--- trunk/extensions/extGPE-gvSIG/.classpath 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/.classpath 2013-11-23 15:18:15 UTC (rev 1062)
@@ -25,5 +25,6 @@
<classpathentry combineaccessrules="false" kind="src" path="/libIverUtiles"/>
<classpathentry combineaccessrules="false" kind="src" path="/libGDBMS"/>
<classpathentry combineaccessrules="false" kind="src" path="/libRemoteServices"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/extSymbology"/>
<classpathentry kind="output" path="bin"/>
</classpath>
Modified: trunk/extensions/extGPE-gvSIG/config/parser.properties
===================================================================
--- trunk/extensions/extGPE-gvSIG/config/parser.properties 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/config/parser.properties 2013-11-23 15:18:15 UTC (rev 1062)
@@ -1,2 +1,2 @@
GML=org.gvsig.gpe.gml.parser.GPEGmlSFP0Parser
-KML=org.gvsig.gpe.kml.parser.GPEKml2_1_Parser
\ No newline at end of file
+KML=org.gvsig.gpe.kml.parser.GPEKmz2_2_Parser
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/handlers/DefaultFmapContentHandler.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/handlers/DefaultFmapContentHandler.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/handlers/DefaultFmapContentHandler.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -2,6 +2,8 @@
import java.io.IOException;
+import javax.xml.namespace.QName;
+
import org.gvsig.fmap.drivers.gpe.exceptions.CurveConversionWarning;
import org.gvsig.fmap.drivers.gpe.exceptions.NotMultipleLayerWarning;
import org.gvsig.fmap.drivers.gpe.model.GPEBBox;
@@ -9,6 +11,7 @@
import org.gvsig.fmap.drivers.gpe.model.GPEElement;
import org.gvsig.fmap.drivers.gpe.model.GPEFeature;
import org.gvsig.fmap.drivers.gpe.model.GPEGeometry;
+import org.gvsig.fmap.drivers.gpe.model.GPEMetadata;
import org.gvsig.fmap.drivers.gpe.model.GPEMultiGeometry;
import org.gvsig.fmap.drivers.gpe.model.GPEMultiLineGeometry;
import org.gvsig.fmap.drivers.gpe.model.GPEMultiPointGeometry;
@@ -257,7 +260,8 @@
* @see org.gvsig.gpe.IGPEContentHandler#addNameToFeature(java.lang.String, java.lang.Object)
*/
public void addNameToFeature(String name, Object feature) {
-
+ GPEElement ele = new GPEElement("Name", ValueFactory.createValue(name));
+ ((GPEFeature)feature).addElement((GPEElement)ele);
}
/*
@@ -433,4 +437,48 @@
return new GPEMultiGeometry(id, srs);
}
+
+ @Override
+ public void addMetadataToLayer(Object metadata, Object layer) {
+ addFeature.addMetadataToLayer((GPEVectorialDriver) driver, (GPEMetadata) metadata);
+ }
+
+
+ @Override
+ public Object startMetadata(String type, String data, IAttributesIterator attributes) {
+ GPEMetadata meta=null;
+
+ // TODO: Revisar si esto es necesario (en los test parece que deja el cursor
+ // de lectura tocado. Ser\xEDa bueno que quitaramos este bloque, ya que no se usa.
+// try {
+//
+// for(int i = 0; i<attributes.getNumAttributes();i++)
+// {
+// //String[] buffer = new String[2];
+// QName name = attributes.nextAttributeName();
+// Object value = attributes.nextAttribute();
+//// System.out.println(name.getLocalPart() + ":" + value);
+// }
+// } catch (IOException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+ meta = new GPEMetadata();
+ meta.setTagType(type);
+ meta.setTagData(data);
+ return meta;
+ }
+
+
+ @Override
+ public void addMetadataToFeature(Object metadata, Object feature) {
+ ((GPEFeature)feature).addMetadata((GPEMetadata)metadata);
+ }
+
+
+ @Override
+ public void addMetadataToMetadata(Object metadata, Object parent) {
+ ((GPEMetadata)parent).addChildData((GPEMetadata)metadata);
+ }
+
}
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEFeature.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEFeature.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEFeature.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -1,7 +1,10 @@
package org.gvsig.fmap.drivers.gpe.model;
+import java.util.ArrayList;
import java.util.LinkedHashMap;
+import org.gvsig.gpe.containers.MetaData;
+
import com.hardcode.gdbms.engine.values.Value;
import com.hardcode.gdbms.engine.values.ValueFactory;
@@ -58,6 +61,7 @@
private static int idFeature = 0;
private GPEGeometry geometry = null;
private LinkedHashMap elements = null;
+ private ArrayList metaDataList = new ArrayList();
private Value id = null;
private String name = null;
private String typeName = null;
@@ -149,4 +153,8 @@
public static void initIdFeature(){
idFeature = 0;
}
+
+ public void addMetadata(GPEMetadata metadata) {
+ metaDataList.add(metadata);
+ }
}
Added: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEMetadata.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEMetadata.java (rev 0)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/model/GPEMetadata.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -0,0 +1,113 @@
+/* gvSIG. Geographic Information System of the Valencian Government
+ *
+ * Copyright (C) 2007-2008 Infrastructures and Transports Department
+ * of the Valencian Government (CIT)
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
+ * MA 02110-1301, USA.
+ *
+ */
+
+/*
+ * AUTHORS (In addition to CIT):
+ * 2011 Software Colaborativo (www.scolab.es) development
+ */
+
+package org.gvsig.fmap.drivers.gpe.model;
+
+import java.util.ArrayList;
+
+import org.gvsig.gpe.containers.MetaData;
+
+public class GPEMetadata {
+ private GPEMetadata parentData = null;
+ private ArrayList dataList = new ArrayList();
+ private String tagType = null;
+ private String tagData = null;
+
+ /**
+ * @return the tagType
+ */
+ public String getTagType() {
+ return this.tagType;
+ }
+
+ /**
+ * @param name
+ * the tagType to set
+ */
+ public void setTagType(String tagType) {
+ this.tagType = tagType;
+ }
+
+ /**
+ * @param name
+ * the tag data to set
+ */
+ public void setTagData(String tagData) {
+ this.tagData = tagData;
+ }
+
+ /**
+ * @param name
+ * the tag data to set
+ */
+ public String getTagData() {
+ return tagData;
+ }
+
+ /**
+ * @return the data list
+ */
+ public ArrayList getDataList() {
+ return dataList;
+ }
+
+ /**
+ * @return the metadata at position i
+ * @param i
+ * Element position
+ */
+ public GPEMetadata getElementAt(int i) {
+ return (GPEMetadata) dataList.get(i);
+ }
+
+ /**
+ * @return the parent metadata
+ */
+ public GPEMetadata getParentData() {
+ return parentData;
+ }
+
+ /**
+ * @param parent
+ * metadata the parentElement to set
+ */
+ public void setParentData(Object parentData) {
+ if (parentData != null) {
+ this.parentData = (GPEMetadata) parentData;
+ ((GPEMetadata) parentData).addChildData(this);
+ }
+ }
+
+ /**
+ * @param adds
+ * a child metadata
+ */
+ public void addChildData(GPEMetadata subData) {
+ getDataList().add(subData);
+ }
+
+}
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/AddFeatureToDriver.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/AddFeatureToDriver.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/AddFeatureToDriver.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -1,9 +1,37 @@
package org.gvsig.fmap.drivers.gpe.reader;
+import java.awt.Color;
+import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.ArrayList;
+
import org.gvsig.fmap.drivers.gpe.model.GPEFeature;
+import org.gvsig.fmap.drivers.gpe.model.GPEMetadata;
+import org.gvsig.fmap.drivers.gpe.utils.GPETypesConversion;
+import org.gvsig.symbology.fmap.symbols.PictureMarkerSymbol;
import org.gvsig.xmlschema.som.IXSSchemaDocument;
import org.gvsig.xmlschema.som.IXSTypeDefinition;
+import com.hardcode.gdbms.engine.values.StringValue;
+import com.hardcode.gdbms.engine.values.Value;
+import com.hardcode.gdbms.engine.values.ValueFactory;
+import com.iver.cit.gvsig.fmap.core.FShape;
+import com.iver.cit.gvsig.fmap.core.SymbologyFactory;
+import com.iver.cit.gvsig.fmap.core.symbols.AbstractMarkerSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.IMarkerSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.ISymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.MultiShapeSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.SimpleFillSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.SimpleLineSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.SimpleMarkerSymbol;
+import com.iver.cit.gvsig.fmap.rendering.IVectorLegend;
+import com.iver.cit.gvsig.fmap.rendering.LegendFactory;
+import com.iver.cit.gvsig.fmap.rendering.SingleSymbolLegend;
+import com.iver.cit.gvsig.fmap.rendering.VectorialUniqueValueLegend;
+import com.iver.cit.gvsig.project.documents.view.legend.gui.AttrInTableLabeling;
+
/* gvSIG. Sistema de Informaci\xF3n Geogr\xE1fica de la Generalitat Valenciana
*
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
@@ -54,10 +82,23 @@
* @author Jorge Piera LLodr\xE1 (jor...@iv...)
*/
public class AddFeatureToDriver {
+
+ private class Pair {
+ Value searchFor = null;
+ Value newValue = null;
+ }
private IXSSchemaDocument schema = null;
+
+ protected VectorialUniqueValueLegend legend = null;
+ protected AttrInTableLabeling labeling = new AttrInTableLabeling();
+ protected ArrayList<Pair> valuesToSubstitute = new ArrayList<Pair>();
public AddFeatureToDriver(){
-
+ legend = LegendFactory.createVectorialUniqueValueLegend(FShape.MULTI);
+ String[] fNames = new String[1];
+ fNames[0] = "styleUrl";
+ legend.setClassifyingFieldNames(fNames);
+ legend.useDefaultSymbol(true);
}
/**
@@ -70,7 +111,182 @@
public void addFeatureToLayer(GPEVectorialDriver driver, GPEFeature feature){
addFeatureToLayer_(driver, feature);
}
+
+ public void addMetadataToLayer(GPEVectorialDriver driver, GPEMetadata metadata) {
+ // Exploramos los metadatos y recuperamos lo necesario para crear la leyenda.
+// System.out.println("A crear una leyenda usando metadatos!! " + metadata.getTagType()
+// + "-" + metadata.getTagData());
+ String id = metadata.getTagData();
+ if (metadata.getTagType().equalsIgnoreCase("STYLEMAP")) {
+ // Recuperamos el primer styleId y ese es el s\xEDmbolo que sustituiremos cuando nos
+ // encontremos el styleUrl de este styleMap
+ GPEMetadata firstPair = metadata.getElementAt(0);
+ for (int i=0; i < firstPair.getDataList().size(); i++) {
+ GPEMetadata aux = firstPair.getElementAt(i);
+ String type = aux.getTagType();
+// System.out.println("STYLEMAP: " + type);
+ if (type.equalsIgnoreCase("STYLEURL")) {
+ String styleId = aux.getTagData();
+// System.out.println("STYLEMAP: Sustituir " + styleId + " por " + id);
+ Value valStyleId = ValueFactory.createValue(styleId);
+ Pair pair = new Pair();
+ pair.searchFor = valStyleId;
+ pair.newValue = ValueFactory.createValue("#" + id);;
+ valuesToSubstitute.add(pair);
+ }
+ }
+ return;
+ }
+
+ MultiShapeSymbol multiSymbol = new MultiShapeSymbol();
+ boolean bError = false;
+ SimpleLineSymbol lineSym = null;
+ for (int i=0; i < metadata.getDataList().size(); i++) {
+ GPEMetadata style = metadata.getElementAt(i);
+ String type = style.getTagType();
+ if (type.equalsIgnoreCase("IconStyle")) {
+ IMarkerSymbol pointSym = new SimpleMarkerSymbol();
+ pointSym.setSize(10);
+ pointSym.setUnit(-1); // pixels
+
+ for (int j=0; j < style.getDataList().size(); j++) {
+ GPEMetadata att = style.getElementAt(j);
+ if (att.getTagType().equalsIgnoreCase("COLOR")) {
+ // format: OPACITY-GG-BB-RR
+ Color color = GPETypesConversion.fromABGRtoColor(att.getTagData());
+ pointSym.setColor(color);
+ }
+ if (att.getTagType().equalsIgnoreCase("ICON")) {
+ if (att.getDataList().size() == 0) {
+ // TODO: Se adjunta el icono, no es una referencia. Creamos un pointSym por defecto y a por otro.
+ continue;
+ }
+ GPEMetadata iconData = att.getElementAt(0);
+ try {
+ URI uri = new URI(iconData.getTagData());
+ pointSym = new PictureMarkerSymbol(uri.toURL(), uri.toURL());
+ pointSym.setSize(12);
+ pointSym.setUnit(-1);
+ } catch (URISyntaxException e) {
+ e.printStackTrace();
+ bError = true;
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ bError = true;
+ } catch (IOException e) {
+ e.printStackTrace();
+ bError = true;
+ }
+ }
+
+ if (att.getTagType().equalsIgnoreCase("HEADING")) {
+ // Ojo: 0\xBA => N, 90=>E, 180=>S, 270=W
+ // TODO: Convertir anguloKmlToRad
+ double angleDegree = Double.parseDouble(att.getTagData());
+ double rad = GPETypesConversion.kmlDegToRad(angleDegree);
+ ((AbstractMarkerSymbol)pointSym).setRotation(rad);
+ }
+
+ } // for
+ multiSymbol.setMarkerSymbol(pointSym);
+ } // IconStyle
+
+ else if (type.equalsIgnoreCase("LineStyle")) {
+ lineSym = new SimpleLineSymbol();
+ for (int j=0; j < style.getDataList().size(); j++) {
+ GPEMetadata att = style.getElementAt(j);
+ if (att.getTagType().equalsIgnoreCase("COLOR")) {
+ // format: OPACITY-GG-BB-RR
+ Color color = GPETypesConversion.fromABGRtoColor(att.getTagData());
+ lineSym.setLineColor(color);
+ }
+ if (att.getTagType().equalsIgnoreCase("WIDTH")) {
+ float width = Float.parseFloat(att.getTagData());
+ lineSym.setLineWidth(width);
+ }
+ } // for
+ multiSymbol.setLineSymbol(lineSym);
+ } // LineStyle
+ else if (type.equalsIgnoreCase("PolyStyle")) {
+ SimpleFillSymbol polySym = new SimpleFillSymbol();
+ for (int j=0; j < style.getDataList().size(); j++) {
+ GPEMetadata att = style.getElementAt(j);
+ if (att.getTagType().equalsIgnoreCase("COLOR")) {
+ // format: OPACITY-GG-BB-RR
+ Color color = GPETypesConversion.fromABGRtoColor(att.getTagData());
+ polySym.setFillColor(color);
+ }
+ if (att.getTagType().equalsIgnoreCase("FILL")) {
+ int fill = Integer.parseInt(att.getTagData());
+ if (fill == 1)
+ polySym.setHasFill(true);
+ else
+ polySym.setHasFill(false);
+
+ }
+ if (att.getTagType().equalsIgnoreCase("OUTLINE")) {
+ int outline = Integer.parseInt(att.getTagData());
+ if (outline == 1) {
+ polySym.setHasOutline(true);
+ if (polySym.getOutline() == null) {
+ if (lineSym != null) {
+ polySym.setOutline(lineSym);
+ }
+ else
+ {
+ polySym.setOutline(new SimpleLineSymbol());
+ }
+ }
+ }
+ else
+ polySym.setHasOutline(false);
+ }
+
+
+ } // for
+ multiSymbol.setFillSymbol(polySym);
+ } // PolyStyle
+ } // for (no podemos fijar el simbolo dentro del for porque no se pueden a\xF1adir claves repetidas)
+ StringValue key = ValueFactory.createValue("#" + id);
+ legend.addSymbol(key, multiSymbol);
+
+ if (driver instanceof KMLVectorialDriver) {
+ // Tenemos que hacer un chequeo completo cada vez porque puede llegar un styleMap
+ // que hace referencia a un s\xEDmbolo que todav\xEDa no se ha creado.
+ Object[] values = legend.getValues();
+ ISymbol[] auxSymbols = legend.getSymbols();
+ for (int iVal = 0; iVal < valuesToSubstitute.size(); iVal++) {
+ Pair pair = valuesToSubstitute.get(iVal);
+ Value valStyleId = pair.searchFor;
+// System.out.println("Busco " + valStyleId);
+ for (int iSym = 0; iSym < values.length; iSym++) {
+ Value idSym = (Value) values[iSym];
+ if (idSym.doEquals(valStyleId)) {
+ legend.delSymbol(idSym);
+ legend.addSymbol(pair.newValue, auxSymbols[iSym]);
+ }
+ }
+ }
+
+ KMLVectorialDriver kmlDriver = (KMLVectorialDriver) driver;
+ kmlDriver.setDefaultLegend(legend);
+ if (bError) {
+ SingleSymbolLegend auxLegend = new SingleSymbolLegend();
+ kmlDriver.setDefaultLegend(auxLegend);
+ }
+ if (legend.getSymbols().length ==1) {
+ ((IVectorLegend) kmlDriver.getDefaultLegend()).setDefaultSymbol(multiSymbol);
+ }
+ else {
+ MultiShapeSymbol multiSymbolAux = new MultiShapeSymbol();
+ ((IVectorLegend) kmlDriver.getDefaultLegend()).setDefaultSymbol(multiSymbolAux);
+ }
+
+ }
+
+ }
+
/**
* Add a feature to a layer
* @param layer
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEDriverFactory.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEDriverFactory.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEDriverFactory.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -1,7 +1,7 @@
package org.gvsig.fmap.drivers.gpe.reader;
import org.gvsig.gpe.gml.parser.GPEDefaultGmlParser;
-import org.gvsig.gpe.kml.parser.GPEDeafultKmlParser;
+import org.gvsig.gpe.kml.parser.GPEDefaultKmlParser;
import org.gvsig.gpe.parser.GPEParser;
/* gvSIG. Sistema de Informaci\xF3n Geogr\xE1fica de la Generalitat Valenciana
@@ -70,7 +70,7 @@
GPEVectorialDriver driver = null;
if (parser instanceof GPEDefaultGmlParser){
driver = new GMLVectorialDriver();
- }else if (parser instanceof GPEDeafultKmlParser){
+ }else if (parser instanceof GPEDefaultKmlParser){
driver = new KMLVectorialDriver();
}
return driver;
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -426,13 +426,13 @@
errorHandler,
getFile().toURI());
//TODO patch to support multilayer on KML
- if (getName().equals(KMLVectorialDriver.DRIVERNAME)){
- if (isWarningShowed == false){
- JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
- PluginServices.getText(this,"gpe_gvsig_dont_support_multilayer"));
- isWarningShowed = true;
- }
- }
+// if (getName().equals(KMLVectorialDriver.DRIVERNAME)){
+// if (isWarningShowed == false){
+// JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
+// PluginServices.getText(this,"gpe_gvsig_dont_support_multilayer"));
+// isWarningShowed = true;
+// }
+// }
}
/*
Copied: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java.orig (from rev 1060, trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java)
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java.orig (rev 0)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/GPEVectorialDriver.java.orig 2013-11-23 15:18:15 UTC (rev 1062)
@@ -0,0 +1,474 @@
+package org.gvsig.fmap.drivers.gpe.reader;
+
+import java.awt.Component;
+import java.awt.geom.Rectangle2D;
+import java.io.File;
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+
+import javax.swing.JOptionPane;
+
+import org.cresques.cts.CrsException;
+import org.cresques.cts.ICoordTrans;
+import org.cresques.cts.IProjection;
+import org.gvsig.fmap.drivers.gpe.handlers.DefaultFmapContentHandler;
+import org.gvsig.fmap.drivers.gpe.handlers.FmapErrorHandler;
+import org.gvsig.fmap.drivers.gpe.handlers.FmapHandlerFactory;
+import org.gvsig.fmap.drivers.gpe.model.GPEElement;
+import org.gvsig.fmap.drivers.gpe.model.GPEFeature;
+import org.gvsig.fmap.drivers.gpe.model.GPEGeometry;
+import org.gvsig.gpe.GPERegister;
+import org.gvsig.gpe.parser.GPEParser;
+
+import com.hardcode.gdbms.engine.data.DataSourceFactory;
+import com.hardcode.gdbms.engine.data.driver.ObjectDriver;
+import com.hardcode.gdbms.engine.data.edition.DataWare;
+import com.hardcode.gdbms.engine.values.Value;
+import com.hardcode.gdbms.engine.values.ValueFactory;
+import com.iver.andami.PluginServices;
+import com.iver.cit.gvsig.fmap.core.FShape;
+import com.iver.cit.gvsig.fmap.core.IGeometry;
+import com.iver.cit.gvsig.fmap.core.ShapeFactory;
+import com.iver.cit.gvsig.fmap.crs.CRSFactory;
+import com.iver.cit.gvsig.fmap.drivers.BoundedShapes;
+import com.iver.cit.gvsig.fmap.drivers.DriverAttributes;
+import com.iver.cit.gvsig.fmap.drivers.VectorialDriver;
+
+/* gvSIG. Sistema de Informaci�n Geogr�fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ * Generalitat Valenciana
+ * Conselleria d'Infraestructures i Transport
+ * Av. Blasco Ib��ez, 50
+ * 46010 VALENCIA
+ * SPAIN
+ *
+ * +34 963862235
+ * gv...@gv...
+ * www.gvsig.gva.es
+ *
+ * or
+ *
+ * IVER T.I. S.A
+ * Salamanca 50
+ * 46005 Valencia
+ * Spain
+ *
+ * +34 963163400
+ * da...@iv...
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ *
+ */
+/**
+ * @author Jorge Piera LLodr� (jor...@iv...)
+ */
+public abstract class GPEVectorialDriver implements IGPEDriver, VectorialDriver, ObjectDriver,
+BoundedShapes{
+ private Rectangle2D extent = null;
+ //The data
+ private HashMap features = null;
+ private int numFeatures = 0;
+ private ArrayList parsers = null;
+ private IProjection projection = null;
+ private File m_Fich;
+ private boolean isWarningShowed = false;
+ private DriverAttributes attributes = null;
+
+ GPEVectorialDriver() {
+ super();
+ features = new HashMap();
+ GPEParser[] registeredParsers = GPERegister.getAllParsers();
+ parsers = new ArrayList();
+ for (int i=0 ; i<registeredParsers.length ; i++){
+ for (int j=0 ; j<getGPEParsers().size() ; j++){
+ if (registeredParsers[i].getClass() == getGPEParsers().get(j)){
+ parsers.add(registeredParsers[i]);
+ }
+ }
+ }
+ }
+
+ /**
+ * @return the parser
+ */
+ public ArrayList getParsers() {
+ return parsers;
+ }
+
+ /**
+ * @return the projection
+ */
+ public IProjection getProjection() {
+ return projection;
+ }
+
+ /**
+ * @param projection the projection to set
+ */
+ public void setProjection(IProjection projection) {
+ this.projection = projection;
+ }
+
+ /**
+ * Add a new feature in the layer
+ * @param feature
+ * The feature to add
+ */
+ public void addFeature(GPEFeature feature) {
+ IGeometry geometry = getGeometry(feature);
+ //if the geometry exists
+ if (geometry != null){
+ //Update the extent
+ Rectangle2D boundsShp = geometry.getBounds2D();
+ if (extent == null) {
+ extent = boundsShp;
+ } else {
+ extent.add(boundsShp);
+ }
+ //Set the geometry
+ feature.getGeometry().setReprojectedGeometry(geometry);
+ //Set the attributes
+ features.put(new Integer(numFeatures), feature);
+ numFeatures++;
+ }
+ }
+
+ /**
+ * Gets the geometry
+ * @param feature
+ * The feature to add
+ */
+ private IGeometry getGeometry(GPEFeature feature){
+ GPEGeometry gpeGeometry = ((GPEFeature)feature).getGeometry();
+ if (gpeGeometry != null){
+ IProjection geomProj = null;
+ if (gpeGeometry.getSrs() != null){
+ try{
+ geomProj = CRSFactory.getCRS(gpeGeometry.getSrs());
+ }catch(Exception e){
+ //If the CRS factory has an error.
+ }
+ }
+ if (geomProj == null){
+ return gpeGeometry.getIGeometry();
+ }else{
+ if (projection == null){
+ return gpeGeometry.getIGeometry();
+ }else{
+ if (geomProj.getAbrev().compareTo(projection.getAbrev()) == 0){
+ return gpeGeometry.getIGeometry();
+ }else{
+ FShape shape = (FShape)gpeGeometry.getIGeometry().getInternalShape();
+ try {
+ ICoordTrans coordTrans = geomProj.getCT(projection);
+ shape.reProject(coordTrans);
+ } catch (CrsException e) {
+ // Not reprojecting geometry
+ e.printStackTrace();
+ }
+ return ShapeFactory.createGeometry(shape);
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.gpe.reader.IGPEDriver#setExtent(java.awt.geom.Rectangle2D)
+ */
+ public void setExtent(Rectangle2D extent) {
+ this.extent = extent;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#getDriverAttributes()
+ */
+ public DriverAttributes getDriverAttributes() {
+ if (attributes == null){
+ attributes = new DriverAttributes();
+ attributes.setLoadedInMemory(true);
+ }
+ return attributes;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#getFullExtent()
+ */
+ public Rectangle2D getFullExtent(){
+ return extent;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#getShape(int)
+ */
+ public IGeometry getShape(int index) {
+ return ((GPEFeature)features.get(new Integer(index))).getGeometry().getReprojectedGeometry();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#getShapeCount()
+ */
+ public int getShapeCount() {
+ return features.size();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#getShapeType()
+ */
+ public int getShapeType() {
+ return FShape.MULTI;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#isWritable()
+ */
+ public boolean isWritable() {
+ return true;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialDriver#reload()
+ */
+ public void reload() {
+ numFeatures = 0;
+ features.clear();
+ extent = null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ObjectDriver#getPrimaryKeys()
+ */
+ public int[] getPrimaryKeys() {
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ObjectDriver#write(com.hardcode.gdbms.engine.data.edition.DataWare)
+ */
+ public void write(DataWare dataWare) {
+
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.GDBMSDriver#setDataSourceFactory(com.hardcode.gdbms.engine.data.DataSourceFactory)
+ */
+ public void setDataSourceFactory(DataSourceFactory dsf) {
+ // TODO Auto-generated method stub
+
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldCount()
+ */
+ public int getFieldCount() {
+ if (features.size() > 0){
+ GPEFeature feature = (GPEFeature)features.get(new Integer(0));
+ return feature.getelements().size() + 1;
+ }
+ return 1;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldName(int)
+ */
+ public String getFieldName(int fieldId) {
+ if (fieldId == getFieldCount()-1){
+ return "fid";
+ }
+ if (features.size() > 0){
+ GPEFeature feature = (GPEFeature)features.get(new Integer(0));
+ Iterator it = feature.getelements().keySet().iterator();
+ String fieldName = null;
+ for (int i=0 ; i<=fieldId ; i++){
+ fieldName = (String)it.next();
+ }
+ return fieldName;
+ }
+ return null;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldType(int)
+ */
+ public int getFieldType(int i) {
+ if (i == getFieldCount()-1){
+ return Types.VARCHAR;
+ }
+ if (getRowCount() > 1){
+ Value value = getFieldValue(0,i);
+ return value.getSQLType();
+ }
+ return Types.VARCHAR;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldValue(long, int)
+ */
+ public Value getFieldValue(long rowIndex, int fieldId) {
+ GPEFeature feature = (GPEFeature)features.get(new Integer((int)rowIndex));
+ if (fieldId == getFieldCount()-1){
+ return feature.getId();
+ }
+ String attName = getFieldName(fieldId);
+ GPEElement element = (GPEElement)feature.getelements().get(attName);
+ if (element != null){
+ return element.getValue();
+ }
+ return ValueFactory.createValue("");
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getFieldWidth(int)
+ */
+ public int getFieldWidth(int i) {
+ return 50;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.hardcode.gdbms.engine.data.driver.ReadAccess#getRowCount()
+ */
+ public long getRowCount() {
+ return features.size();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.BoundedShapes#getShapeBounds(int)
+ */
+ public Rectangle2D getShapeBounds(int index){
+ return ((GPEFeature)features.get(new Integer(index))).getGeometry().getShapeBounds();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.BoundedShapes#getShapeType(int)
+ */
+ public int getShapeType(int index){
+ return FShape.MULTI;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver#close()
+ */
+ public void close() {
+
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver#getFile()
+ */
+ public File getFile() {
+ return m_Fich;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver#initialize()
+ */
+ public void initialize() {
+ FmapErrorHandler errorHandler = FmapHandlerFactory.createErrorHandler();
+ DefaultFmapContentHandler contentHandler = FmapHandlerFactory.createContentHandler(errorHandler,
+ this);
+
+ GPEParser parser = null;
+ for (int i=0 ; i<parsers.size() ; i++){
+ if (((GPEParser)parsers.get(i)).accept(getFile().toURI())){
+ parser = (GPEParser)parsers.get(i);
+ }
+ }
+ if (parser == null){
+ parser = (GPEParser)parsers.get(0);
+ }
+ parser.parse(contentHandler,
+ errorHandler,
+ getFile().toURI());
+ //TODO patch to support multilayer on KML
+ if (getName().equals(KMLVectorialDriver.DRIVERNAME)){
+ if (isWarningShowed == false){
+ JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(),
+ PluginServices.getText(this,"gpe_gvsig_dont_support_multilayer"));
+ isWarningShowed = true;
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver#open(java.io.File)
+ */
+ public void open(File f) {
+ m_Fich = f;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.VectorialFileDriver#accept(java.io.File)
+ */
+ public boolean accept(File f) {
+ if (f.isDirectory()){
+ return true;
+ }
+ for (int i=0 ; i<parsers.size() ; i++){
+ if (((GPEParser)parsers.get(i)).accept(f.toURI())){
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /* (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.gpe.reader.IGPEDriver#getTypeName()
+ */
+ public String getTypeName() {
+ if (features.size() > 0){
+ GPEFeature feature = (GPEFeature)features.get(new Integer(0));
+ return feature.getName();
+ }
+ return null;
+ }
+
+
+}
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/KMLVectorialDriver.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/KMLVectorialDriver.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/reader/KMLVectorialDriver.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -2,10 +2,16 @@
import java.util.ArrayList;
-import org.gvsig.gpe.kml.parser.GPEKml2_1_Parser;
-import org.gvsig.gpe.kml.parser.GPEKmz2_1_Parser;
+import org.gvsig.gpe.kml.parser.GPEKml2_2_Parser;
+import org.gvsig.gpe.kml.parser.GPEKmz2_2_Parser;
+import com.iver.cit.gvsig.fmap.core.FShape;
+import com.iver.cit.gvsig.fmap.drivers.WithDefaultLegend;
+import com.iver.cit.gvsig.fmap.rendering.ILegend;
+import com.iver.cit.gvsig.fmap.rendering.LegendFactory;
+import com.iver.cit.gvsig.fmap.rendering.styling.labeling.ILabelingStrategy;
+
/* gvSIG. Sistema de Informaci\xF3n Geogr\xE1fica de la Generalitat Valenciana
*
* Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
@@ -55,11 +61,21 @@
/**
* @author Jorge Piera LLodr\xE1 (jor...@iv...)
*/
-public class KMLVectorialDriver extends GPEVectorialDriver{
+public class KMLVectorialDriver extends GPEVectorialDriver implements WithDefaultLegend {
public static final String DRIVERNAME = "gvSIG KML Memory Driver";
+ private ILegend legend;
+ private ILabelingStrategy labelingStrategy;
+ public void setDefaultLegend(ILegend legend) {
+ this.legend = legend;
+ }
+ public void setDefaultLabelingStrategy(ILabelingStrategy labelStrategy) {
+ this.labelingStrategy = labelStrategy;
+ }
+
+
/*
* (non-Javadoc)
* @see com.hardcode.driverManager.Driver#getName()
@@ -74,8 +90,19 @@
*/
public ArrayList getGPEParsers() {
ArrayList parsers = new ArrayList();
- parsers.add(GPEKml2_1_Parser.class);
- parsers.add(GPEKmz2_1_Parser.class);
+// parsers.add(GPEKml2_2_Parser.class);
+ parsers.add(GPEKmz2_2_Parser.class);
return parsers;
}
+
+ public ILegend getDefaultLegend() {
+ if (legend == null) {
+ legend = LegendFactory.createSingleSymbolLegend(FShape.MULTI);
+ }
+ return legend;
+ }
+
+ public ILabelingStrategy getDefaultLabelingStrategy() {
+ return labelingStrategy;
+ }
}
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/utils/GPETypesConversion.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/utils/GPETypesConversion.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/utils/GPETypesConversion.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -1,5 +1,7 @@
package org.gvsig.fmap.drivers.gpe.utils;
+import java.awt.Color;
+
import com.hardcode.gdbms.engine.values.Value;
import com.hardcode.gdbms.engine.values.ValueFactory;
@@ -54,30 +56,52 @@
*/
public class GPETypesConversion {
+ public static Color fromABGRtoColor(String abgr) {
+ long in = Long.decode("#"+ abgr);
+ int alpha = (int) (in >> 24) & 0xFF;
+ int blue = (int) (in >> 16) & 0xFF;
+ int green = (int) (in >> 8) & 0xFF;
+ int red = (int) (in >> 0) & 0xFF;
+ return new Color(red, green, blue, alpha);
+ }
+
/**
* Convert types from java to gvSIG
+ *
* @param obj
* @return
*/
- public static Value fromJavaTogvSIG(Object obj){
- if (obj instanceof String){
- return ValueFactory.createValue((String)obj);
+ public static Value fromJavaTogvSIG(Object obj) {
+ if (obj instanceof String) {
+ return ValueFactory.createValue((String) obj);
}
- if (obj instanceof Integer){
- return ValueFactory.createValue(((Integer)obj).intValue());
+ if (obj instanceof Integer) {
+ return ValueFactory.createValue(((Integer) obj).intValue());
}
- if (obj instanceof Double){
- return ValueFactory.createValue(((Double)obj).doubleValue());
+ if (obj instanceof Double) {
+ return ValueFactory.createValue(((Double) obj).doubleValue());
}
- if (obj instanceof Float){
- return ValueFactory.createValue(((Float)obj).floatValue());
+ if (obj instanceof Float) {
+ return ValueFactory.createValue(((Float) obj).floatValue());
}
- if (obj instanceof Long){
- return ValueFactory.createValue(((Long)obj).longValue());
+ if (obj instanceof Long) {
+ return ValueFactory.createValue(((Long) obj).longValue());
}
- if (obj instanceof Boolean){
- return ValueFactory.createValue(((Boolean)obj).booleanValue());
+ if (obj instanceof Boolean) {
+ return ValueFactory.createValue(((Boolean) obj).booleanValue());
}
return ValueFactory.createValue("");
- }
+ }
+
+ public static double kmlDegToRad(double angleDegree) {
+ double deg = 90-angleDegree;
+ return Math.toRadians(angleDegree);
+ }
+
+ public static double RadTokmlDeg(double rad) {
+ double angleDegree = Math.toDegrees(rad);
+ double deg = angleDegree+90;
+ return deg;
+ }
+
}
Modified: trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/writer/ExportTask.java
===================================================================
--- trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/writer/ExportTask.java 2013-11-23 15:17:10 UTC (rev 1061)
+++ trunk/extensions/extGPE-gvSIG/src/org/gvsig/fmap/drivers/gpe/writer/ExportTask.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -2,6 +2,8 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Hashtable;
import javax.swing.JComponent;
import javax.swing.JOptionPane;
@@ -9,13 +11,22 @@
import org.cresques.cts.IProjection;
import org.gvsig.fmap.drivers.gpe.reader.GPEDriverFactory;
import org.gvsig.fmap.drivers.gpe.reader.GPEVectorialDriver;
+import org.gvsig.fmap.drivers.gpe.utils.GPETypesConversion;
import org.gvsig.gpe.GPEDefaults;
import org.gvsig.gpe.GPERegister;
import org.gvsig.gpe.exceptions.ParserCreationException;
import org.gvsig.gpe.gml.utils.GMLUtilsParser;
+import org.gvsig.gpe.kml.utils.KmlCompoundStyle;
+import org.gvsig.gpe.kml.utils.KmlIconStyle;
+import org.gvsig.gpe.kml.utils.KmlLabelStyle;
+import org.gvsig.gpe.kml.utils.KmlLineStyle;
+import org.gvsig.gpe.kml.utils.KmlPolygonStyle;
+import org.gvsig.gpe.kml.utils.KmlStyle;
+import org.gvsig.gpe.kml.writer.GPEKmlWriterHandlerImplementor;
import org.gvsig.gpe.parser.GPEParser;
import org.gvsig.gpe.utils.StringUtils;
import org.gvsig.gpe.writer.GPEWriterHandler;
+import org.gvsig.symbology.fmap.symbols.PictureMarkerSymbol;
import com.hardcode.gdbms.driver.exceptions.InitializeDriverException;
import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
@@ -26,6 +37,10 @@
import com.iver.cit.gvsig.ExportTo;
import com.iver.cit.gvsig.fmap.MapContext;
import com.iver.cit.gvsig.fmap.core.IGeometry;
+import com.iver.cit.gvsig.fmap.core.symbols.IFillSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.ILineSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.IMarkerSymbol;
+import com.iver.cit.gvsig.fmap.core.symbols.ISymbol;
import com.iver.cit.gvsig.fmap.crs.CRSFactory;
import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
import com.iver.cit.gvsig.fmap.layers.FBitSet;
@@ -35,6 +50,13 @@
import com.iver.cit.gvsig.fmap.layers.ReadableVectorial;
import com.iver.cit.gvsig.fmap.layers.SelectableDataSource;
import com.iver.cit.gvsig.fmap.layers.layerOperations.LayerCollection;
+import com.iver.cit.gvsig.fmap.rendering.IClassifiedVectorLegend;
+import com.iver.cit.gvsig.fmap.rendering.ILegend;
+import com.iver.cit.gvsig.fmap.rendering.IVectorLegend;
+import com.iver.cit.gvsig.fmap.rendering.styling.labeling.AttrInTableLabelingStrategy;
+import com.iver.cit.gvsig.fmap.rendering.styling.labeling.ILabelingStrategy;
+import com.iver.cit.gvsig.fmap.rendering.styling.labeling.LabelClass;
+import com.iver.cit.gvsig.fmap.rendering.styling.labeling.LabelingFactory;
import com.iver.cit.gvsig.project.documents.view.gui.IView;
import com.iver.utiles.swing.threads.AbstractMonitorableTask;
@@ -96,6 +118,9 @@
private ExportGeometry eGeometry = null;
private File file = null;
+ private Hashtable<ISymbol, KmlStyle> symbols = null;
+ private KmlLabelStyle defaultLabelStyle;
+
public ExportTask(FLayer layer,
GPEWriterHandler writer,
MapContext mapContext,
@@ -107,7 +132,7 @@
this.file = file;
eGeometry.setProjOrig(layer.getProjection());
if (writer.getFormat().equals("text/xml; subtype=kml/2.1")){
- eGeometry.setProjDest(CRSFactory.getCRS("EPSG:4326"));
+ eGeometry.setProjDest(CRSFactory.getCRS("EPSG:4326"));
}else{
eGeometry.setProjDest(layer.getProjection());
}
@@ -167,6 +192,13 @@
String projection = eGeometry.getProjDest().getAbrev();
writer.startLayer(null, null, layer.getName(), null, projection);
+
+ if (writer.getWriterHandlerImplementor() instanceof GPEKmlWriterHandlerImplementor) {
+ GPEKmlWriterHandlerImplementor kmlWriterHandler = (GPEKmlWriterHandlerImplementor) writer.getWriterHandlerImplementor();
+ KmlStyle[] styles = convertSymbols(layer);
+ kmlWriterHandler.writeStyles(styles);
+ }
+
//Sets the extent
try {
if (layer.getProjection().getAbrev().compareTo(mapContext.getViewPort().getProjection().getAbrev())==0)
@@ -186,9 +218,101 @@
exportLayer(layers.getLayer(i));
}
}
+
writer.endLayer();
}
+ private KmlStyle[] convertSymbols(FLayer layer) {
+ FLyrVect lyrVect = (FLyrVect) layer;
+ IVectorLegend legend = (IVectorLegend) lyrVect.getLegend();
+ ISymbol defaultSym = legend.getDefaultSymbol();
+ ArrayList<KmlStyle> aux = new ArrayList<KmlStyle>();
+ KmlStyle defaultStyle = convertSymbol(defaultSym);
+ defaultStyle.setId("defaultStyle");
+ aux.add(defaultStyle);
+ symbols = new Hashtable<ISymbol, KmlStyle>();
+ symbols.put(defaultSym, defaultStyle);
+
+ // we only support a default labelStyle for all texts
+ defaultLabelStyle = new KmlLabelStyle();
+
+ if (lyrVect.isLabeled()) {
+ ILabelingStrategy labelStrategy = lyrVect.getLabelingStrategy();
+ if (labelStrategy instanceof AttrInTableLabelingStrategy) {
+ // we only support simple labels
+ AttrInTableLabelingStrategy lbs = (AttrInTableLabelingStrategy) labelStrategy;
+ defaultLabelStyle.setColor(lbs.getFixedColor());
+ defaultLabelStyle.setId("labelStyle");
+ aux.add(defaultLabelStyle);
+
+ }
+ }
+ if (legend instanceof IClassifiedVectorLegend) {
+ IClassifiedVectorLegend cLeg = (IClassifiedVectorLegend) legend;
+ ISymbol[] symbolsAux = cLeg.getSymbols();
+ for (int i=0; i < symbolsAux.length; i++) {
+ ISymbol s = symbolsAux[i];
+ KmlStyle style = convertSymbol(s);
+ style.setId(i + "");
+ aux.add(style);
+ symbols.put(s, style);
+ }
+ }
+
+ return aux.toArray(new KmlStyle[0]);
+ }
+
+ private KmlStyle convertSymbol(ISymbol s) {
+ KmlStyle style = null;
+
+ if (s instanceof IMarkerSymbol) {
+ KmlIconStyle icoStyle = new KmlIconStyle();
+ icoStyle.setColor(((IMarkerSymbol) s).getColor());
+
+ if (s instanceof PictureMarkerSymbol) {
+ float angKml = (float) GPETypesConversion.RadTokmlDeg(((IMarkerSymbol) s).getRotation());
+ icoStyle.setHeading(angKml);
+
+ //TODO: CONVERT IMAGES TO HREF... but I don't know how to do it.
+ }
+
+ style = icoStyle;
+ }
+
+ if (s instanceof ILineSymbol) {
+ ILineSymbol lSym = (ILineSymbol) s;
+ KmlLineStyle lStyle = new KmlLineStyle();
+ lStyle.setColor(lSym.getColor());
+ lStyle.setWidth((float) lSym.getLineWidth());
+
+ style = lStyle;
+
+ }
+
+ if (s instanceof IFillSymbol) {
+ IFillSymbol fSym = (IFillSymbol) s;
+ KmlCompoundStyle cStyle = new KmlCompoundStyle();
+ KmlLineStyle lStyle = new KmlLineStyle();
+ ILineSymbol lSym = fSym.getOutline();
+ lStyle.setColor(lSym.getColor());
+ lStyle.setWidth((float) lSym.getLineWidth());
+
+ KmlPolygonStyle fStyle = new KmlPolygonStyle();
+ fStyle.setColor(fSym.getFillColor());
+ fStyle.setOutline(fSym.hasOutline());
+ fStyle.setFill(fSym.hasFill());
+
+ cStyle.setLineStyle(lStyle);
+ cStyle.setPolygonStyle(fStyle);
+
+ style = cStyle;
+
+ }
+
+
+ return style;
+ }
+
/**
* It exports the layer information. Geometries if is
* a vectorial layer, images if is a raster layer...
@@ -251,15 +375,54 @@
*/
private void exportFeature(SelectableDataSource sds, ReadableVectorial rv, int index, FLayer layer){
try {
- writer.startFeature(String.valueOf(index), "FEATURE", null);
+
+ int fieldName = sds.getFieldIndexByName("name");
+ String name = null;
+ if (fieldName != -1)
+ name = sds.getFieldValue(index, fieldName).toString();
+ if (writer.getWriterHandlerImplementor() instanceof GPEKmlWriterHandlerImplementor) {
+ GPEKmlWriterHandlerImplementor kmlWriterHandler = (GPEKmlWriterHandlerImplementor) writer.getWriterHandlerImplementor();
+ FLyrVect lyrVect = (FLyrVect) layer;
+ if (lyrVect.getLabelingStrategy() != null) {
+ ILabelingStrategy labelStrategy = lyrVect.getLabelingStrategy();
+ String fieldLabel = labelStrategy.getUsedFields()[0];
+ int idfieldlabel = sds.getFieldIndexByName(fieldLabel);
+ name = sds.getFieldValue(index, idfieldlabel).toString();
+ }
+ }
+ writer.startFeature(String.valueOf(index), "FEATURE", name);
+
+ //Add the attributes
+ if (writer.getWriterHandlerImplementor() instanceof GPEKmlWriterHandlerImplementor) {
+ GPEKmlWriterHandlerImplementor kmlWriterHandler = (GPEKmlWriterHandlerImplementor) writer.getWriterHandlerImplementor();
+ // If KML, we add a fieldName styleUrl in order to export simbology
+ // If the layer is labelled, we can use the text label as <name> in order to
+ // allow Google Earth to put labels.
+ FLyrVect lyrVect = (FLyrVect) layer;
+ IVectorLegend legend = (IVectorLegend) lyrVect.getLegend();
+ ISymbol s = legend.getSymbol(index);
+ KmlStyle style = symbols.get(s);
+ if (lyrVect.isLabeled()) {
+ writer.startElement("", "styleUrl", "#" + defaultLabelStyle.getId());
+ writer.endElement();
+ }
+ else
+ {
+ writer.startElement("", "styleUrl", "#" + style.getId());
+ writer.endElement();
+ }
+
+ }
+
//Add the geoemtry
IGeometry geom = rv.getShape(index);
eGeometry.writeGeometry(geom);
- //Add the attributes
+
Value[] values = sds.getRow(index);
- for (int i=0 ; i<values.length ; i++){
+ for (int i=0 ; i<values.length ; i++){
+ String fldName = StringUtils.replaceAllString(sds.getFieldName(i), " ", "_");
writer.startElement("",
- StringUtils.replaceAllString(sds.getFieldName(i), " ", "_"),
+ fldName,
values[i].toString());
writer.endElement();
}
Copied: trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlGorlizTest.java (from rev 1060, trunk/libraries/libGPE-KML/src/org/gvsig/gpe/kml/parser/GPEKml2_1_Parser.java)
===================================================================
--- trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlGorlizTest.java (rev 0)
+++ trunk/extensions/extGPE-gvSIG/src-test/org/gvsig/fmap/drivers/gpe/kml/KmlGorlizTest.java 2013-11-23 15:18:15 UTC (rev 1062)
@@ -0,0 +1,103 @@
+package org.gvsig.fmap.drivers.gpe.kml;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+
+import org.gvsig.fmap.drivers.gpe.reader.GMLVectorialDriver;
+import org.gvsig.fmap.drivers.gpe.reader.KMLVectorialDriver;
+import org.gvsig.fmap.drivers.gpe.reader.v2.GPEParserTest;
+import org.gvsig.gpe.GPERegister;
+
+import com.hardcode.gdbms.driver.exceptions.ReadDriverException;
+import com.iver.cit.gvsig.fmap.crs.CRSFactory;
+import com.iver.cit.gvsig.fmap.drivers.DriverIOException;
+import com.iver.cit.gvsig.fmap.layers.FLyrVect;
+import com.iver.cit.gvsig.fmap.layers.LayerFactory;
+
+/* gvSIG. Sistema de Informaci\xF3n Geogr\xE1fica de la Generalitat Valenciana
+ *
+ * Copyright (C) 2004 IVER T.I. and Generalitat Valenciana.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,USA.
+ *
+ * For more information, contact:
+ *
+ * Generalitat Valenciana
+ * Conselleria d'Infraestructures i Transport
+ * Av. Blasco Ib\xE1\xF1ez, 50
+ * 46010 VALENCIA
+ * SPAIN
+ *
+ * +34 963862235
+ * gv...@gv...
+ * www.gvsig.gva.es
+ *
+ * or
+ *
+ * IVER T.I. S.A
+ * Salamanca 50
+ * 46005 Valencia
+ * Spain
+ *
+ * +34 963163400
+ * da...@iv...
+ */
+/* CVS MESSAGES:
+ *
+ * $Id$
+ * $Log$
+ *
+ */
+/**
+ * @author Jorge Piera LLodr\xE1 (jor...@iv...)
+ */
+public class KmlGorlizTest extends GPEParserTest {
+
+ protected KMLVectorialDriver driver;
+ private FLyrVect layer = null;
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.gpe.GPEDriverTest#getFile()
+ */
+ public String getFile() {
+ return "../extGPE-gvSIG" + File.separatorChar +
+ "testdata" + File.separatorChar + "gorliz.kml";
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see com.iver.cit.gvsig.fmap.drivers.gpe.GPEDriverTest#makeAsserts()
+ */
+ public voi...
[truncated message content] |