sql >> データベース >  >> RDS >> Mysql

MapBoxjavascriptAPIで使用するMySqlからphpでGeoJsonを作成する

    これを見てください: https://github.com/bmcbride/PHP-Database-GeoJSON

    Jsonデータの代わりに配列を返しています。これはどのように見えるべきかです

    <?php
    /*
     * Title:   MySQL Points to GeoJSON
     * Notes:   Query a MySQL table or view of points with x and y columns and return the results in GeoJSON format, suitable for use in OpenLayers, Leaflet, etc.
     * Author:  Bryan R. McBride, GISP
     * Contact: bryanmcbride.com
     * GitHub:  https://github.com/bmcbride/PHP-Database-GeoJSON
     */
    
    # Connect to MySQL database
    $conn = new PDO('pgsql:host=localhost;dbname=mypostgisdb','myusername','mypassword');
    
    # Build SQL SELECT statement including x and y columns
    $sql = 'SELECT *, x AS x, y AS y FROM mytable';
    
    /*
    * If bbox variable is set, only return records that are within the bounding box
    * bbox should be a string in the form of 'southwest_lng,southwest_lat,northeast_lng,northeast_lat'
    * Leaflet: map.getBounds().pad(0.05).toBBoxString()
    */
    if (isset($_GET['bbox']) || isset($_POST['bbox'])) {
        $bbox = explode(',', $_GET['bbox']);
        $sql = $sql . ' WHERE x <= ' . $bbox[2] . ' AND x >= ' . $bbox[0] . ' AND y <= ' . $bbox[3] . ' AND y >= ' . $bbox[1];
    }
    
    # Try query or error
    $rs = $conn->query($sql);
    if (!$rs) {
        echo 'An SQL error occured.\n';
        exit;
    }
    
    # Build GeoJSON feature collection array
    $geojson = array(
       'type'      => 'FeatureCollection',
       'features'  => array()
    );
    
    # Loop through rows to build feature arrays
    while ($row = $rs->fetch(PDO::FETCH_ASSOC)) {
        $properties = $row;
        # Remove x and y fields from properties (optional)
        unset($properties['x']);
        unset($properties['y']);
        $feature = array(
            'type' => 'Feature',
            'geometry' => array(
                'type' => 'Point',
                'coordinates' => array(
                    $row['x'],
                    $row['y']
                )
            ),
            'properties' => $properties
        );
        # Add feature arrays to feature collection array
        array_push($geojson['features'], $feature);
    }
    
    header('Content-type: application/json');
    echo json_encode($geojson, JSON_NUMERIC_CHECK);
    $conn = NULL;
    ?>
    


    1. 実行しているOracleクライアントのバージョンを判別するための最良の方法は何ですか?

    2. プリペアドステートメントのパラメータとしてテーブル名を渡す

    3. そのシークで実際に何が起こっているのですか?

    4. コマンドラインを使用してpostgresバックアップファイルを復元しますか?