Suite

Comment enregistrer un tampon CartoDB dans sa propre table/couche de données


Cela semble être une question stupide, mais je souhaite créer (ou ajouter à) test_table2 une fonction tampon à partir de la couche de points test_table1.

INSÉRER DANS test_table2 (SELECT ST_Buffer (the_geom_webmercator, 1000) AS the_geom_webmercator, cartodb_id FROM test_table1)

Dans cet exemple, test_table2 existe déjà et partage les mêmes colonnes que test_table1

Mettre à jour

Dans la fenêtre de requête CartoDB en ligne dans Data View/Map View, cette instruction fonctionne :

SELECTIONNER ST_Buffer (the_geom_webmercator, 500) AS the_geom_webmercator, cartodb_id FROM test_table1

Je dois donc fondamentalement INSÉRER cela dans une table nouvelle ou déjà créée.

Mise à jour2

J'ai donc obtenu la déclaration suivante pour fonctionner:

INSÉRER DANS les VALEURS testcreate (the_geom) (ST_Buffer(CDB_LatLng(40.7127, -74.0059),0.01));

Je ne pense pas que cela ait vraiment résolu mon problème, à moins que je puisse obtenir ST_Intersects et ST_Transform (car j'en ai besoin dans un système projeté - le résultat n'est pas projeté) pour s'adapter à la fonction VALUES().

Conseils fournis par @schwanksta sur twitter :

schwanksta: @nygeog Hm, peut-être un malentendu, mais ne pouvez-vous pas METTRE À JOUR t1 SET buffer = (SELECT ST_Buffer(t2.geom,100) FROM t2 WHERE t1.id=t2.id)

@nygeog t1 serait la table dans laquelle vous essayez d'insérer la valeur, t2 serait la couche source pt. désolé, inversé votre schéma de nommage !

@nygeog Vous devez d'abord créer une colonne avec AddGeometryColumn

J'ai essayé ça :

MISE À JOUR t2 SET buffer = (SELECT ST_Buffer(t1.the_geom,100) FROM t1 WHERE t1.cartodb_id=t2.cartodb_id)

Cela n'a pas semblé fonctionner pour moi, je pourrais mal traduire pour répondre à mes données (j'ai créé deux tables t1 et t2, mais j'ai obtenu urllib2.HTTPError: HTTP Error 400: Bad Request from this.


De l'aide du commentaire de @ user30184 :

A couru cette déclaration:

CREATE TABLE test_tablebuffer AS SELECT ST_Buffer (the_geom_webmercator, 5000) AS the_geom_webmercator, cartodb_id FROM test_table1

Ensuite, ceci (pour qu'il apparaisse dans l'interface utilisateur de CartoDB) :

sélectionnez cdb_cartodbfytable('test_tablebuffer');


Voir la vidéo: FileMaker Pro: Lier des enregistrements entre les tables (Octobre 2021).