#1 Wed 13 October 2010 11:11
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
KML via API Gmaps
Bonjour à tous,
Je découvre l'API Gmaps, et souhaiterais l'utiliser pour afficher une carte sur un site.
Pour l'affichage de l'interface, aucun souci. Par contre, ne maitrisant pas le langage, je ne parviens pas à insérer un layer stocké en local...
Voici le code utilisé :
Code:
<html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> function initialize() { var latlng = new google.maps.LatLng(43.60445,1.44333); var latlng2 = new google.maps.LatLng(5.1583333,-52.642778); var myOptions = { zoom: 12, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var myOptions2 = { zoom: 12, center: latlng2, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_toulouse"), myOptions); var map2 = new google.maps.Map(document.getElementById("map_kourou"), myOptions2); var macouche_kml = new GGeoXml("S:\mon_chemin\macouche.kml"); map_toulouse.addOverlay(macouche_kml); } </script> </head> <body style="margin:0px; padding:0px;" onload="initialize()"> <div id="texte" style="font-family:Tahoma"> <br> Ceci est un test d'affichage de deux fenêtres Gmaps.<br> Nous avons en plus ajouté une couche de données locale, au format XML.<br><br> </div> <div id="map_toulouse" style="width:40%; height:40%"></div> <br> <div id="map_kourou" style="width:40%; height:40%"></div> </body> </html>
Merci pour votre aide!
TL
Hors ligne
#2 Wed 13 October 2010 11:39
Re: KML via API Gmaps
Bonjour,
Je te transfert vers le forum webmapping où tu trouveras plus de gens compétent sur l'API Google Maps
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#4 Wed 13 October 2010 12:23
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
Re: KML via API Gmaps
Merci Yves, merci simon_g.
Je comprends mieux le problème. J'ai alors deux questions :
1. Après avoir héberger mon KML sur un site, le résultat n'affiche toujours pas mon layer, mais simplement le fond Gmpas...
Mon code comporte t-il des erreurs?
2. Est-il possible d'intégrer un kml à partir d'un chemin physique?
TL
Dernière modification par on_a_pas_un_métier_facile (Wed 13 October 2010 14:35)
Hors ligne
#5 Wed 13 October 2010 15:35
Re: KML via API Gmaps
1. Après avoir héberger mon KML sur un site, le résultat n'affiche toujours pas mon layer, mais simplement le fond Gmpas...
Mon code comporte t-il des erreurs?
Pour le savoir, tu peux le passer au validateur :http://www.kmlvalidator.com/home.htm
ou le fournir en entrée à http://maps.google.fr/maps?hl=fr&tab=wl en spéciiant ton url dans le champ de recherche
2. Est-il possible d'intégrer un kml à partir d'un chemin physique?
Non.
"The KML file must be accessible by the Google KML rendering server.
It won't work with KML files on your local computer. You don't get any
error messages if the KML file is inaccessible."
Hors ligne
#6 Wed 13 October 2010 16:40
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
Re: KML via API Gmaps
Bien. Je vais travailler dans ce sens.
Je te remercie simon_g.
TL
Hors ligne
#7 Wed 13 October 2010 17:09
Re: KML via API Gmaps
Bonjour,
Je ne sais pas si ce que je vais dire est pertinent, ca l'est en tout cas pour OpenLayers, mais je pense que le code JavaScript qui va lire le KML et le KML doivent être sur le même serveur avec le même port.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#8 Wed 27 October 2010 12:09
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
Re: KML via API Gmaps
Bonjour,
Je n'ai toujours pas réglé mon problème, à savoir afficher un fichier kml via l'api Gmaps.
Reprenons du début :
1. J'ai commencé par convertir un fichier MIF (3 points représentant 3 villes françaises) au format KML via FWTools.
Ainsi j'ai obtenu le fichier suivant :
Code:
<?xml version="1.0" encoding="utf-8" ?> <ogr:FeatureCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://ogr.maptools.org/villes_pt.xsd" xmlns:ogr="http://ogr.maptools.org/" xmlns:gml="http://www.opengis.net/gml"> <gml:boundedBy> <gml:Box> <gml:coord><gml:X>-1.556056763745512</gml:X><gml:Y>43.59966544473441</gml:Y></gml:coord> <gml:coord><gml:X>1.448570244753995</gml:X><gml:Y>47.21825317135873</gml:Y></gml:coord> </gml:Box> </gml:boundedBy> <gml:featureMember> <ogr:villes_pt fid="F0"> <ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>1.448570244753995,43.599665444734413</gml:coordinates></gml:Point></ogr:geometryProperty> <ogr:CODE>31555</ogr:CODE> <ogr:NOM>Toulouse</ogr:NOM> <ogr:POP90>358598.000</ogr:POP90> <ogr:densité>0</ogr:densité> </ogr:villes_pt> </gml:featureMember> <gml:featureMember> <ogr:villes_pt fid="F1"> <ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-0.57692512124582,44.842591594876197</gml:coordinates></gml:Point></ogr:geometryProperty> <ogr:CODE>33063</ogr:CODE> <ogr:NOM>Bordeaux</ogr:NOM> <ogr:POP90>210467.000</ogr:POP90> <ogr:densité>0</ogr:densité> </ogr:villes_pt> </gml:featureMember> <gml:featureMember> <ogr:villes_pt fid="F2"> <ogr:geometryProperty><gml:Point srsName="EPSG:4326"><gml:coordinates>-1.556056763745512,47.218253171358732</gml:coordinates></gml:Point></ogr:geometryProperty> <ogr:CODE>44109</ogr:CODE> <ogr:NOM>Nantes</ogr:NOM> <ogr:POP90>244514.000</ogr:POP90> <ogr:densité>0</ogr:densité> </ogr:villes_pt> </gml:featureMember> </ogr:FeatureCollection>
2. J'ai héberger ma page html ainsi que mon fichier kml sur un site web.
Code:
<html> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> <script type="text/javascript"> function initialize() { var latlng = new google.maps.LatLng(43.60445,1.44333); var latlng2 = new google.maps.LatLng(5.1583333,-52.642778); var myOptions = { zoom: 12, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP }; var myOptions2 = { zoom: 12, center: latlng2, mapTypeId: google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map_toulouse"), myOptions); var map2 = new google.maps.Map(document.getElementById("map_kourou"), myOptions2); var fichier_kml = new GGeoXml("http://207182.edicypages.com/files/villes_pt.kml"); map_toulouse.addOverlay(fichier_kml); map_toulouse.enableGoogleBar(); } </script> </head> <body style="margin:0px; padding:0px;" onload="initialize()"> <div id="texte" style="font-family:Tahoma"> <br> Ceci est un test d'affichage de deux fenêtres Gmaps.<br> Nous tentons en plus d'ajouter une couche de données au format KML.<br><br> </div> <div id="map_toulouse" style="width:40%; height:40%"></div> <br> <div id="map_kourou" style="width:40%; height:40%"></div> </body> </html>
3. Je rentre l'url dans un navigateur, mais le kml n'apparait pas dans ma fenêtre Gmaps...
Quelqu'un voit -il une erreur dans le procédé ou le code?
Éventuellement, si vous avez un fichier kml "valable" que je pourrais essayer d'afficher dans ma fenêtre, je suis preneur.
Merci d'avance pour votre aide!
Dernière modification par ThomasL (Wed 27 October 2010 12:10)
Hors ligne
#9 Wed 27 October 2010 12:26
Re: KML via API Gmaps
Bonjour Thomas,
Avez-vous vérifié le chargement du fichier kml dans Google Earth ?
A priori non si j'en juge les balises ogr et gml contenues dans le pseudo fichier kml.
Il faut reprendre la conversion du fichier MIF en KML avant d'envisager sa visu dans Google Maps.
Bien cordialement
--
Peio Elissalde
Magic Instinct Software
Hors ligne
#10 Wed 27 October 2010 15:26
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
Re: KML via API Gmaps
Bonjour,
En effet, mon kml n'était pas bon. J'en ai un nouveau, vérifié sur KML VALIDATOR (je n'ai pas GoogleEarth, ma demande aux admin informatique met du temps dans mon entreprise).
Code:
<?xml version="1.0" encoding="UTF-8"?> <kml xmlns="http://www.opengis.net/kml/2.2"> <Placemark> <name>Simple placemark</name> <description>Toulouse</description> <Point> <coordinates>43.60445,1.44333,0</coordinates> </Point> </Placemark> </kml>
Toutefois, toujours aucun affichage... J'ai modifié un peu le code de ma page html pour plus de clarté.
Code:
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml" xml:lang="fr"> <head> <title>Test_Thomas</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!-- Chargement du script Google Maps, version 2.x, en précisant votre clé --> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAEBUZh3Seb_5DTwCnUyG-9xQpUR4a_9M4aOYXriPg0vrHR29ZdBS0PUsGk7YPFcXdNE5MMKs8m1k3Sw&sensor=false" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var maCarte; /* Fonction initialize() */ function initialize() { /* Si le navigateur est compatible avec l'API de Google Maps ... */ if (GBrowserIsCompatible()) { /* ... Création d'une nouvelle carte ayant pour nom "maCarte" et qui se situera en lieu et place de la <div> ayant pour identifiant id="EmplacementDeMaCarte" ... */ maCarte = new GMap2(document.getElementById("EmplacementDeMaCarte")); /* ... La carte nommée "Macarte" est centrée sur la Latitude 43.60445, la Longitude 1.44333, avec un niveau de zoom égal à 13 ... */ maCarte.setCenter(new GLatLng(43.60445,1.44333), 13); /* ... Ajout de l'interface utilisateur Google Maps à la carte nommée "maCarte" ... */ maCarte.setUIToDefault(); /* ... Affichage de la GoogleBar sur la carte nommée "maCarte" ... */ maCarte.enableGoogleBar(); /* ... Ajout d'une couche KML hébergée sur un site web ... */ var fichier_kml = new GGeoKml("http://207182.edicypages.com/files/toulouse.kml"); maCarte.addOverlay(fichier_kml); /* Si le navigateur n'est pas compatible avec l'API de Google Maps ... */ }else{ /* ... affichage du message "Désolé, mais votre navigateur n'est pas compatible avec Google Maps". */ alert('Désolé, mais votre navigateur n\'est pas compatible avec Google Maps'); } } //]]> </script> </head> <!-- Au chargement de la page, la fonction initialize() est executée. A la fermeture de la page, la fonction GUnload() est exécutée --> <body onload="initialize()" onunload="GUnload()"> <!-- La <div> ayant pour identifiant id="EmplacementDeMaCarte" fait 100% de largeur et 800 pixels de haut. C'est à cet endroit que va venir s'afficher la carte nommée "maCarte". --> <div id="EmplacementDeMaCarte" style="width: 100%; height: 800px"></div> </body> </html>
Je suis débutant donc il est possible qu'il y ait des fautes grossières... Merci de votre patience et de votre aide.
Thomas
Dernière modification par ThomasL (Wed 27 October 2010 15:28)
Hors ligne
#11 Wed 27 October 2010 19:38
Re: KML via API Gmaps
Bonjour,
le code est presque bon :
- il s'agit de la classe GGeoXml et non GGeoKml.
Dans ce cas, le POI s'affiche correctement mais non à Toulouse : dans un fichier KML l'ordre des coordonnées est inversé par rapport à l'API Javascript.
En dézoomant pas mal, nous le retrouvons en Somalie ...
Attention cependant, vous utilisez la version 2 de l'API qui est 'deprecaded'.
Dans la version 3 il faudra utiliser ceci : http://code.google.com/intl/fr-FR/apis/ … l#KmlLayer
Cordialement,
Fabien Goblet
Hors ligne
#12 Fri 29 October 2010 11:27
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
Re: KML via API Gmaps
Bonjour,
Ça y est, j'arrive à afficher mes KML!
Sur le fichier point, il y avait bien le problème GGeoXml ainsi que l'inversion des coordonnées. Je parviens également à afficher des polygones cliquables.
Toutefois, j'ai essayé de convertir un fichier MIF de MapInfo en kml via FWTools. Et il y a une erreur relativement gênante : dans les coordonnées, au lieu de noter 30.40,2.22 la conversion confond "." et ","! Du coup, je me retrouve avec 30,40,2,22 qui ne donne évidemment rien.
Je travaille maintenant dans la recherche d'un outil de conversion fiable, et qui maintiendrai également mes données attributaires de ma table extraite de MapInfo.
Cordialement,
Thomas
Hors ligne
#13 Fri 29 October 2010 11:56
Re: KML via API Gmaps
Bonjour,
Je pense que ogr2ogr doit utiliser la configuration du système pour le séparateur décimal Je n'ai pas trouvé d'option permettant de le modifier par la commande ogr2ogr.
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#14 Fri 19 November 2010 11:41
- ThomasL
- Participant actif
- Lieu: Paris
- Date d'inscription: 16 Apr 2007
- Messages: 137
Re: KML via API Gmaps
Bonjour à tous,
Nouvelle question en rapport avec le titre du sujet :
J'affiche plusieurs KML via l'API. Je voulais savoir s'il y avait une limite de taille des KML à afficher?
Car j'ai 31 KML à afficher, mais lorsque je dépasse 23 (environ 46 Mo), plus rien ne s'affiche...
Merci et bonne journée.
Thomas
Hors ligne