Pb javascript OSM

Bonjour à tous,
Je cherche à inclure une carte osm dans une interface développée en QT.
Je parviens à afficher une carte en générant le javascript suivant :

<HTML style="HEIGHT: 100%">
<html>
	<body>
		<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
		<div id="map"></div>
		<script type=text/javascript>
			map = new OpenLayers.Map(("map"));		
			map.addLayer(new OpenLayers.Layer.OSM());
			var lonLat = new OpenLayers.LonLat( -0.644722 ,44.843056 ).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
			var zoom=16;
			map.setCenter (lonLat, zoom);
		</script>
	</body>
</html>

Je précise que la création de la carte avec document.getElementById ne permet pas d’afficher la carte (dans mon cas).

Malheureusement, j’ai un problème de rafraichissement de carte. Par exemple, dans le code suivant, la seconde partie affichant une autre position est :

  • soit pas prise en compte (si j’utilise document.getElementById) pour la création de la carte osm ;
  • soit affichée en dessous de la carte précédente si j’enlève document.getElementById.
<HTML style="HEIGHT: 100%" >
<html>
	<body>
		<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
		<div id="map"></div>
		<script type=text/javascript>
			map = new OpenLayers.Map(("map"));		//map = new OpenLayers.Map("mapdiv");
			map.addLayer(new OpenLayers.Layer.OSM());
			var lonLat = new OpenLayers.LonLat( -0.644722 ,44.843056 ).transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject());
			var zoom=16;
			map.setCenter (lonLat, zoom);
            map1 = new OpenLayers.Map(document.getElementById("map"));
            map1.addLayer(new OpenLayers.Layer.OSM());
            var lonLat = new OpenLayers.LonLat( -0.644722 ,44.943056 ).transform(new OpenLayers.Projection("EPSG:4326"),map1.getProjectionObject());		
			map1.setCenter (lonLat, 10);
		</script>
	</body>
</html>

Si quelqu’un voit le problème (de l’utilisation de document.getElementById certainement), merci de me le faire savoir.

Fred

Bonjour,
Tu n’es pas obligé de passer par Javascript pour afficher des cartes OSM. Il y a un exemple sur le site de QT : http://qt-project.org/doc/qt-4.8/demos-embedded-lightmaps.html

Merci pour l’info.
Le problème est que je ne maitrise pas trop osm tiles.
De plus, je veux pouvoir ensuite envoyer des requêtes avec nominatim par exemple et je ne sais pas comment faire autrement…

As-tu testé ce code javascript dans un navigateur ? C’est peut être le moyen le plus de le debugguer, non ?