Pregunta

He estado trabajando en Postgis para el punto en el poli de y tengo esta función:

SELECT * FROM nombre_tabla donde ST_Contains (columna, st_setsrid (st_makepoint (-92.095109, 46.804100), 4326));

la columna es una multipoly (((puntos)))

Estoy tratando de encontrar una manera de hacer un ejercicio similar con MySQL, y se preguntó si había funciones similares para hacerlo. El sitio de dev para MySQL es muy limitado con las descripciones y documentación sobre el Multipolys.

¿Alguien ha hecho algo como esto?

¿Fue útil?

Solución

MySQL no implementa una gran cantidad de consultas espaciales - No sé con certeza acerca contiene, pero hay maneras de aproximar y otras funciones. Por ejemplo, se puede hacer distancias entre puntos tirando de todos los resultados con coordenadas en un rectángulo dado y luego calcular la distancia como se describe aquí. también puede utilizar rectángulos para una aproximación de su problema contains. En primer lugar, una sintaxis más general WKT para su selecto:

select * from table_name where contains(the_polygon, GeomFromText('POINT(12.3 45.6)');

Creo que la especificación abierta para contains no está implementado, pero hay una función de MySQL para utilizar un saltando rectángulo a la aproximación de si su punto está en el polígono:

select * from table_name where MBRContains(the_polygon, GeomFromText('POINT(12.3 45.6)');

Me han terminado utilizando una gran cantidad de rectángulos en general sobre MySQL, ya que es fácil de calcular los límites exteriores de coordinar conjuntos. PostGIS general es mucho mejor, pero se puede hacer algunas cosas entre bases de datos si es necesario.

Actualizar : Después de esta pregunta se hizo un resumen agradable se envió a opengeo.org; parece que, incluso cuando no es obvio o dicho de MySQL a menudo utiliza MBR. También mirar el point, lseg, box, path, polygon, tipos de Postgres nativas y circle si se quiere entender más acerca de cómo funciona y por qué PostGIS sus ejecutores característica 2d tienen una fila más corta de roer en general.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top