sql >> Database >  >> RDS >> Mysql

MySQL 'POINT' en PHP gebruiken om breedte- en lengtegraadpunten in te voegen via een formulier

Je hebt iets nodig als

SET point_LatLon = GeomFromText('POINT(45.1234 123.4567)')

waarin de parameter die u doorgeeft aan GeomFromText een tekenreeks is zoals

POINT(45.1234 123.4567)

Ik heb ontdekt dat dit soort constructie goed werkt als ik twee numerieke parameters heb, waarbij ? zijn de tijdelijke aanduidingen voor die lat- en lon-parameters. De CONCAT-functie voegt de vereiste tekstreeks samen.

GeomFromText( CONCAT('POINT(', ?, ' ', ?, ')') ) 

Het komt voor dat u geen ruimtelijke index kunt maken in een InnoDB-tabel in versies van MySQL ouder dan versie 5.7.4 (die nog niet algemeen beschikbaar is). Als u een ruimtelijke index wilt, moet u de MyISAM-toegangsmethode voor uw tabel gebruiken. Dit is een beetje vervelend.

Hier is een beschrijving van het gebruik van geospatial voor dit doel. http://www.plumislandmedia.net/mysql/ gebruik-mysqls-geospatial-extension-location-finder/




  1. Een berekende kolom maken die gegevens uit een andere tabel in SQL Server gebruikt

  2. FOUT:onvoldoende geheugen op machine met 32GB RAM en zonder wisselbestand

  3. Kan ik een transactie uitvoeren in twee MySQL-databases?

  4. Entity Framework werkt niet met tijdelijke tabel