Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Usando MySQL 'POINT' e PHP para inserir pontos de latitude e longitude através de um formulário


Você precisa de algo como
SET point_LatLon = GeomFromText('POINT(45.1234 123.4567)')

em que o parâmetro que você passa para GeomFromText é uma cadeia de caracteres como
POINT(45.1234 123.4567)

Descobri que esse tipo de construção funciona bem se eu tiver dois parâmetros numéricos, onde ? são os espaços reservados para esses parâmetros lat e lon. A função CONCAT reúne a sequência de texto necessária.
GeomFromText( CONCAT('POINT(', ?, ' ', ?, ')') ) 

Acontece que você não pode criar um índice espacial em uma tabela InnoDB em versões do MySQL anteriores à versão 5.7.4 (que ainda não está disponível). Se você quiser um índice espacial, precisará usar o método de acesso MyISAM para sua tabela. Isso é um pouco incômodo.

Aqui está um artigo sobre como usar geoespacial para esse fim. http://www.plumislandmedia.net/mysql/ using-mysqls-geospatial-extension-location-finder/