Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

5 votos

Creando el GeoJSON adecuado a partir de los datos PostGIS usando node.js

Estoy tratando de construir un objeto GeoJSON a partir de una consulta SQL a algunos datos de puntos GIS en una base de datos postgis postgresql. Un fragmento de mi node.js app.js está abajo.

Tal como está, entiendo la construcción del tipo y las características, pero no sé cómo adjuntar una propiedad a cada registro GeoJSON (en la parte inferior, todo se muestra al final, separado de (no cotejado con) las características).

LA PREGUNTA: ¿Qué tengo que hacer para que las propiedades se adjunten (cotejen) para cada registro en el bucle que construye el GeoJSON para que se parezca más a esto http://www.geojson.org/geojson-spec.html#examples ?

function GrabData(bounds, res){

  pg.connect(conn, function(err, client){

  var moisql = 'SELECT ttl, (ST_AsGeoJSON(the_geom)) as locale from cpag;'

  client.query(moisql, function(err, result){
    var featureCollection = new FeatureCollection();

    for(i=0; i<result.rows.length; i++){
      featureCollection.features[i] = JSON.parse(result.rows[i].locale);
      featureCollection.properties[i] = JSON.parse(result.rows[i].ttl); //this is wrong
   }

   res.send(featureCollection);
   });

});
}

 function FeatureCollection(){
   this.type = 'FeatureCollection';
   this.features = new Array();
   this.properties = new Object;  //this is wrong
 }

5voto

Iain Puntos 2721

Este función debería funcionar para usted; sólo pase el result.rows objeto como argumento;

  toGeoJson: function(rows){
    var obj, i;

    obj = {
      type: "FeatureCollection",
      features: []
    };

    for (i = 0; i < rows.length; i++) {
      var item, feature, geometry;
      item = rows[i];

      geometry = JSON.parse(item.geometry);
      delete item.geometry;

      feature = {
        type: "Feature",
        properties: item,
        geometry: geometry
      }

      obj.features.push(feature);
    } 
    return obj;
  }

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X