1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
|
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<title>test carte osm</title>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
html { height: 100% }
body { height: 100%;
width:100%;
margin:auto;
border: 0px solid red;}
#map {
border-top: 3px solid grey;
height:100%;
width: 100%;
}
div.olControlAttribution{
font-family: Verdana;
font-size: 0.5em;
bottom: 20px;
}
div.olControlScaleLine {
font-family: Verdana;
font-size: 0.8em;
bottom: 20px;
}
</style>
<script src="http://www.openlayers.org/api/OpenLayers.js"></script>
<script type="text/javascript">
//petite fonction lien pour marqeur intéractif
function cliquemarker(evt) {
window.location.href="testlien.php";
}
function init() {
var zoom=14;
//Création du fond de carte OSM --> qui s'affichera dans le div (id="map") de la page html
var map = new OpenLayers.Map("map");
map.addLayer(new OpenLayers.Layer.OSM());
//création d'un point 0 pour le centrage de la carte
var lonLat0 = new OpenLayers.LonLat(-0.144656,46.221248)
.transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject() // Transformation des coordonnées dans la projection de la carte
);
//ajout de l'échelle sur la carte
map.addControl(new OpenLayers.Control.ScaleLine({bottomOutUnits: ''}))
//ajout de la possibilité de zoomer et dezoomer sur l'ensemble du monde
map.zoomToMaxExtent();
//On centre la carte sur le point0 avec un niveau de zoom à 14 (moyen)
map.setCenter (lonLat0, zoom);
//Création d'un layer qui va contenir des marqueurs
var markers = new OpenLayers.Layer.Markers( "Markers" );
map.addLayer(markers);
// creation d'un marqueur aux coordonnées longlat1 et transformation en coord de projection
var lonLat1 = new OpenLayers.LonLat(-0.146432,46.220610)
.transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
//creation d'un marqueur icone
var size = new OpenLayers.Size(30,30);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('../icon/mystere.png', size, offset);
marker = new OpenLayers.Marker(lonLat1,icon);
//ajout du marker
markers.addMarker(marker);
//tentative de creation d'un "evenement tap"
map.addControl(new OpenLayers.Control.Click({ pixelTolerance: 10 }));
//le marqueur devient intéractif: click : PC uniquement !
marker.events.register("click", marker,cliquemarker);
//click ne marche pas sous openlayers sur mobile alors on met touchstart....
marker.events.register("touchstart", marker,cliquemarker);
var lonLatlabel = new OpenLayers.LonLat(-0.146432,46.220610)
.transform(
new OpenLayers.Projection("EPSG:4326"),
map.getProjectionObject()
);
var pointlabel = new OpenLayers.Geometry.Point(lonLatlabel.lon,lonLatlabel.lat);
var calquelabel = new OpenLayers.Layer.Vector("labels");
map.addLayer(calquelabel);
var featurePoint = new OpenLayers.Feature.Vector(
pointlabel, null, {label:"label ici",fontColor:"blue"}
);
calquelabel.addFeatures(featurePoint);
}
</script>
</head>
<body onload="init()">
<div id="map"></div>
</body>
</html> |
Partager