Geometries are passed as const reference and returned by value.
This make using the API easier and reduces the risk of ownership
problems.
The overhead is minimal due to implicit sharing.
Fix https://github.com/qgis/qgis3.0_api/issues/68
Rationale:
- there was a lot of large objects passed by value, so potentially
there's a speed bump from this
- even for implicitly shared classes like QString/QList there's still
a (small) cost for copying the objects when there's no reason to
- it's the right thing to do!
In the GetFeature request QGIS WFS Server uses the static method: QgsDoubleToString. This method returns double with a precision fixed to 17.
We do not need that much precision for coordinates. Firstly because we are not able to measure a position on earth with a lower micron precision. Secondly because it unnecessarily overload response.
I propose to add the ability to specify the precision in the QgsDoubleToString method.
After commit 7d66529d7884b73070dbce80b1d4060d841a6933 Add GML3 to
QgsOgcUtils, I have to simplify this class to only have :
* geometryFromGML : read GML2 or GML3
* geometryToGML : create GML2 (as default) or GML3
After the commit 969df016bcdbd1ead8a347b7a5d55c8b36db183a Moved GML import/export to a new class: QgsOgcUtils, I decided to add GML3.
I updated QgsOgcUtils, QGIS WFS Server, and the Python Iterface and I added unit test for GML3.