Convertir un fichier excel en un fichier kml

anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013 - 15 févr. 2013 à 15:33
 ammouraenig - 18 avril 2013 à 00:31
Bonjour,
Je suis novice en Java et je dois faire un fichier kml pour une application dans google earth à partir d'un fichier excel pour mon projet fin d'etude. Pour ce faire, j'ai créé une interface graphique avec un bouton qui me permette d'enregistrer le fichier kml à un endroit choisi. Cependant je n'arrive pas a trouver une solution pour convertir un fichier excel a un fichier kml , c'est pour cette raison que j'en appelle à votre savoir, peut être pourrez-vous me dépaner,je n'oublierai jamais votre aide ! merci d'avance!

19 réponses

bachir09 Messages postés 4 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 20 février 2013
18 févr. 2013 à 15:32
Bonjour,
tu dois lire le fichier excel à l'aide du java (il y a des APIs), et puis tu connais tous les noeuds donc tu commence à créer ton fichier kml à l'aide d'une API aussi javaapiforkml.jar Tapez le texte de l'url ici.
bonne chance
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
18 févr. 2013 à 22:05
merci pour votre reponse mais le probleme que j'ai deja essayer avec l'API kml (JAK) et j'ai telecharger les .jar aussi j'ai fait la build path pour essayer un code comme ceci mais il m'a envoyer plusieurs erreurs comme il n'accepte pas ces .jar ou ne les lires pas.

import de.micromata.opengis.kml.v_2_2_0.KmlFactory;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.Collections;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.io.FileNotFoundException;
import de.micromata.opengis.kml.v_2_2_0.Kml;
import com.sun.xml.internal.txw2.Document;

public final class BrowserControl {

final Kml kml = new Kml();
final Document document = new Document();
kml.setFeature(document);

document.setName("Document.kml");
document.setOpen(true);

final Style style = new Style();
document.getStyleSelector().add(style);
style.setId("exampleStyleDocument");

final LabelStyle labelStyle = new LabelStyle();
style.setLabelStyle(labelStyle);

labelStyle.setColor("ff0000cc");

final Placemark placemark1 = new Placemark();
document.getFeature().add(placemark1);
placemark1.setName("Document Feature 1");
placemark1.setStyleUrl("#exampleStyleDocument");

final Point point1 = new Point();
placemark1.setGeometry(point1);
List<Coordinate> coord1 = new ArrayList<Coordinate>();
point1.setCoordinates(coord1);
coord1.add(new Coordinate(-122.371,37.816,0));

final Placemark placemark2 = new Placemark();
document.getFeature().add(placemark2);
placemark2.setName("Document Feature 2");
placemark2.setDescription("An example of BalloonStyle");
placemark2.setStyleUrl("#exampleStyleDocument");

final Point point2 = new Point();
placemark2.setGeometry(point2);
List<Coordinate> coord2 = new ArrayList<Coordinate>();
point2.setCoordinates(coord2);
coord2.add(new Coordinate(-122.370,37.817,0));
}
0
bachir09 Messages postés 4 Date d'inscription vendredi 30 novembre 2007 Statut Membre Dernière intervention 20 février 2013
20 févr. 2013 à 14:50
Est ce qu'il y a des croix rouges dans ta classe?
si oui donc il faut vérifier le 'build path' parce que les jars ne sont pas pris en compte ou bien tu vérifie est ce que ce sont les biens .jars ou non?
moi j'utilise les .jars suivants : JavaAPIforKml.jar, jaxb-api-2.1.jar et jaxb-impl-2.1.5.jar pour générer des fichiers kml et ça marche.
tu peux voir des exemples ici.

bonne chance
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
20 févr. 2013 à 20:43
voici les .jars que j'utilise 'JavaAPIforKml.jar' , 'JavaAPIforKml-sources.jar' , 'XJCPluginJavaApiforKml.jar' je les ai telechargé depuis cette page http://code.google.com/p/javaapiforkml/downloads/list
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
20 févr. 2013 à 20:50
voici un aperçu de ce que je vois quand je copie le code les erreurs partout biensur j'ai fait le 'build path' des .jars que tu m'a proposé

http://www.hostingpics.net/viewer.php?id=791298interface.jpg
0
salut
si tu corriges les fautes de ce code ,svp deposer dans ce site parceque je besoin ce code pour mon pfe et meme si vous trouvez autre solution svp aide moi
merci d'avance
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
22 févr. 2013 à 21:12
salut ammouraenig j'ai pas trouver une solution pour cette astuce mais j'ai trouvé une autre solution en utilisant un macro appliqué sur un fichier excel je sais est ce que tu sais comment marche les macro...voir cette video par exemple
http://www.youtube.com/watch?v=2CWrs7ORhZs
0
salut anwer86
dsl je ne sais pas comment marche les macros .
1)pour votre code ,j'ai des erreurs seulement au niveau
"import com.sun.xml.internal.txw2.Document;"
je ne sais pas quel .jar on ajoute pour faire cette importation .
2) je essaye avec autre méthode de convertir fichier excel vers fichier xml .
mais je ne trouve pas une solution de convertir fichier xml vers fichier kml.

si qcq a des solutions svp m'aider .
merci d'avance
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
23 févr. 2013 à 21:58
en utilisant java j'arrive pas a trouver code qui me permet de convertir fichier excel en fichier kml mais si tu veux telecharge ces .jar peut etre il marche avec toi le code http://code.google.com/p/javaapiforkml/downloads/list aussi telecharge ces .jar jaxb-api-2.1.jar et jaxb-impl-2.1.5.jar!! si tu veux je t'aide a savoir comment ca marche un macro avec un exemple de mon travail
0
salut
merci anwer86
j'essai de faire une fct pour convertir fichier excel to kml
mais je trouve une probleme
voici le lien pour mon code(http://www.javafr.com/forum/sujet-FICHIER-EXCEL-TO-KML_1629599.aspx)
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
8 mars 2013 à 00:50
pour moi j'ai pas trouvé un code que me permet de convertir un fichier Excel en un fichier Kml mais comme je t'ai deja dis j'ai trouvé une autre solution a partir des macro...je vais te montrer comment appliquer une macro peut etre cela vous aide dans votre projet!!
sous l'onglet "développeur" dans votre fichier excel tu clique sur enregistrer une macro tu choisit le nom de votre macro puis "ok"..aprés tu clique sur "macros" a coté de "enregistrer une macro" tu va avoir une liste des macros appliqués sur votre fichier excel et puisque c'est ta premiere enregistrement donc tu va trouver just la macro que tu a enregistrer au debut tu clique sur lui et tu fait modifier et il va aparaitre une page ou on ecrit le code de macro!
voici par exemple le nom de mon macro est "Macro_admin_kml"
______________________________________
le code :

Sub Macro_admin_kml()
'programme en visual basic

ActiveWorkbook.Save

'********************declaration des variable****************************
Dim text As String
Dim sitename As String
Dim cellName As String
Dim date_t As String
Dim BSC As String

Dim coord_x As String
Dim coord_y As String
Dim couleur As String

text = ""
'**************entête du fichier test.kml **********************

x1 = "<?xml version=""1.0"" encoding=""UTF-8""?>"
x2 = "<kml xmlns=""http://earth.google.com/kml/2.2"">"
x3 = "<Document>"
x4 = "<name>anwer.kml</name>"
text = text + (x1 + x2 + x3 + x4)
'*********************le corps du fichier (se qui est variable) ****************
For i = 2 To 13

BSC = Feuil1.Cells(i, 1) 'recupération des valeur du tableau
sitename = Feuil1.Cells(i, 2) ' pour chaque ligne on récupère le contenu de la colonne
cellName = Feuil1.Cells(i, 3) 'cette exemple é fait que pour six colonne
date_t = Feuil1.Cells(i, 4) '5 BTS (5 ligne)
coord_x = Feuil1.Cells(i, 5)
coord_y = Feuil1.Cells(i, 6)

couleur = "FFFF0000"

' ------------------------------------------------------------------------------------

'*********identification de style de google earth***********

x5 = "<Style id=""style1""> <color>" + couleur + "</color><href>http://maps.google.com/mapfiles/kml/shapes/star.png</href> </Style>"

x51 = "<Style id= ""style2""> <color>ffff0000</color><href>http://maps.google.com/mapfiles/kml/shapes/star.png</href> </Style>"

x52 = "<StyleMap id=""StyleMap""><key>normal</key><styleUrl>#style1</styleUrl>

<key>highlight </key><styleUrl>#style2</styleUrl>

</StyleMap>"

x6 = "<Folder>"
x7 = "<name>AllTunisia_Candidat</name>"
x8 = "<open>1</open>"
'**********extraction des valeurs depuis le tableau EXCEL***********
x9 = "<name>" + sitename + "</name><styleUrl>#StyleMap</styleUrl>"
x10 = "<description><![CDATA[ aaa |GTU210 |\"
x11 = \"----
Nom |" + sitename + " |\"
x13 = \"----
BSC |" + BSC + " |\"
x14 = \"----
SITENAME |" + sitename + " |\"
x15 = \"----
CELLNAME |" + cellName + " |\"
x16 = \"----
DATE |" + date_t + " |\"

x17 = "
]]>" + msg + "

"

x18 = "</description><coordinates>" + coord_x + "," + coord_y + "</coordinates>

"
x19 = "</Folder>"
text = text + (x5 + x51 + x52 + x6 + x7 + x8 + x9 + x10 + x11 + x13 + x14 + x15 + x16 + x17 + x18 + x19)
Next i
text = text + "</Document></kml>"
'************la concaténation des lignes é contenu dans la variable text ***********
'************** text sera envoyer vers un fichier "test.kml" sous c:\test.kml*************
Open "C:\test.kml" For Output As #1 ' ****Ouvre le fichier en écriture.****
Print #1, text '**** Ecrit le texte dans le fichier.*****
'Close [1]
'********pour la mise a jour automatique sur google ,
'***il faut fair un fichier lien sur google earth qui pointe sur le fichier test.kml****

End Sub
_____________________________________
aprés ecrire le code tu fait l'enregistrement et tu ferme cette page de code et tu retourne a l'onglet "développeur" tu clique sur "macros" et tu éxecute ton macro et tu va avoir le fichier de sortie "test.kml" sous le repetoire "C" comme tu indique doans votre code...!!

bon chance
0
ammouraenig
10 mars 2013 à 14:18
salut anwer86
merci pour votre explication de macro .mais enfin j'ai devellopé un programme en java qui permet de lire fichier excel et le convertir en fichier kml.


package pfe;


import javax.xml.bind.annotation.XmlType;

import javax.xml.bind.annotation.XmlSchema;
import javax.xml.bind.annotation.XmlRootElement;

import java.io.*;
import java.math.*;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import java.io.*;

//JDOM
import org.jdom.transform.*;
import org.jdom.output.*;
//TrAX
import javax.xml.transform.*;
import javax.xml.transform.stream.StreamSource;
import org.jdom.*;
import org.jdom.output.*;


public class plusieurpts{


static Element racine = new Element("kml");
static org.jdom.Document Document = new Document(racine);

public static void main(String[] args) throws BiffException, IOException
{
racine.addNamespaceDeclaration(Namespace.getNamespace("gx", "http://www.google.com/kml/ext/2.2"));
racine.setNamespace(Namespace.getNamespace("http://www.opengis.net/kml/2.2"));


Workbook workBook = null;
FileInputStream filein = null;
String nameFile = "d:\\gcr.xls";
filein = new FileInputStream(nameFile);
workBook = Workbook.getWorkbook(filein);
Sheet onglet1 = workBook.getSheet(0);


Element cellule1 = new Element("Document");
racine.addContent(cellule1);




Element cellule2 = new Element("Style");
cellule2.setAttribute("id","My_Style");
cellule1.addContent(cellule2);


Element cellule3 = new Element("IconStyle");
cellule2.addContent(cellule3);
Element cellule4 = new Element("Icon");
cellule3.addContent(cellule4);


Element cellule5 = new Element("href");
cellule5.setText("http://www.earthpoint.us/Dots/GoogleEarth/paddle/ltblu-diamond.png");
cellule4.addContent(cellule5);

Element cellule6 = new Element("LabelStyle");
cellule2.addContent(cellule6);

Element cellule7 = new Element("color");
cellule7.setText("FFF000FF");
cellule6.addContent(cellule7);

Element cellule8 = new Element("scale");
cellule8.setText("1");
cellule6.addContent(cellule8);

Element cellule9 = new Element("LineStyle");
cellule2.addContent(cellule9);

Element cellule10 = new Element("color");
cellule10.setText("FFFF00FF");
cellule9.addContent(cellule10);

Element cellule11 = new Element("width");
cellule11.setText("2");
cellule9.addContent(cellule11);

Element cellule12 = new Element("Folder");
cellule1.addContent(cellule12);


for(int j =1;(j
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
10 mars 2013 à 22:30
c'est bien..est ce que tu peux me donner les noms des .jar que tu les as utilisé ?
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
10 mars 2013 à 22:38
tu peut faire un bouton comme celui la

superviser = new JButton("superviser");
superviser.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e)
{
try
{
menuItem1ActionPerformed(e);
}
catch (IOException e1)
{
// TODO Auto-generated catch block
e1.printStackTrace();
}}

});

private void menuItem1ActionPerformed(ActionEvent e) throws IOException {

Process p=null;

try {

Runtime.getRuntime().exec("cmd.exe /k start C:/..(chemin de votre fichier) " );

} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();

}
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
10 mars 2013 à 22:50
este ce que tu peux me donner les noms des .jar que tu les as utilisés et un apercu de votre tableau Excel ?? et merci bien
0
ammouraenig
11 mars 2013 à 08:23
salut anwer86
dsl je ne vois pas ton msg que ce matin .
tableau excel:
Latitude longitude name description Icône
37,155 9,793 menzel ville 12
37,105 9,79 mateur villemateur 12


les .jars:

1)JavaAPIforKml (1).jar
2)JavaAPIforKml-sources
3)jdom-1.0.jar
4)jdom-2.0.4.jar
5)jdom-2.0.4-contrib
6)jdom-2.0.4-javadoc
7)jdom-2.0.4-junit
8)jdom-2.0.4-sources
9)jedit5.0.0install
10)jxl-2.6
11)poi-2.5.1
12)poi-3.2-FINAL
13)poi-ooxml-3.5-FINAL


voici un lien pour telecharger les .jar:
http://www.findjar.com/jar/com/sun/xml/bind/jaxb-impl/2.1.5/jaxb-impl-2.1.5.jar.html


si tu trouve une probleme me contacter si possible par email pour mieux expliquer.
bon travail et bon courage :)
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
12 mars 2013 à 02:19
merci bien je vais le tester ce code..bon chance pour toi aussi
0
anwer86 Messages postés 33 Date d'inscription mercredi 9 novembre 2011 Statut Membre Dernière intervention 19 avril 2013
12 mars 2013 à 03:26
j'ai le tester mais il marche pas avec moi j'ai un erreur dans la console d'eclipse "at plusieurpts.main(plusieurpts.java:29)" je sais pas comment le fixer si tu as une idée et merci
0
salut
je voudrais exporter certaines données de google earth(fich.kml) vers un fichier (text,csv ou excel) avec un code Java.
Quelqun aurait il, au moins, un debut de reponse (morceaux de code, objets a utiliser,...) ?
est ce que on peut faire un lien sur google earth pour télécharger un fichier kml ?
merci d'avance
0
Rejoignez-nous