Page 2 sur 4
Re: POI par région
Posté : 11 août 2012, 09:47
par philgoodgood
@Lufop
c'est pas la méthode des rectangles ou des triangles c'est une autre parmi tant d'autres
La méthode est de compter le nombre de fois que l'on croise une arête du polygone.
On trace une demi droite horizontale (d'origine le point à controler), et on compte le nombre d'intersection avec les arêtes du polygone :
* si le nombre d'intersection est pair, alors le point est en dehors du polygone (la demi-droite rentre et sort du polygone : donc on est à l'extérieur).
* par contre si ce nombre est impair, alors on se trouve dans le polygone.
on trouve moulte méthodes sur le web : un site qui m'a inspiré :
http://paulbourke.net/geometry/insidepoly/
tu as aussi une superclass en java ici
http://docs.oracle.com/javase/6/docs/ap ... /Area.html
mais bon le java c'est un mois de boulot pour moi alors j'ai codé en VBA

Re: POI par région
Posté : 11 août 2012, 11:51
par Lufop
Houa! Je comprensd le principe... maintenant pour la mise en oeuvre....
Je serais assez interessé pour mettre en place des cartes et des fichier par regions, ce serais bien aussi pour l'application... Mais retranscrire ce principe en php.. Va faloir que je resorte mes cours de math...
Mais je reppette super boullo philgoodgood!
Re: POI par région
Posté : 11 août 2012, 13:07
par philgoodgood
@Lufop
merci pour les compliments ...
Regarde le lien de paul bourke et la solution 1 : l'algo est écrit en C tu n'auras meme pas besoin de ressortir tes cours de maternel Sup
bon l'algo ne gere pas le cas ou le point se trouve sur la périphérie du polygone mais une petite recherche google et on trouve tout ce que l'on veut
rem : Si tu le fais en php/javascript il faut utiliser l'API Google maps V3 comme je l'ai ecrit précedemment
C'est rapide et en peu de lignes; apres ca reste de la présentation et de l'interface utilisateur
Quand tu commenceras

previent moi je t'enverrais mes lignes javascript

Re: POI par région
Posté : 17 août 2012, 15:05
par Lufop
Je reviens a la charge !
j'ai bien trouvé des chose en php mais je n'arrive pas loader les coordonnées depuis un fichier .klm.
Tu peux m'éclairer philgoodgood ? Comment as tu fait ?
Voici ce que 'ai trouvé qui me semble pas mal PHP :
http://www.assemblysys.com/dataServices ... olygon.php
et en js/PHP :
http://goo.gl/A7TDR
Lufop
Re: POI par région
Posté : 17 août 2012, 16:56
par philgoodgood
Hello Lufop
la je suis en vacances jusqu'au 5 sept et je n'ai que l'ultrabook de ma femme
Désolé mais je peux pas te renseigner tout de suite
sur le lien du site touraineverte tu as noté que le dossier, ou il y a les kml, doit être publiquement accessible ?
moi j'ai pas pu utiliser kmllayer() car il prend en argument uniquement l’URL du fichier KML et non un emplacement local ou localhost
J'ai donc parser dans le tag <coordinates></coordinates> du fichier kml pour extraire les triplets "latitude, longitude, altitude" puis splitter pour ne prendre que latitude et longitude ..........
Tu as essayer de faire du pas à pas avec le déboggeur d'IE9 ou de Chrome pour voir le contenu des variables et ou ca blème ?
Encore désolé de ne pouvoir t'en dire plus maintenant
edit
si tu remplaces
<script>
function initialisation() {
// Map initialisation
}
google.maps.event.addDomListener(window, 'load', initialisation);
</script>
<body>
<div id="EmplacementDeMaCarte"></div>
</body>
par :
<script>
function initialisation() {
// Map initialisation
}
</script>
<body onload="initialisation()">
<div id="EmplacementDeMaCarte"></div>
</body>
Ca charge toujours pas ?
Re: POI par région
Posté : 17 août 2012, 17:03
par Lufop
Oui j'ai bien réussi a récupérer les coordonnés dans une variable sous forme de tableau...
C'est plus pour le calcul intérieur/ extérieur que je sèche et le code que j'ai trouvé semble pas être bon...
Mais je vais reprendre çà tête reposé, je vais y arriver... ;)
Tes vacances ont amplement mérités !!
Profites en bien et fait gaffe au coup de soleil !!!
A bientôt !!

Re: POI par région
Posté : 17 août 2012, 17:27
par philgoodgood
ah OK
j'en avais parlé plus haut : google.maps.geometry.poly.containsLocation()
Cette fonction teste si le point est situé à l'intérieur du polygone.
google.maps.geometry.poly.containsLocation(point, polygone) retourne :
true : si c'est vrai,
false : si c'est faux.
Tu peux aussi completer le test avec la fonction isLocationOnEdge qui indique si le point est situé sur la bordure ou à proximité du polygone en utilisant une tolérance
google.maps.geometry.poly.isLocationOnEdge(point, polygone|polyline, tolérance)
L'unité de la tolérance est en degré : ex : 0.0008 soit 11,13 * 8 mètres
1.0 degré décimal de latitude est égal à : lat = 2 * pi() * 6378.1 / 360 ~= 111.319 km
true : si le point est situé sur ou à proximité du polyline, ou si le point est situé sur ou à proximité de la bordure du polygone,
false : si le point n'est pas situé sur ou à proximité du polyline, ou si le point n'est pas situé sur ou à proximité de la bordure du polygone.
++
Re: POI par région
Posté : 17 août 2012, 17:50
par Lufop
Pour répondre a ta première question (remplacement avec <body onload="initialisation()">) j'avais essayé et non ça ne marche pas..
Mais c'est pas grave, je vais reprendre ça à tête reposé en utilisant la fonction js dont tu m'a parlé, mais plus tard car la je sature un peu ! Je vais faire du bricolage pour profiter un peu de cette journée de congé! On en reparle au mois de Septembre ...
Merci pour ton aide décidément même en vacance t'es efficace !!
Allez profite bien et sors toi tout ça de la tête! Profite, ça passe vite les vacances !! Les miennes son déjà loin...
A+ et

Re: POI par région
Posté : 25 août 2012, 22:25
par SyStem_D
poimixer cité dans les logiciels pourrait aussi lui convenir
il y a une possibilité de determiné un quadrillage pour supprimer les pois en dehors
comme ca en fonction de ses balades a lui de déterminer la zone
mais impec phil

Re: POI par région
Posté : 06 septembre 2013, 18:59
par agentsteph007
Salut !
Ce post m’intéresse car je souhaiterai intégrer a mon Inforad Moto les "zones a risque" en Région IDF, la bête est malheureusement limité a 250 POI, et encore ! car je ne l'ai pas mis a jour ! j'ai essayé de prendre les POI France sur TOMTOM heaven et les filtrer sous excel pour déterminer une zone "IDF" mais en vain ... j'obtiens des point en Bretagne ou quoi..
Si une bonne âme aurai le fichier CSV à jour avec les POIs d'ile de France , ça serait TOP !
Merci bcp