<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">El 5 de abril de 2017, 18:46, Francisco Puga <span dir="ltr">&lt;<a href="mailto:fpuga@icarto.es" target="_blank">fpuga@icarto.es</a>&gt;</span> escribió:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><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(<wbr>)</div><div>    for feature in features:</div><div>      code = feature[&#39;id1&#39;]</div><div>      num_geometries = feature.geometry().<wbr>getPrimitivesNumber()</div><div>      # num_geometries = feature.geometry().<wbr>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.<wbr>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" target="_blank">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" target="_blank">ST_NumGeometries</a>. De todas formas en las propiedades de la capa está declarada MultiCurve:2D.</div></div></blockquote><div><br></div><div>Me temo que el metodo  getPrimitivesNumber solo va a funcionar sobre agregados.<br><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><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></blockquote><div><br></div><div>Si pudieses hacerme llegar el shape que te da esos problemas le hecho un vistazo a ver que es lo que pasa.<br><br></div><div>Un saludo<br></div><div>Joaquin<br><br></div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div></div><div>Estoy en gvSIG 2.3.1.</div><div><br></div><div>Un saludo.</div></div>
<br>______________________________<wbr>_________________<br>
gvSIG_desarrolladores mailing list<br>
<a href="mailto:gvSIG_desarrolladores@listserv.gva.es">gvSIG_desarrolladores@<wbr>listserv.gva.es</a><br>
Para ver histórico de mensajes, editar sus preferencias de usuario o darse de baja en esta lista, acuda a la siguiente dirección: <a href="https://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores" rel="noreferrer" target="_blank">https://listserv.gva.es/cgi-<wbr>bin/mailman/listinfo/gvsig_<wbr>desarrolladores</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature">--------------------------------------<br>Joaquin Jose del Cerro Murciano<br>Development and software arquitecture manager at gvSIG Team<br><a href="mailto:jjdelcerro@gvsig.com" target="_blank">jjdelcerro@gvsig.com</a><br><a href="mailto:jjdelcerro@gvsig.org" target="_blank">jjdelcerro@gvsig.org</a><br>gvSIG Association<br><a href="http://www.gvsig.com" target="_blank">www.gvsig.com</a><br><a href="http://www.gvsig.org" target="_blank">www.gvsig.org</a></div>
</div></div>