es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

MySQL diferentes enfoques para almacenar coordenadas

Tengo un código SQL para MySQL que inserta tanto un punto como un polígono en una base de datos. Este código funciona. Sin embargo, he visto múltiples formas de hacer esto en línea y no está claro cuál es el enfoque correcto.

Esta es mi forma actual:
http://sqlfiddle.com/#!9/df0e51/1

CREATE TABLE `Grid` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `point` POINT DEFAULT NULL,
  `polygon` polygon DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=INNODB;

INSERT INTO `Grid`(point, polygon) 
VALUES(POINTFROMTEXT('POINT(49.227239 17.564932)'),POLYGONFROMTEXT('POLYGON((0 5, 2 5, 2 7, 0 7, 0 5))'));

Sin embargo, también he visto tutoriales que utilizan el tipo de geometría con instrucciones de inserción que contienen ST_GeomFromText para lograr exactamente lo mismo.

Mi pregunta es, ¿hay una forma correcta de hacer esto, o al menos, cómo sé cuándo usar una u otra?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en MySQL, coordenadas, SIG y geoespacial, diría que ambos métodos son válidos para insertar un punto y un polígono en una base de datos de MySQL. El primer método mostrado en el ejemplo de código anterior utiliza las funciones POINTFROMTEXT y POLYGONFROMTEXT para crear los objetos de punto y polígono respectivamente. El segundo método utiliza la función ST_GeomFromText con el tipo de geometría para lograr el mismo resultado.

    La elección del método dependería de factores como la preferencia personal, el caso de uso específico y la versión de MySQL que se esté utilizando. En general, el método POINTFROMTEXT/POLYGONFROMTEXT es compatible con versiones antiguas de MySQL, mientras que el método ST_GeomFromText es compatible con versiones más nuevas. Además, el método ST_GeomFromText permite una mayor flexibilidad y personalización, como la capacidad de especificar un sistema de referencia espacial.

    En última instancia, es importante elegir un método que sea compatible con la versión de MySQL que se esté utilizando y que funcione mejor para su caso de uso específico.

Comments are closed.