Bonjour,
Je voudrais pouvoir afficher des adresses d'une base de données présentes dans un polygone tracé par l'utilisateur.
Comment puis-je faire ?
Merci !
Bonjour,
Je voudrais pouvoir afficher des adresses d'une base de données présentes dans un polygone tracé par l'utilisateur.
Comment puis-je faire ?
Merci !
Bonsoir,
Mathématiquement c'est très compliqué : ton polygone est en réalité un ensemble de minimums et maximums de longitude et de latitude locaux qu'il faudrait pouvoir connaitre et transmettre à ta base de données pour qu'elle sélectionne les bons marqueurs.
Suivant la convexité ou concavité de ton polygone, la sélection n'est pas forcément la même.
J'ai cherché pendant pas mal de temps comment pouvoir faire mais l'algorithme est relativement complexe (et peut conduire à faire une infinité de requête SQL).
Ce que je fais dans l'attente de le trouver est de calculer à l'aide de l'API l'étendue de mon polygone sous la forme de google.maps.LatLngBounds (c'est un rectangle) et je prends tout ce qu'il y a à l'intérieur. Forcément tu aura des items qui ne sont pas à l'intérieur de ton polygone (puisque l'aire du rectangle dans lequel est inscrit ton polygone est par définition plus grande que l'aire du polygone elle-même) mais suivant sa forme c'est une approximation raisonnable.
A suivre, si quelqu'un trouve une technique on est tous les deux prenneurs.
Bonjour,
Moi aussi je me rabat sur des rectangles, par contre je voudrais savoir comment en créer interractivement, e effet j'arrive à en créer un mais je ne sais pas comment faire pour donner la possibilité de modifier ce rectangle il me garde l'ancien.
Dois je utiliser un appel Ajax ou quelque chose comme ça.
J'ai le meme probleme pour les cercles
Merci
j'ai trouvé
de cette maniere a chaque deplacement d'un marker je relance cette methode qui retrace le rectangle
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 // CREATION D'UN RECTANGLE AVEC LES 2 POINTS IMPORTANTS EN PARAMETRES var rectangle=null; function creerRectangle(p_l_ne, p_l_sw) { if (rectangle == null) { LatLngBoundsduRectangle = new google.maps.LatLngBounds(p_l_sw, p_l_ne); // alert(LatLngBoundsduRectangle); rectangle = new google.maps.Rectangle(); // Get the current bounds, which reflect the bounds before the zoom. var rectOptions = { strokeColor: "##2e2e2e ", strokeOpacity: 0.8, strokeWeight: 2, fillColor: "#949494", fillOpacity: 0.30, map: carte, bounds: LatLngBoundsduRectangle }; rectangle.setOptions(rectOptions); // boolRectangle = true; } else { LatLngBoundsduRectangle = new google.maps.LatLngBounds(p_l_sw, p_l_ne); rectangle.setBounds(LatLngBoundsduRectangle); // boolRectangle = true; } }
Merci a tous
Bonjour,
peut être que cela répond à la question http://www.developpez.net/forums/d11...oint-polygone/
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager