INSERT INTO my4capitals (cartodb_id, name, the_geom) VALUES ( 0, 'Paris', ST_GeometryFromText( 'POINT(2.333 48.867)', 4326)); INSERT INTO my4capitals (cartodb_id, name, the_geom) VALUES ( 1, 'Bern', ST_GeometryFromText( 'POINT(7.433 46.95)', 4326)); INSERT INTO my4capitals (cartodb_id, name, the_geom) VALUES ( 2, 'Rome', ST_GeometryFromText( 'POINT(12.5 41.883)', 4326)); INSERT INTO my4capitals (cartodb_id, name, the_geom) VALUES ( 3, 'Madrid', ST_GeometryFromText( 'POINT(-3.71 40.41)', 4326));
SELECT * from my4capitals
La classe Connection du GeoManager précédent est maintenant remplacée par un appel à une API Web. On peut y lancer des requêtes SQL spatiales. Par exemple :
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $api_key = "2e957be5f1e9c0793ca1725aab08274a795f2c3f"; $q = "select name, ST_AsGeoJSON(the_geom) as geom from my4capitals"; $url = "http://oertz.cartodb.com/api/v2/sql?api_key=" . $api_key. "&q=" . urlencode($q); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); header("Content-type: application/json"); echo $result; ?>
TODO
<?php require_once 'GeoManager.php'; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $api_key = "2e957be5f1e9c0793ca1725aab08274a795f2c3f"; $q = "select name, ST_AsGeoJSON(the_geom) as geom from my4capitals"; $url = "http://oertz.cartodb.com/api/v2/sql?api_key=" . $api_key. "&q=" . urlencode($q); curl_setopt($ch, CURLOPT_URL, $url); $result = curl_exec($ch); $rows = json_decode($result)->rows; header("Content-type: application/json"); $i = 0; $fc = new FeatureCollection(); foreach ($rows as $row) { $fc->addFeature(new Feature($i++, json_decode($row->geom), array("name" => $row->name))); } echo json_encode($fc); ?>