Combien de chiffres significatifs dois-je stocker dans ma base de données pour une coordonnée GPS?

J'ai dans ma base de données MySQL des coordonnées de longitude et de latitude (données GPS).

il est actuellement stocké sous:

column     type
------------------------
geolat     decimal(10,6)
geolng     decimal(10,6)

Question: ai-je vraiment besoin d'un type de données aussi grand que decimal(10,6) pour stocker correctement les coordonnées?

<!-Comme j'ai un indice combiné sur la longitude et la latitude, cet indice est énorme. Si je peux le faire plus petit sans compromettre quoi que ce soit, ce serait génial.

37
demandé sur HK1 2009-12-22 19:29:19

8 réponses

WGS84 les données sont habituellement données sous forme de coordonnées dans une notation entièrement décimale, généralement avec 5 décimales, donc pour la latitude (-90 à +90) vous pouvez utiliser décimale(7, 5) (-90.00000 à 90.00000), pour la longitude vous pouvez utiliser décimale(8, 5) (-180.00000 à 180.00000).

.00001 donne une précision d'environ un mètre à l'équateur

DÉCIMAL/type de données NUMÉRIQUE est une précision fixe l'échelle entier et à la fois positifs et les parties négatives de la gamme sont toujours disponibles - elles n'affectent pas la précision ou l'échelle (il y a évidemment un stockage nécessaire pour cela, mais vous n'avez pas le choix à ce sujet pour la décimale)

34
répondu Cade Roux 2009-12-22 16:51:47

j'ai toujours travaillé avec six chiffres après la virgule. J'avais l'habitude de faire des travaux de GIS dans le cadre d'un contrat militaire et c'était suffisant.

4
répondu Steve Elmer 2009-12-22 16:31:38

gardez à l'esprit qu'il est plus facile de réduire les données que de les augmenter. Habituellement, il n'est même pas possible d'augmenter la précision des données sans les réévaluer. Et le remesuring a un coût. Ne connaissant rien d'autre de votre situation ou de l'industrie, je dirais capturer autant de données/spécificité que possible.

Les données que vous utilisez peuvent être tirées de cette série. Si vous avez besoin d'un degré plus élevé de spécificité, vous pouvez toujours recalculer sans remeasuring.

aussi, je ne suis pas sûr que l'indexation des données brutes soit la meilleure chose à faire puisqu'il ne s'agit pas d'un ensemble discret d'éléments. La création d'un tableau de points de données moins précis/plus petits rendrait les indices beaucoup plus petits.

3
répondu Mark Canlas 2009-12-22 16:38:40

si c'est pour de l'immobilier en avez-vous vraiment avoir de nombreuses maisons 2 octets enregistrés par ligne va être visible? Je garderais autant de précision que possible à moins qu'il y ait une bonne raison de ne pas le faire.

1
répondu jk. 2009-12-22 16:55:13

cela dépend de la précision de votre localisation. De toute évidence, plus les résultats sont précis, plus ils sont larges. Je suggère de garder vos valeurs plus grandes, car il n'y a pas beaucoup de données de toute façon.

0
répondu Sampson 2009-12-22 16:31:20

l'envoi GGA régulier dans une sortie NMEA Lat/lon n'est que de 3 positions décimales à une résolution d'environ 10 m à l'Équateur. Certaines marques ajoutent un chiffre supplémentaire personnalisé pour donner 1m.

4 chiffres deg.mm mm/1000 est également commune.

si vous utilisez RTK-GPS de précision haut de gamme, vous pourriez avoir besoin de plus d'endroits pour obtenir la précision mm

0
répondu Martin Beckett 2009-12-22 17:00:33

vous pouvez également essayer de stocker (et/ou de travailler avec) vos coordonnées dans différentes unités. Un projet sur lequel j'ai travaillé, toutes nos coordonnées étaient en milliarcsecondes stockées aussi longtemps (peut-être ints, ça fait quelques années). Cela a été fait en partie pour la vitesse et pour l'espace de stockage (il s'agissait d'un système intégré). Mais la même logique pourrait s'appliquer ici.

0
répondu miko 2009-12-22 18:05:09

si toutes les coordonnées se trouvent dans une zone spécifique, fixez un point central (c.-à-d. les points de courant moyens et ronds pour obtenir un nombre que vous pouvez dire à haute voix) et ensuite enregistrez les coordonnées relatives à ce point. De cette façon, vous pouvez probablement sauter les 2-4 premiers chiffres les plus significatifs qui permet de grandes économies. Mais n'oubliez pas de traiter ces données uniquement via une classe ou une vue qui renvoie les vrais coords WGS84.

0
répondu Simon B. 2013-03-31 10:41:56