POI par région

Donnez votre avis et proposez ici les axes d’amélioration pour le site Lufop et ses fonctionnalités
Avatar du membre
philgoodgood
Contributeur
Contributeur
Messages : 313
Enregistré le : 22 mars 2012, 18:31

Re: POI par région

Message 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 :mrgreen:
Qashqai EURO5 2.0 DCI 150 FAP BVA TEKNA all mode noire [mai 2011]
Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 995
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: POI par région

Message 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!
Avatar du membre
philgoodgood
Contributeur
Contributeur
Messages : 313
Enregistré le : 22 mars 2012, 18:31

Re: POI par région

Message 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 :lolno:
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 :thumbup: previent moi je t'enverrais mes lignes javascript ;-)
Qashqai EURO5 2.0 DCI 150 FAP BVA TEKNA all mode noire [mai 2011]
Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 995
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: POI par région

Message 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
Avatar du membre
philgoodgood
Contributeur
Contributeur
Messages : 313
Enregistré le : 22 mars 2012, 18:31

Re: POI par région

Message par philgoodgood »

Hello Lufop :wave:
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 ?
Modifié en dernier par philgoodgood le 17 août 2012, 17:17, modifié 3 fois.
Qashqai EURO5 2.0 DCI 150 FAP BVA TEKNA all mode noire [mai 2011]
Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 995
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: POI par région

Message 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 !!! :oops:

A bientôt !! :wave:
Avatar du membre
philgoodgood
Contributeur
Contributeur
Messages : 313
Enregistré le : 22 mars 2012, 18:31

Re: POI par région

Message 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.


++
Qashqai EURO5 2.0 DCI 150 FAP BVA TEKNA all mode noire [mai 2011]
Avatar du membre
Lufop
Administrateur
Administrateur
Messages : 995
Enregistré le : 04 mai 2010, 15:59
Vehicule(s) : Peugeot 207 et 307
GPS : Medion GoPal 6
Contact :

Re: POI par région

Message 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 :merci:
SyStem_D
Membre++++
Membre++++
Messages : 165
Enregistré le : 24 mars 2012, 09:56
Vehicule(s) : .
GPS : Copilot Live version 9.4 sur Samsung Galaxy tab 2 10.1
Région / département : Roussillon
Localisation : Perpignan

Re: POI par région

Message 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 :brav: :brav:
SyStem_D
Informaticien
Définition: "personne qui resout, par des moyens compréhensibles que par elle même, des problèmes que tu ignorais avoir".
99.99% des bugs viennent de l'interface se trouvant entre la chaise et le clavier.
agentsteph007
Contributeur
Contributeur

Re: POI par région

Message 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
Répondre