Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failing to validate a GeometryCollection inside a Feature #27

Open
pandres95 opened this issue Apr 11, 2018 · 4 comments
Open

Failing to validate a GeometryCollection inside a Feature #27

pandres95 opened this issue Apr 11, 2018 · 4 comments

Comments

@pandres95
Copy link

I'm trying to add the following object to mongoose

{
    "name": "Edificio Roberto Franco",
    "key": "Gb",
    "address": {
        "line1": "Cra. 1 # 18A - 12",
        "city": "Santa Fe",
        "state": "Bogotá DC",
        "country": "Colombia",
        "geolocation": {
            "coordinates": [
                -74.06639482,
                4.601515
            ],
            "type": "Point"
        }
    },
    "polygon": {
        "type": "Feature",
        "geometry": {
            "type": "GeometryCollection",
            "geometries": [
                {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                -74.065899,
                                4.601595,
                                0
                            ],
                            [
                                -74.066125,
                                4.601672,
                                0
                            ],
                            [
                                -74.066135,
                                4.601643,
                                0
                            ],
                            [
                                -74.066159,
                                4.601566,
                                0
                            ],
                            [
                                -74.066158,
                                4.601566,
                                0
                            ],
                            [
                                -74.065986,
                                4.601464,
                                0
                            ],
                            [
                                -74.065942,
                                4.601531,
                                0
                            ],
                            [
                                -74.065928,
                                4.601532,
                                0
                            ],
                            [
                                -74.065928,
                                4.601552,
                                0
                            ],
                            [
                                -74.065899,
                                4.601595,
                                0
                            ]
                        ]
                    ]
                },
                {
                    "type": "Polygon",
                    "coordinates": [
                        [
                            [
                                -74.065993,
                                4.601765,
                                0
                            ],
                            [
                                -74.066032,
                                4.601641,
                                0
                            ],
                            [
                                -74.065899,
                                4.601595,
                                0
                            ],
                            [
                                -74.065854,
                                4.601661,
                                0
                            ],
                            [
                                -74.065993,
                                4.601765,
                                0
                            ]
                        ]
                    ]
                }
            ]
        },
        "properties": {
            "styleUrl": "#poly-FFEA00-1200-76",
            "styleHash": "-26c96a1f",
            "styleMapHash": {
                "normal": "#poly-FFEA00-1200-76-normal",
                "highlight": "#poly-FFEA00-1200-76-highlight"
            },
            "description": "FID   30    <br>   OBJECTID_1   31    <br>   BLOQUE   Gb    <br>   FOTO   c:\\proyectos\\sigcampus\\graficos\\imagenes\\bloques\\Gb.jpg    <br>   AREA   556,780195    <br>   PERIMETER   137,657    <br>   HECTARES   0,056    <br>   Sotanos       <br>   Shape_Leng   137,657271    <br>   Tratamient   reestructuración    <br>   mov_reduci   Completa    <br>   AREA_ÚTIL   2686    <br>   FID_sala_s   0    <br>   Name       <br>   FID_Bloque   0    <br>   USO       <br>   Oport_2048       <br>   existente       <br>   Estrategia       <br>   tipo       <br>   FID_bloq_1   0    <br>   BLOQUE_1       <br>   FOTO_1       <br>   AREA_1   0    <br>   PERIMETE_1   0    <br>   HECTARES_1   0    <br>   Sotanos_1       <br>   TIPO_1       <br>   Demolicion       <br>   Shape_Le_1   0    <br>   Shape_Ar_1   0    <br>   FID_Bloq_2   0    <br>   BLOQUE_12       <br>   FOTO_12       <br>   AREA_12   0    <br>   PERIMETE_2   0    <br>   HECTARES_2   0    <br>   Sotanos_12       <br>   Shape_Le_2   0    <br>   Shape_Ar_2   0    <br>   BLOQUE_PRO       <br>   Nombre       <br>   bloque_id       <br>   Estado       <br>   FID_Bloq_3   0    <br>   OBJECTID_2   0    <br>   BLOQUE__13       <br>   FOTO_12_13       <br>   AREA_12_13   0    <br>   PERIMETE_3   0    <br>   HECTARES_3   0    <br>   Sotanos_13       <br>   Shape_Le_3   0    <br>   Shape_Ar_3   0    <br>   Tratamie_1       <br>   mov_redu_1       <br>   USO_1       <br>   Oport_2049       <br>   existent_1       <br>   Estrateg_1       <br>   tipo_12       <br>   Shape_Le_4   137,657201",
            "stroke": "#ffea00",
            "stroke-opacity": 1,
            "stroke-width": 1.2,
            "fill": "#ffea00",
            "fill-opacity": 0.2980392156862745
        }
    },
    "entrypoints": {
        "type": "FeatureCollection",
        "features": [
            {
                "type": "Feature",
                "geometry": {
                    "type": "Point",
                    "coordinates": [
                        -74.065987,
                        4.60144,
                        0
                    ]
                },
                "properties": {
                    "name": "Conexión B - Gb",
                    "styleUrl": "#icon-1739-BDBDBD-labelson",
                    "styleHash": "-312153aa",
                    "icon": "http://www.gstatic.com/mapspro/images/stock/503-wht-blank_maps.png",
                    "description": "Conexión B - Gb    <br>       <br>   FID   266    <br>   NOMBRE   Conexión B - Gb    <br>   PISO   0    <br>   BLOQUE   TRANS    <br>   AREA   21,078034    <br>   CONCENTRAC   0    <br>   CAP   0"
                }
            }
        ]
    }
}

This is the Schema:

{
    name: {
        type: String,
        required: true
    },
    key: {
        type: String,
        required: true
    },
    address: {
        type: Schema.Types.Mixed,
        ref: 'Address',
        required: true
    },
    polygon: {
        type: Schema.Types.Feature,
        required: true
    },
    innerNodes: Schema.Types.FeatureCollection,
    entrypoints: {
        type: Schema.Types.FeatureCollection,
        required: true
    }
}

And I'm getting the following error:

2018-04-11T18:18:36-0500 <error> migrate.js:422 (require.then.then.catch.e) { ValidationError: Building validation failed: polygon: Cast to Feature failed for value "{ type: 'Feature',
  geometry: 
   { type: 'GeometryCollection',
     geometries: [ [Object], [Object] ] },
  properties: 
   { styleUrl: '#poly-FFEA00-1200-76',
     styleHash: '-26c96a1f',
     styleMapHash: 
      { normal: '#poly-FFEA00-1200-76-normal',
        highlight: '#poly-FFEA00-1200-76-highlight' },
     description: 'FID 30',
     stroke: '#ffea00',
     'stroke-opacity': 1,
     'stroke-width': 1.2,
     fill: '#ffea00',
     'fill-opacity': 0.2980392156862745 } }" at path "polygon"
    at ValidationError.inspect (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/error/validation.js:57:23)
    at formatValue (util.js:430:38)
    at Object.inspect (util.js:324:10)
    at Object.exports.format (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/tracer/lib/utils.js:22:22)
    at logMain (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/tracer/lib/console.js:49:25)
    at Object._self.(anonymous function) [as error] (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/tracer/lib/console.js:140:12)
    at require.then.then.catch.e (/Users/pa.dorado/Documents/Development/AgentOwl/api/scripts/database/migrate.js:422:9)
    at <anonymous>:null:null
    at process._tickCallback (internal/process/next_tick.js:188:7)

  errors: 
   { polygon: 
      { CastError: Cast to Feature failed for value "{ type: 'Feature',
  geometry: 
   { type: 'GeometryCollection',
     geometries: [ [Object], [Object] ] },
  properties: 
   { styleUrl: '#poly-FFEA00-1200-76',
     styleHash: '-26c96a1f',
     styleMapHash: 
      { normal: '#poly-FFEA00-1200-76-normal',
        highlight: '#poly-FFEA00-1200-76-highlight' },
     description: 'FID 30',
     stroke: '#ffea00',
     'stroke-opacity': 1,
     'stroke-width': 1.2,
     fill: '#ffea00',
     'fill-opacity': 0.2980392156862745 } }" at path "polygon"
    at new CastError (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/error/cast.js:27:11)
    at model.$set (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/document.js:773:7)
    at model._handleIndex (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/document.js:594:14)
    at model.$set (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/document.js:554:24)
    at model.Document (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/document.js:83:12)
    at model.Model (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/model.js:56:12)
    at new model (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/model.js:3921:13)
    at /Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/model.js:2062:22
    at /Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/node_modules/async/internal/parallel.js:27:9
    at eachOfArrayLike (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/node_modules/async/eachOf.js:57:9)
    at exports.default (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/node_modules/async/eachOf.js:9:5)
    at _parallel (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/node_modules/async/internal/parallel.js:26:5)
    at parallelLimit (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/node_modules/async/parallel.js:85:26)
    at /Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/model.js:2078:5
    at new Promise (<anonymous>:null:null)
    at Function.create (/Users/pa.dorado/Documents/Development/AgentOwl/api/node_modules/mongoose/lib/model.js:2033:17)
    at Function.Schema.statics.insert (/Users/pa.dorado/Documents/Development/AgentOwl/api/plugins/crud_mongoose.js:34:39)
    at BoolJSComponent.insert (/Users/pa.dorado/Documents/Development/AgentOwl/api/plugins/crud_dao.js:25:27)
    at MigrationHistory.0.15.0 (/Users/pa.dorado/Documents/Development/AgentOwl/api/scripts/database/migrate.js:18:32)
    at <anonymous>:null:null
    at process._tickCallback (internal/process/next_tick.js:188:7)

        message: 'Cast to Feature failed for value "{ type: \'Feature\',\n  geometry: \n   { type: \'GeometryCollection\',\n     geometries: [ [Object], [Object] ] },\n  properties: \n   { styleUrl: \'#poly-FFEA00-1200-76\',\n     styleHash: \'-26c96a1f\',\n     styleMapHash: \n      { normal: \'#poly-FFEA00-1200-76-normal\',\n        highlight: \'#poly-FFEA00-1200-76-highlight\' },\n     description: \'FID 30\',\n     stroke: \'#ffea00\',\n     \'stroke-opacity\': 1,\n     \'stroke-width\': 1.2,\n     fill: \'#ffea00\',\n     \'fill-opacity\': 0.2980392156862745 } }" at path "polygon"',
        name: 'CastError',
        stringValue: '"{ type: \'Feature\',\n  geometry: \n   { type: \'GeometryCollection\',\n     geometries: [ [Object], [Object] ] },\n  properties: \n   { styleUrl: \'#poly-FFEA00-1200-76\',\n     styleHash: \'-26c96a1f\',\n     styleMapHash: \n      { normal: \'#poly-FFEA00-1200-76-normal\',\n        highlight: \'#poly-FFEA00-1200-76-highlight\' },\n     description: \'FID 30\',\n     stroke: \'#ffea00\',\n     \'stroke-opacity\': 1,\n     \'stroke-width\': 1.2,\n     fill: \'#ffea00\',\n     \'fill-opacity\': 0.2980392156862745 } }"',
        kind: 'Feature',
        value: [Object],
        path: 'polygon',
        reason: [Object] } },
  _message: 'Building validation failed',
  name: 'ValidationError' }
@markstos
Copy link
Contributor

Please include your Mongoose version.

@pandres95
Copy link
Author

Currently, I use 4.13.12

@joshkopecek
Copy link
Contributor

@pandres95 you're getting the error on the "polygon" node and that's the only one with backslashes (c:\\proyectos\\sigcampus\\graficos\\imagenes\\bloques\\Gb.jpg) - can you try it removing the those?

@pandres95
Copy link
Author

@joshkopecek I already tried removing it. Also, I tried removing the whole object from the batch insertion, but another one which had a GeometryCollection feature failed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants