image image image
Introduction au développement en couche
Le déclin de l'informatique au Qc
Devenir un développeur Freelance
Introduction au développement en couche En entreprise, les logiciels les plus fréquemment développés sont des interfaces utilisateurs permettant la gestion d'un ensemble de données tel que les données clients d'une entreprise. Ils veulent pouvoir ajouter, supprimer et modifier les informations de leurs clients. Une base de données permet de stocker leur information.
  Plus ...
Le déclin de l'informatique au Qc Les années 1990 ont connu une fulgurante explosion dans tous les domaines se rapportant à l'informatique et aux nouvelles technologies. Dans ces années, on pouvait voir une quantité phénoménale d'étudiants en informatique qui cherchait à faire fortune dans un domaine en plein essor. La diversité des emplois et le nombre de postes disponibles étaient en constante augmentation.

Plus ...
Devenir un développeur Freelance Avez-vous déjà rêvé d'être un développeur web indépendant; Freelance ? Que vous travailliez pour quelqu'un ou que vous développez pour le plaisir, il y a quelques trucs et conseils que vous pouvez utiliser pour vous faciliter la vie en tant que développeur web indépendant même si vous ne le faites qu'à temps partiel.

Plus ...
Mardi Février 09 , 2010
TEXT_SIZE
   

Tutoriaux

Introduction à jQuery et Google Maps

Il existe déjà une multitude de techniques différentes afin d'afficher une carte Google Map dans votre page web. Voyons en une de plus aujourd'hui grâce à l'utilisation de jQuery et des API googles. Voyons donc comment faire interagir les 2 ensembles.

Intégration de l'API Google Maps et de jQuery


Tout d'abord, il vous faudra obtenir votre clé (API KEY) en vous inscrivant sur le site de google ; http://code.google.com/apis/maps/signup.html. Vous aurez besoin de cette dernière à l'étape suivante.


Chargeons ensuite jQuery et l'API dans vos pages :
<script type="text/javascript" src="http://www.google.com/jsapi?key=VOTRE_CLE_API">
<script type="text/javascript" charset="utf-8">
    google.load("maps", "2.x");
    google.load("jquery", "1.3.1");
</script>
Remplacer "VOTRE_CLE_API" par la clé que vous avez obtenue. En utilisant la librairie Google AJAX Libraries API, vous êtes en mesure de charger les librairies JavaScript dont vous avez besoin directement des serveurs Google.

Afin de créer une carte de base, nous avons besoin d'un conteneur <div> et d'un peu de CSS afin d'affecter une taille à la carte.

HTML

<div id="map"></div>

CSS

<style media="screen" type="text/css">
    #map { width:500px; height:500px; }
</style>
Afin de créer une carte, nous allons créer une nouvelle instant de GMap2. Par la suite nous allons positionner le centre de la carte sur la localisation désiré. Nous avons imbriqué le code à l'intérieur de la fonction $(document).ready de jQuery afin d'exécuter ce code une fois la page chargée.
$(document).ready(function(){
    var map = new GMap2(document.getElementById('map'));
    // Centrer la carte sur la Latitude et Longitude (X,Y)
    var MapCenter = new GLatLng(44.797916,-93.278046);
    // Positionnement de la carte et niveau du Zoom
    map.setCenter(MapCenter, 8);
});

Insérons maintenant quelques points sur notre carte simple.
// Insertion de 10 points aléatoire
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
var markers = [];
for (var i = 0; i < 10; i++) {
    var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
        southWest.lng() + lngSpan * Math.random());
    marker = new GMarker(point);
    map.addOverlay(marker);
    // Tableau des marqueurs qui seront utilisé à l'étape suivante
    markers[i] = marker;
}
Nous allons maintenant pouvoir utiliser jQuery et Google Maps. Utilisons maintenant le tableau des marqueurs afin d'ajouter de l'interaction avec jQuery.
$(markers).each(function(i,marker){
    GEvent.addListener(marker, "click", function(){
        map.panTo(marker.getLatLng());
    });
});
Dans la boucle, nous allons utiliser l'espace de nom GEvent afin d'attacher un événement sur le clique de chaque marqueur. La fonction panTo() permet de centrer la carte sur le marqueur cliqué.

Insérons maintenant une liste des marqueurs cliquables à droite de notre carte à l'aide d'une liste <ul>.

HTML

<ul id="list"></ul>

CSS

<style type="text/css" media="screen">
    #map { float:left; width:500px; height:500px; }
    #list { float:left; width:200px; background:#eee; list-style:none; padding:0; }
    #list li { padding:10px; }
    #list li:hover { background:#555; color:#fff; cursor:pointer; cursor:hand; }
</style>

Revenons à notre boucle, et ajoutons une étape à notre fonction afin que cette dernière ajoute un lien cliquable dans notre liste <ul>.
$("").html("Point "+i).click(function(){ map.panTo(marker.getLatLng()); }).appendTo("#list");

Ajoutons des boites de message personalisé à notre carte.

HTML

<div id="message" style="display:none;">
    Test text.
</div>

CSS

#message { position:absolute; padding:10px; background:#555; color:#fff; width:75px; }

 
Nous devons maintenant placer le bloc <div> à l'intérieur de la carte. Pour ce faire, nous allons utiliser jQuery afin d'ajouter le tout à un objet. La visualisation de la carte est séparée en panneau. Chaque panneau est un bloc <div> une par-dessus l'autre. Il suffit de récupérer le panneau où l'on désire ajouter notre bloc <div> à l'aide de la méthode map.getPane(PANE). Dans le cas actuel, G_MAP_FLOAT_SHADOW_PANE est le panneau que nous allons utiliser pour attacher les messages personnalisés.
$("#message").appendTo(map.getPane(G_MAP_FLOAT_SHADOW_PANE));
Afin d'afficher le message à l'endroit désiré, nous devons séparer l'action du clic en une fonction séparée. Pour ce faire, remplacer map.panTo(marker.getLatLng()); avec displayPoint(marker,i); qui appellera la fonction ci-dessous;
function displayPoint(marker, i){
    map.panTo(marker.getPoint());
   
    var markerOffset = map.fromLatLngToDivPixel(marker.getPoint());
    $("#message").show().css({ top:markerOffset.y, left:markerOffset.x });
}
C'est ici que la magie s'installe! map.fromLatLngToDivPixel(GLatLng); permets de convertir une latitude et une longitude d'un marqueur en pixel. Cette dernière retourne donc une position en pixel (x,y) en fonction de la gauche et du haut de la carte. Afin de terminer en beauté, ajoutons donc un peu de visuels à tout ceci. Nous allons donc ajouter un événement suite au défilement de la carte. Lorsque cette dernière arrête de défiler, nous allons ajouter un peu de "fadeIn".

function displayPoint(marker, index){
    $("#message").hide();
   
    var moveEnd = GEvent.addListener(map, "moveend", function(){
        var markerOffset = map.fromLatLngToDivPixel(marker.getLatLng());
        $("#message")
            .fadeIn()
            .css({ top:markerOffset.y, left:markerOffset.x });
   
        GEvent.removeListener(moveEnd);
    });
    map.panTo(marker.getLatLng());
}
Commentaires (2)Add Comment
humm
Par keusta , juillet 13, 2009
Ca à l'air bien mais entre la théorie et la pratique, parfois ça bug.
Une page d'exemple aurait été fort apprécié... (il est jamais trop tard smilies/wink.gif )
il suffit d'aller sur le site à l'origine de l'article
Par titou , janvier 07, 2010
http://marcgrabanski.com/artic...ial-basics

Tu trouvera la demo là ;-)
Vous devriez citer vos sources !

Ecrivez un commentaire
Réduire l'éditeur | Agrandir l'éditeur

busy

Réseaux sociaux

Add this page to Blinklist Add this page to Del.icoi.us Add this page to Digg Add this page to Facebook Add this page to Furl Add this page to Google Add this page to Ma.Gnolia Add this page to Newsvine Add this page to Reddit Add this page to StumbleUpon Add this page to Technorati Add this page to Yahoo

Connexion

Publicités

Services offerts

image

Développement Web

Que ce soit pour faire la conception d'un site Web ou pour la refonte d'un site existant, nous avons la solution.

La création et la conception Web sont au cœur de nos activités. Chaque concept et création sont différents, et chaque client est unique. Rien n’est laissé au hasard pour faire de votre création multimédia un outil unique de promotion.

image

Développement Windows

Quel que soit votre projet, nous pouvons le réaliser pour vous !

Grâce à notre expertise en programmation, nous sommes en mesure de concevoir une variété d’applications qui pourront vous permettre d’augmenter votre clientèle, de la fidéliser ou encore de réduire vos coûts d’opération ! Nos critères élevés de contrôle de qualité ainsi que la grande expertise de nos programmeurs et de nos chargés de projets contribuent au succès des mandats qui nous sont confiés.

image

Base de données

...
image

Autres

Quel que soit vos projets ou vos idées, contactez nous!

Grâce à notre expérience et notre expertise en informatique, nous serons en mesure d'évaluer vos projets et nous pourrons trouver une solution à vos problèmes. Que ce soit de la programmation ou de la base de données ou bien tout autres problèmes informatiques, contactez nous, nous serons là pour vous.