sql >> Databáze >  >> RDS >> Mysql

Použití MySQL 'POINT' a PHP k vložení bodů zeměpisné šířky a délky prostřednictvím formuláře

Potřebujete něco jako

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

ve kterém parametr, který předáte GeomFromText, je znakový řetězec jako

POINT(45.1234 123.4567)

Zjistil jsem, že tento druh konstrukce funguje dobře, pokud mám dva číselné parametry, kde ? jsou zástupné symboly pro tyto parametry lat a lon. Funkce CONCAT skládá dohromady požadovaný textový řetězec.

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

Stává se, že nemůžete vytvořit prostorový index v tabulce InnoDB ve verzích MySQL před verzí 5.7.4 (která ještě není obecně dostupná). Pokud chcete prostorový index, budete muset pro svou tabulku použít přístupovou metodu MyISAM. To je trochu nepříjemné.

Zde je popis použití geoprostoru pro tento účel. http://www.plumislandmedia.net/mysql/ using-mysqls-geospatial-extension-location-finder/




  1. Nástroj pro porovnávání dat PostgreSQL

  2. django se nemůže připojit k RDS postgresql

  3. Postgresql fulltextové vyhledávání pro český jazyk (žádná výchozí konfigurace jazyka)

  4. Spojte hodnotu druhého sloupce, pokud je hodnota prvního sloupce stejná