<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Javier,</p>
    <p>the proper fix would be to add a PJ_TYPE_DERIVED_PROJECTED_CRS to
      the enumeration (9.2 type of change only, not to be backported to
      stable branch). Returning PJ_TYPE_PROJECTED_CRS could cause issues
      as you can't cast the C++ object corresponding to a
      DerivedProjectedCRS to be a ProjectedCRS</p>
    <p>ISO 19111 doesn't consider a DerivedProjectedCRS to be a
      ProjectedCRS, presumably because that the conversion applied to
      the ProjectedCRS to make it a DerivedProjectedCRS might loose some
      of the properties of the projection (conformality, equal area,
      etc.). For example if you apply an affine transformation where the
      scaling isn't the same in both axis. Just guessing.</p>
    <p>Even<br>
    </p>
    <div class="moz-cite-prefix">Le 23/11/2022 à 11:35, Javier Jimenez
      Shaw a écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:CADRrdKtu4G4mQy7Rk3WjS8RXh2LdNOK36Sb3-tU7icqVbVwDjQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div>Hi</div>
        <div><br>
        </div>
        <div>Searching from PDAL (SpatialReference::isProjected) to GDAL
          (OSRIsProjected) to PROJ, I ended up in the function</div>
        <div>PJ_TYPE proj_get_type(const PJ *obj) <br>
        </div>
        <div><br>
        </div>
        <div>Inspecting the code I realized that a DerivedProjectedCRS
          is not covered by the selector, and will return
          PJ_TYPE_OTHER_CRS</div>
        <div><br>
        </div>
        <div>Remember that unlike other derived, like
          DerivedGeographicCRS that is a GeographicCRS or
          DerivedVerticalCRS is a VerticalCRS, a DerivedProjectedCRS is
          not inheriting from ProjectedCRS.</div>
        <div><br>
        </div>
        <div>How should it be? Should it be returned as
          PJ_TYPE_PROJECTED_CRS ? Should we create a new category? Leave
          as it is now (abandoned among other first class citizen CRS
          types)?</div>
        <div><br>
        </div>
        <div>In my opinion a DerivedProjectedCRS "behaves" like a
          ProjectedCRS in the same way as a DerivedVerticalCRS behaves
          like a VerticalCRS and so on. But maybe I am missing
          something.<br>
        </div>
        <div><br>
        </div>
        <div>Thanks.<br>
        </div>
        <div>
          <div>
            <div dir="ltr" class="gmail_signature"
              data-smartmail="gmail_signature">.___ ._ ..._ .. . ._. 
              .___ .. __ . _. . __..  ... .... ._ .__<br>
              Entre dos pensamientos racionales <br>
              hay infinitos pensamientos irracionales.<br>
              <br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
PROJ mailing list
<a class="moz-txt-link-abbreviated" href="mailto:PROJ@lists.osgeo.org">PROJ@lists.osgeo.org</a>
<a class="moz-txt-link-freetext" href="https://lists.osgeo.org/mailman/listinfo/proj">https://lists.osgeo.org/mailman/listinfo/proj</a>
</pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
<a class="moz-txt-link-freetext" href="http://www.spatialys.com">http://www.spatialys.com</a>
My software is free, but my time generally not.</pre>
  </body>
</html>