GeoVis incompatible with external libproj4 6.0
libproj4 has added a new API in 5.0 and deprecated/removed the older API in 6.0.
- projects.h is no longer available in 6.0
- use of proj_api.h has to be opted in since 6.0, to be removed in 7.0
- pj_get_list_ref has been renamed proj_list_operations in 5.0
- PJProps is opaque now, its contents can be accessed with proj_pj_info since 5.0. As the contents are no longer global, the const char* from GetProjectionName has to be copied into the vtkGeoProjection object.
proj_api.h can either be used as primary or secondary API. Using it as primary API leads to conflicting typedefs of "PJ", void* vs PJProps*. Using it as secondary API changes definitions of the coordinate types.
The coordinates structures have been changed to be a union of the specific types, and the members inside the types where renamed e.g. projLP no longer has u/v members, but lam/phi members.
See https://github.com/OSGeo/proj.4/blob/master/src/proj.h for more info.
The patch makes the VTK code compatible with 5.0 and later, but likely breaks with older versions.