PostGIS offrirait-il un avantage sur MySQL pour une application de ferme de production?

23

J'ai une application Web qui stocke les emplacements des fermes dans l'ouest du Michigan. Vous pouvez rechercher un produit (par exemple "le brocoli") et il vous montrera toutes les exploitations qui cultivent ce produit.

En ce moment, j'utilise MySQL et la trigonométrie pour calculer la différence entre l'emplacement de l'utilisateur et l'emplacement de chaque batterie de serveurs. Ce n'est pas une mauvaise façon de procéder, mais cela a pris du temps.

Une autre chose que je veux faire bientôt est de cartographier les saisons de croissance de différents produits pour différentes régions. (Par exemple, je veux montrer que les avocats poussent à un certain moment de l'année en Californie mais jamais en Ohio.)

Je me rends compte que c'est une question ouverte et peut-être naïve, mais est-ce que cela vaut la peine pour moi de passer à PostgreSQL / PostGIS pour profiter de ses capacités spatiales?

Jason Swett
la source
1
Envisagez-vous des cartes dynamiques "saisonnières" ou statiques?
underdark
Si je comprends ce que vous demandez, dynamique. Exemple: la saison de croissance des pommes près de Grand Rapids, MI est d'août à octobre.
Jason Swett

Réponses:

21

Je suis un grand fan de PostGIS et je n'ai aucune expérience avec MySQL, donc je pourrais être biaisé.

Mais d'après ce que vous écrivez, je pense à deux raisons de changer.

tout d'abord, il sera sûrement beaucoup plus facile de mettre en œuvre de nouvelles fonctionnalités comme la carte de saison que vous avez mentionnée.

deuxièmement, lorsque vous effectuez aujourd'hui vos calculs de trigonométrie, je suppose que vous le faites en dehors de la base de données. si vous faites tout cela dans la base de données, vous êtes beaucoup plus libre dans le développement des applications de superposition.

vous n'aurez probablement pas à faire de calcul en dehors de la base de données si vous exécutez postgis.

la chose de saison que vous avez mentionnée pourrait être réalisable dans MySQL car cela semble très basique mais vous obtiendrez une plus grande flexibilité dans PostGIS avec un accès à toutes les fonctionnalités spatiales.

/ Nicklas

Nicklas Avén
la source
18

Ne serait-ce que parce que vous aurez beaucoup plus de choix dans les applications tierces pour générer des cartes de vos informations (mapserver, geoserver, etc., etc.) en chargeant des données (ogr2ogr, fme, etc.) PostGIS ferait un meilleur choix. MySQL ne conviendra que si vos besoins restent relativement limités.

Paul Ramsey
la source
FME prend en charge MySQL ainsi que PostGIS.
Raven
8

MySQL a également une extension spatiale mais, pour autant que je sache (je ne l'ai jamais utilisé), il n'est pas aussi riche en fonctionnalités et stable que PostGIS .

Si vous envisagez d'utiliser une base de données spatiale, PostGIS est un bon choix et l'effort de changement en vaudra la peine.

Alors que MySQL fournit déjà certaines fonctionnalités pour stocker et exploiter des données géospatiales, la fonctionnalité laisse beaucoup à désirer et est loin de fournir une compatibilité OpenGIS complète.

Plus particulièrement, toutes les fonctions qui interrogent des données spatiales ne fonctionnent que sur des MBR (rectangles de délimitation minimum), pour simplifier les opérations.

http://forge.mysql.com/wiki/GIS_Functions

dariapra
la source
6

La bataille MySQL vs Postgis reprend une fois de plus:

http://ambergis.wordpress.com/2008/02/19/mysql-vs-postgis/

Notez que les commentateurs sont pour la plupart d'ici (échange de pile gis.)

liens aussi

http://www.spatiallyadjusted.com/2008/02/05/bringing-open-source-gis-into-an-esri-shop/#comment-32680

Ont eu des déploiements plus réussis avec postgis que mysql. (dépendent des configurations des clients et de ce qu'ils essaient de réaliser)

Ma seule suggestion à Paul Ramsey (et à l'équipe PostGIS) est une interface graphique agréable pour les postgis via PgAdmin (v4 ..?) Avec un visualiseur (comme le FME du logiciel sûr) - pas seulement les attributs seraient un atout majeur. Utilisez actuellement QGIS pour visualiser les données postgis.

Mapperz
la source