<div dir="ltr">Hola,<div><br></div><div>Quería obtener de forma rápida el número de geometrías (primitivas) de cada feature de un shape.</div><div><br></div><div>No se si hay alguna forma de hacerlo directamente en gvSIG pero me hice un script superrapido tal que así:</div><div><br></div><div><div>import gvsig</div><div><br></div><div>def main(*args):</div><div>    features = gvsig.currentLayer().features()</div><div>    for feature in features:</div><div>      code = feature[&#39;id1&#39;]</div><div>      num_geometries = feature.geometry().getPrimitivesNumber()</div><div>      # num_geometries = feature.geometry().getNumVertices()</div><div>      print &#39;{}: {}&#39;.format(code, num_geometries)</div></div><div><br></div><div>Pero da el error. </div><div><br></div><div>AttributeError: &#39;org.gvsig.fmap.geom.jts.primitive.curve.line.Line2&#39; object has no attribute &#39;getPrimitivesNumber&#39;</div><div><br></div><div>No se si es porque el método getPrimitivesNumber no está en la interfaz Geometry si no en <a href="http://downloads.gvsig.org/download/gvsig-desktop-testing/dists/2.3.0/javadocs/html/org/gvsig/fmap/geom/aggregate/Aggregate.html">Aggregate</a> que sólo heredan las geometrías multi. Si es así podría ser útil que este método estuviera disponible para todas las geometrías para evitar tener que hacer comprobaciones de tipo. Por ejemplo Postgis lo hace así con <a href="http://postgis.net/docs/manual-2.1/ST_NumGeometries.html">ST_NumGeometries</a>. De todas formas en las propiedades de la capa está declarada MultiCurve:2D.</div><div><br></div><div>También relacionado con esto. Si paso el script sobre otra capa que tengo, en este caso un Multicurve:·3DM no me va ni el método getPrimitivesNumber() ni el método getNumVertices()</div><div><br></div><div>Estoy en gvSIG 2.3.1.</div><div><br></div><div>Un saludo.</div></div>