158 uint8_t source_is_latlong =
LW_FALSE;
159 double semi_major_metre = DBL_MAX, semi_minor_metre = DBL_MAX;
162 if (! (str_in && str_out))
165 PJ* pj = proj_create_crs_to_crs(PJ_DEFAULT_CTX, str_in, str_out, NULL);
172 if (strcmp(str_in, str_out) == 0)
174 PJ *pj_source_crs = proj_get_source_crs(PJ_DEFAULT_CTX, pj);
176 PJ_TYPE pj_type = proj_get_type(pj_source_crs);
177 if (pj_type == PJ_TYPE_UNKNOWN)
180 lwerror(
"%s: unable to access source crs type", __func__);
183 source_is_latlong = (pj_type == PJ_TYPE_GEOGRAPHIC_2D_CRS) || (pj_type == PJ_TYPE_GEOGRAPHIC_3D_CRS);
185 pj_ellps = proj_get_ellipsoid(PJ_DEFAULT_CTX, pj_source_crs);
186 proj_destroy(pj_source_crs);
190 lwerror(
"%s: unable to access source crs ellipsoid", __func__);
193 if (!proj_ellipsoid_get_parameters(PJ_DEFAULT_CTX,
200 proj_destroy(pj_ellps);
202 lwerror(
"%s: unable to access source crs ellipsoid parameters", __func__);
205 proj_destroy(pj_ellps);
209 PJ* pj_norm = proj_normalize_for_visualization(PJ_DEFAULT_CTX, pj);
214 else if (pj != pj_norm)
void * lwalloc(size_t size)
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
uint8_t source_is_latlong
double source_semi_major_metre
double source_semi_minor_metre