Donc je travaille sur un projet final en langage Java, ce projet a un côté serveur (qui est sous ma responsabilité) et un client GUI (qui est sous la responsabilité de quelqu'un d'autre).Diviser une zone du globe donnée par 4 coordonnées de longitude en une grille équidistante?
En tant que serveur, je reçois constamment la coordination GPS (comme la longitude de latitude) des clients Android et je dois répondre avec leur emplacement équivalent sur une grille pré-allouée.
La grille est définie par 4 coordonnées LatLng qui me sont envoyées par le client GUI et la quantité de lignes de la grille à diviser par. Par exemple. Je reçois (35.000.35.000), (35.000.36.000), (36.000.36.000), (36.000.35.000) et 40x40.
La méthode actuelle que j'utilise est en calculant la distance en radians degrés pour la distance de latitude de la zone et la distance de longitude séparément, puis je le divise par 40 (comme dans l'exemple donné), chaque quotient est mon " cliquez sur ", une seule unité de distance que j'utilise plus tard.
Lorsque je reçois une nouvelle coordonnée je la divise par mon "clic" et fais un Math.floor, le quotient de cette opération est l'emplacement sur la grille. Mais quelque chose ne va pas, mes calculs sont apparemment incorrects, le client de l'interface graphique n'étant pas d'accord avec moi (généralement 1 grille nord/sud et 1 grille ouest/est). Il prend la carte (google-map) et la manipule .? image diviser simplement une zone rectangulaire Qu'est-ce que je fais mal est-il une meilleure façon de discrétisation la zone donnée par cette configuration
choses que j'ai déjà vérifier: 1. ce n'est pas une sorte de soupassement flotteur, je BigDecimal et SimpleLatLng.
- le client GUI est d'accord avec moi sur des endroits plus près du bloc de grille de 0x0 relative, il est donc pas d'habitude hors par une erreur.
EDIT: J'ai réussi à résoudre la plupart des erreurs, j'ai encore quelques erreurs dont je ne sais pas quelle partie du code peut être responsable.
EDIT 2: Le problème semble être résolu, la question ne recevait pas le roulement correct en premier lieu et en supposant que la grille était liée au nord, le code correct est attaché:
Fractionnement dans une grille est complexe d'équidistance, il aurait besoin d'une transformation de coordonnées. Beaucoup plus facile, selon l'applictaion est de diviser par degrés. Ensuite, il est très facile de trouver la cellule de grille correcte. – AlexWien