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

New MiraMonVector driver #9688

Merged
merged 8 commits into from
Apr 19, 2024
Merged

Conversation

AbelPau
Copy link
Contributor

@AbelPau AbelPau commented Apr 17, 2024

What does this PR do?

This driver allows to create and open MiraMon polygon, stringline and point vectors.

What are related issues/pull requests?

There are not related issues or pull requests.

Tasklist

  • Make sure code is correctly formatted (cf pre-commit configuration)
  • Add test case(s)
  • Add documentation
  • Updated Python API documentation (swig/include/python/docs/)
  • Review
  • Adjust for comments
  • All CI builds and checks have passed

Environment

Provide environment details, if relevant:

  • OS:
  • Compiler:

@rouault
Copy link
Member

rouault commented Apr 17, 2024

I've worked together with @AbelPau over the past weeks to put the driver into shape. You can find the details of the review in AbelPau#12 . The branch in its state of ~ one week ago was submitted to coverity-scan and issues were fixed .I've also run it through ossfuzz locally on my PC with the undefined and address santizers, on the new miramon dedicated fuzzer, and it now runs for a couple days without issues. So from my perspective, we are in a state acceptable for upstreaming.

doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved

In MiraMon the concepts of OGRMultiPoints and OGRMultiLineStrings are not supported,
but the driver translates a multipoint into N points and a multistring into N arcs.
So, when reading a MiraMon file of type *.pol*, the corresponding
Copy link
Collaborator

@nyalldawson nyalldawson Apr 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a little confusing to me. How does the handling of multipolygons relate to the limitation on multipoint/linestrings?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A multipolygon has a list of stringline indices (in the *.pol file) and when the vertices of a multipolygon (or a polygon) are dumped the coordinates are extracted from the corresponding *.arc file using that list of indices (and other details). You can consult how it's organized a multipolygon (or a polygon) more precisely here: https://www.miramon.cat/new_note/eng/notes/[MiraMon_structured_vectors_file_format.pdf](https://www.miramon.cat/new_note/eng/notes/MiraMon_structured_vectors_file_format.pdf)

But the concept of having a a group of connected lines it's not present in MiraMon, for the moment.

doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
doc/source/drivers/vector/miramon.rst Outdated Show resolved Hide resolved
@coveralls
Copy link
Collaborator

coveralls commented Apr 18, 2024

Coverage Status

coverage: 69.004% (+0.007%) from 68.997%
when pulling 1430c03 on AbelPau:miramon_clean_history
into 88b0dd8 on OSGeo:master.

@rouault rouault merged commit 10fa4d1 into OSGeo:master Apr 19, 2024
32 checks passed
@rouault rouault added this to the 3.9.0 milestone Apr 19, 2024
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

Successfully merging this pull request may close these issues.

4 participants