Bien sûr tu peux mettre ce que tu veux.
Si tu veux taper France ou Frankreich en allemand pas de problème.
Tu peux taper "aéroport charles de gaulle" ou "gare avignon tgv" cela marche aussi.
Bien sûr tu peux mettre ce que tu veux.
Si tu veux taper France ou Frankreich en allemand pas de problème.
Tu peux taper "aéroport charles de gaulle" ou "gare avignon tgv" cela marche aussi.
Tu peux
@A&Nexus: le problème c'est qu'elle souhaite utiliser du php et par conséquent en utlisant le client php, le proxy de son entreprise doit surement la bloquer.
Le lien que tu lui à envoyé (c'est le même que je lui ai déjà envoyer dans un des post precedant) est codé en JS.
Maintenant si elle souhaite utiliser le JS, pas de souci (c'est mon cas et ça marche très bien)
Autre chose Madusa, l'utilisation de l'API google map est limité (ce nombre varie d'une année sur l'autre).
Ton application, si elle est utilisée souvent, tu risque d'avoir une carte vide au bout d'un moment.
Je faisais une utilisation importante et j'ai vite été confronté au problème, puis ma boite à décidé de payer une licence pour pouvoir continuer.
Le tuto est interessant et bien expliqué.Mais , je ne trouve pas comment placer plusieurs marqueurs:
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!DOCTYPE html> <html lang="fr"> <head> <meta name="viewport" content="initial-scale=1.0, user-scalable=no"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>[GoogleMaps API V3] Insertion d'une Carte</title> <style type="text/css"> #div_carte { height : 600px; /* IMPERATIF */ width : 600px; margin : auto; border : 1px solid #888; } </style> <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> <script type="text/javascript"> function initCarte(){ // création de la carte var oMap = new google.maps.Map( document.getElementById( 'div_carte'),{ 'center' : new google.maps.LatLng( 46.80, 1.70), 'zoom' : 6, 'mapTypeId' : google.maps.MapTypeId.ROADMAP }); // création de l'objet option var markerOption = { 'position' : new google.maps.LatLng( 45, 89),// position d'ancrage du marker sur la carte 'map' : oMap // l'objet carte sur lequel est affiché le marker }; var markerOptionn = { 'position' : new google.maps.LatLng( 5, 9),// position d'ancrage du marker sur la carte 'map' : oMap // l'objet carte sur lequel est affiché le marker }; // création du marker var oMarker = new google.maps.Marker( markerOption); } var ooMarker = new google.maps.Marker( markerOptionn); } // init lorsque la page est chargée google.maps.event.addDomListener( window, 'load', initCarte); </script> </head> <body> <h1>Titre de la carte</h1> <div id="div_carte"></div> </body
J'ai essayé le code donné qui marche très bien mais j'ai ajouté pour crée un autre marqueur le code correspondant aux marqueurs mais ça ne me donne rien ...
Autant pour moi.
Pour le proxy cela semble bizarre (à confirmer) parce que dans ce cas là ça ne s'affichera jamais.
Et d'après ce que je vois la carte s'est déjà affichée correctement.
Je penche plus comme toi sur un problème de nombre de requête
Et bien s'il ne faut pas utiliser le javascript dans ce cas il faut cliquer sur le lien qui redirige vers geocoding API. C'est au choix en json ou XML.
Cela s'exécute côté PHP donc serveur.
Exemple fonctionnel :
http://maps.googleapis.com/maps/api/...e&sensor=false
Documentation :
https://developers.google.com/maps/d...ng/index?hl=fr
Il y a clairement un problème avec les accolades.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 // création du marker var oMarker = new google.maps.Marker( markerOption); } var ooMarker = new google.maps.Marker( markerOptionn); }
j'ai corrigé les accolades ,ça ne fonctionne pas .
Que me conseillez vous comme code ?le javascript ne me dérange pas
mais je code en php et mysql pour mon siteweb
De plus,comme bous me le dite , il y a des problèmes de limitation...
Comment faire pour contrer ceci?
je souhaiterai afficher sur un map avec des marqueurs la localisation de tout mes clients présents dans la base de données...
Cette limitation pose t-elle problème?
Il faudrait revoir le code dans son ensemble ne sachant pas comment les accolades ont été corrigées.
Si c'est (ce qui semble être le cas) que pour un affichage auprès de l'utilisateur alors le javascript est plus adapté.
Cela te fera de la bande passante et des requêtes en moins à traiter.
Ce sera directement le navigateur qui fera les requêtes auprès de Google sans passer par ton serveur.
Ce qui est sûr c'est qu'il faut mieux stocker les coordonnées GPS dans ta base de données de cette façon lorsque tu affiche la carte ça prend moins de requête que si tu fait faire des recherches.
Extrait de la documentation :
Use of the Google Geocoding API is subject to a query limit of 2,500 requests per day. (User of Google Maps API for Business may perform up to 100,000 requests per day.) This limit is enforced to prevent abuse and/or repurposing of the Geocoding API, and this limit may be changed in the future without notice. Additionally, we enforce a request rate limit to prevent abuse of the service. If you exceed the 24-hour limit or otherwise abuse the service, the Geocoding API may stop working for you temporarily. If you continue to exceed this limit, your access to the Geocoding API may be blocked.
Merci beaucoup pour votre aide
Avec toutes vos informations et liens, je me suis faite une idée que je vous présente çi dessous:
-je met dans ma table location,deux attributs : lon et lat
-Je crée une carte et je cherche dans ma base de donnée la lon et lat pour une location donnée et si ils n'existent pas je cherche la lon et lat avec la méthode de geocoding et j'insére dans la base de donnée le résultat trouvée et je place le marqueur à la lon et lat trouvée par géocoding
si lat et lon existent , j'ai juste à ajouter un marqueur à ce point de coordonnée lat et lon.
Mon idée est -elle bonne?
la imitation est de l'ordre de 10k requete / j et par ip donc ce n'est clairement pas ça le problème.
je te prepare une librarie que tu pourra utiliser facilement.
(mais la j'ai du travail je reprend ce soir et demain ok?)
C'est gentil merci
j'aurai besoin d'aide pour le java script également mais je te laisse travailler
Bon travail![]()
pose toujours tes questions
si je suis présent sur le site c'est que je peux aider pour des petites demandes.
Pour la librairie, c'est que j'ai deja fait un gros projet et par conséquent du faire une librarie.
Je vais la relire pour pouvoir la diffuser
je ne vois pas comment faire pour faire une boucle pour rajouter des marqueurs... avec cette fonction:
Je vais poster le code que j'ai essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 function initCarte(){ // création de la carte var oMap = new google.maps.Map( document.getElementById( 'div_carte'),{ 'center' : new google.maps.LatLng( 46.80, 1.70), 'zoom' : 6, 'mapTypeId' : google.maps.MapTypeId.ROADMAP }); // création de l'objet option var markerOption = { 'position' : new google.maps.LatLng( 45, 89),// position d'ancrage du marker sur la carte 'map' : oMap // l'objet carte sur lequel est affiché le marker }; var markerOptionn = { 'position' : new google.maps.LatLng( 5, 9),// position d'ancrage du marker sur la carte 'map' : oMap // l'objet carte sur lequel est affiché le marker }; // création du marker var oMarker = new google.maps.Marker( markerOption); var oMarkerr = new google.maps.Marker( markerOptionn); }
Voici mon nouveau code qui n'a rien avoir avec le précedent
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script> </head> <body> <div id="map" style="width: 600px; height: 550px;"></div> <script type="text/javascript"> <!-- var locations = [ [ 49.898729,3.13606], [ 50.684142,3.1360678], [ 49.953802, 2.360237], [ 48.606369,2.886894], [ 46.149513,6.410866] ]; var map = new google.maps.Map(document.getElementById('map'), { zoom: 6, center: new google.maps.LatLng(47.4,1.6), }); var infowindow = new google.maps.InfoWindow(); var marker, i; for (i = 0; i < locations.length; i++) { marker = new google.maps.Marker({ position: new google.maps.LatLng(locations[i][0], locations[i][1]), map: map }); google.maps.event.addListener(marker, 'click', (function(marker, i) { return function() { infowindow.setContent(locations[i]); infowindow.open(map, marker); } })(marker, i)); } --> </script> </body> </html>
Comment le modifier pour que les nombres provienent de ma requete php?
exemple:aprés je ne sais pas ou placer ce code et comment continuer pour l'inclure dans le précedent...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 $sql_list_pro="SELECT lon,lat FROM location"; $res_pro=mysql_query($sql_list_pro); while($rows_pro=mysql_fetch_assoc($res_pro))
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
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 <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script> <link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/smoothness/jquery-ui.css" /> <script type="text/javascript"> var map; var infowindow; var mapMarkers = []; // La liste des markers var mapHTMLS = []; // La liste des informations sur les répartiteurs dans le format HTML var mapPoints = []; // La liste des markers var bounds = new google.maps.LatLngBounds(); var encours=0; geocoder = new google.maps.Geocoder(); function creerMarqueur(map,point,nom,titre,couleur) { var color='#FF0000'; if(arguments.length == 5) { var color = arguments[4]; } var sz = new google.maps.Size(50, 20); var origin = new google.maps.Point(0,0); var anchor = new google.maps.Point(50/2,20/2); var marker = new google.maps.Marker({ position: point, title: titre, clickable: true }); if(map != '') { marker.setMap(map); } google.maps.event.addListener(marker, 'click', function() { map.setZoom(8); map.setCenter(marker.getPosition()); infowindow.setContent("<b>"+titre+"</b><br />"+nom); infowindow.open(map,marker); }); encours++; return marker; } // NE fonctionne pas pour le moment /*function Optenir_LATLNG(address) { geocoder.geocode( { 'address': address}, function(results, status) { if (status == google.maps.GeocoderStatus.OK) { map.setCenter(results[0].geometry.location); results[0].geometry.location; mapPoints[0]=results[0].geometry.location.lat(); alert(mapPoints[0]); }}); } */ function charger_carte(lat,longi,zoom,emplacement) { // Affiche la carte centré sur le centre des UI avec un zoom de 8 var latlng = new google.maps.LatLng(lat, longi); var myOptions = {zoom: zoom, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP,scrollwheel:false}; // cree l'objet de la carte, dans la partie avec id=map map = new google.maps.Map(document.getElementById(emplacement), myOptions); // Optenir_LATLNG("paris"); // alert(mapPoints[0]); // alert(mapPoints[0]); infowindow = new google.maps.InfoWindow(); var point = new google.maps.LatLng(47.85747,1.966553); var marker = creerMarqueur(map,point,"kirikou","Chef"); bounds.extend(point); mapMarkers[encours-1]=marker; var point = new google.maps.LatLng(47.75747,1.966553); var marker = creerMarqueur(map,point,"kirikou1","Chef"); bounds.extend(point); mapMarkers[encours-1]=marker; var point = new google.maps.LatLng(47.95747,1.966553); var marker = creerMarqueur(map,point,"kirikou2","Chef"); bounds.extend(point); mapMarkers[encours-1]=marker; } function load() { charger_carte(47.85747,1.966553,8,"map"); } </script> <body onload="load()"> <div id="map" style="width: 800px; height: 650px;margin:auto" ></div> </body> <noscript> <b>JavaScript doit être activé pour utiliser Google Maps.</b> Il semblerait que JavaScript soit désactivé ou non supporté par votre navigateur. Pour visualiser les cartes Google Maps, activez JavaScript dans les options de votre navigateur et réessayez. </noscript>
merci je vais essayer de comprendre ...
merci!!!![]()
je ne comprend pas pourquoi les nombres sont déja mis dans la fonction
On devrait mettre lonti et lat non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part var point = new google.maps.LatLng(47.85747,1.966553);
ces nombres sont les latitudes et longitudes des markers que tu souhaite afficher
c'est un exemple.
Partager