2012-03-03 5 views
5

à partir du titre, vous pouvez lire que l'on me donne des points de latitude et de longitude. Ils sont stockés dans le fichier csv. Il y a jusqu'à 40k lignes.étant donné les points de latitude et de longitude, trouver les points de bord et la zone de polygone

"45.","9.12345" 
"46.11111","9.12345" 
"47.22222","9.98765" 
... 

Ma première question comment puis-je trouver les coordonnées de pointe et une fois qu'il est fait, il roule dans ma deuxième question que je dois calculer à partir de ces points de bord superficie du polygone. Vous trouverez ci-dessous l'image à quoi ces points peuvent ressembler et les points de contour sont reliés par des lignes bleues.

coordinates

J'ai cherché Google et sur le SO et trouvé ce genre de questions: this, this, this et this.

Tout d'abord, je stockerais tous les points de latitude et de longitude dans un fichier arraylist à partir du fichier csv. Je n'ai pas idée comment trouver les points de bord. Mais après les points de bord se trouvent, puis une approche pour trouver la zone du polygone est de le diviser en triangles, puis calculer les zones de triangles par la formule de Heron. La Terre est sphérique donc pour calculer la surface dont j'ai besoin pour utiliser les conseils dans les liens que j'ai donnés plus haut.

Y a-t-il des cadres pour mon problème qui résolvent mes questions? Quelles sont les approches pour le faire moi-même? Bien sûr, le code devrait être efficace en mémoire et en CPU.

+1

+1 pour l'effort de recherche, +1 pour les images, -1 pour une question assez large. Net +1! – Perception

+0

@Perception merci de croire en moi :) – Skyzer

Répondre

2

Vous recherchez le convex hull de vos points. Ceci est une question en double: Draw a convex hull using the given points in java/android

+0

merci, lire maintenant – Skyzer

+1

En fait, parce qu'il travaille avec des points de latitude et de longitude, je ne pense pas que les algorithmes de coque convexe standard fonctionneront, au moins pas comme décrit dans vos liens. Le problème est que ces algorithmes supposent que les points sont cartésiens, mais les points (lat, lon) sont décidément _non-cartésiens, puisque la longitude "contourne" à + 180/-180 (l'anti-méridien). Donc, vous obtiendrez d'énormes coques qui enveloppent tout autour du monde à tort si vous avez des points couvrant l'anti-méridien. –

Questions connexes