İşte postgresql için PostGIS, uzaysal uzantıları kullanarak bir örnek. Benzer uzantıları MySQL, Oracle, mssql, sqlite ve şüphesiz diğer veritabanları için var. PostGIS must be installed bu iş için.
Öncelikle, bir sql dosyasına shapefile dönüştürmek gerekir:
fmark@fmark-laptop:~$ shp2pgsql -c Desktop/zillow/ZillowNeighborhoods-AK.shp zillowak > Desktop/zillow/ZillowNeighborhoods-AK.sql
Shapefile type: Polygon
Postgis type: MULTIPOLYGON[2]
Sonra bir mekansal etkin tabloya sql dosyasını dönüştürmek için veritabanı (bu durumda veritabanı "CBS") üzerinde sql çalıştırın:
fmark@fmark-laptop:~$ psql -d gis -f Desktop/zillow/ZillowNeighborhoods-AK.sql
SET
BEGIN
...
COMMIT
Bir mekansal sorgu yapıyor olacak gibi bu noktada muhtemelen, bir mekansal dizin oluşturmak istiyorsanız:
fmark@fmark-laptop:~$ psql -d gis
psql (8.4.2)
Type "help" for help.
gis=# CREATE INDEX idx_neighborhoods ON zillowak USING gist(the_geom);
CREATE INDEX
gis-# \q
Now, if you have a lat/long (in this example -149.309W, 60.985S), you can find which neighborhood it is in:
fmark@fmark-laptop:~$ psql -d gis
psql (8.4.2)
Type "help" for help.
gis=# select gid, state, county, city, name, regionid from zillowak WHERE ST_CONTAINS(the_geom, GeomFromText('POINT(-149.309 60.985)', -1));
gid | state | county | city | name | regionid
-----+-------+-----------+-----------+---------------+----------
29 | AK | Anchorage | Anchorage | Turnagain Arm | 275783
(1 row)
gis=# \q
fmark@fmark-laptop:~$
Bu son aşama tabii ki basit bir sorgu tarafından PHP yapılabilir.