2012-12-01 4 views
2

PostGIS 기능이있는 postgreSQL 데이터베이스 용 클라이언트를 작성하고 있습니다. 물론이 클라이언트는 PHP를 통해 통신합니다. 그러나 나는 php 파일에서 호출 할 수있는 postGIS 함수에 대한 적절한 문서를 찾고있다.PostGIS 함수가 PHP 예제에 통합 되었습니까?

postGIS 기능이 PHP에 어떻게 통합되어 있는지 간단한 예제를 얻을 수 있다면 정말 고맙겠습니다.

건배 :)

+0

http://www.slideshare.net/pgconf/integrating-postgis-in-web-applications 내가 찾을 수있는 유일한 것. 오랫동안 읽었던 ... –

답변

4

PostGIS와 잘 모르는 것 같아요 두려워. PDO가있는 경우 개체와 매우 비슷한 개체를 호출하는 절차를 작성할 수 있습니다. 사용 가능한 패치 모드에 대해서는 PHP PDO를 참조하십시오.

<?php 
require_once 'constants.php'; 
class Postgis extends PDO 
{ 
    public function __construct() 
    { 
    $this->pg = new PDO(PDO_DB_DSN); 
    $this->pg->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
    public function makePoint($x, $y) 
    { 
    $preparedStatement = $this->pg->prepare('SELECT public.st_makepoint(?, ?)'); 
    $preparedStatement->execute(array($x, $y)); 
    return $preparedStatement->fetchColumn(); 
    } 
} 

try 
{ 
    $postgis = new Postgis(); 
    $point = $postgis->makePoint(34, 44); //point holds the binary string of a point without srid 
    var_dump($point); 
} 
catch (PDOException $e) 
{ 
    // any errors here 
    var_dump($e->getMessage()); 
} 
?> 
1

PostGIS와 여기에 예를 들어, 웹 사이트에 모든 종류와 기능을 나열 Version 1.5 reference documentation입니다. PHP에서 다른 SQL을 호출하는 것처럼 이러한 함수를 SQL로 호출 할 수 있습니다.

그래서 사용하여 PHP의 내장 PostgreSQL의 기능, 당신은 같은 것을 할 수있는 :의 위치 열에 영국 그리드 참조 시스템 (40, 30)에서 미터의 거리를 얻으려면

$result = pg_query_params(' 
    SELECT ST_Distance(location, ST_SetSRID(ST_Point($1, $2), 27700)) 
    FROM table WHERE id=$3', array(400000, 300000, 123)); 

을 데이터베이스 테이블의 행 123.

잘 PostGIS와 기능의 주위에 PHP 래퍼가있을 수 있습니다,하지만 난 당신의 PostgreSQL 데이터베이스에 일부 스키마에서 제공 절차에 저장된 모든

관련 문제