<div dir="ltr"><div>About the JavaScript issues, maybe this project may help you</div><div><a href="https://github.com/bugra9/gdal3.js" style="box-sizing:border-box;background-color:rgb(255,255,255);text-decoration:underline;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal">https://github.com/bugra9/gdal3.js</a><br style="box-sizing:border-box;color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial"></div><div><span style="color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">It is about GDAL, that has to compile PROJ of course.</span></div><div><span style="color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none"><br></span></div><div><span style="color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">One thing that maybe is interesting about the CLI programs in PROJ, is to move the code into another cpp file, to let WASM call it like it is done from the CLI (if it cannot be used directly as it is). Something like "cs2cs.cpp" just with a small main function, and "cs2cs_impl.cpp" with the actual implementation, that is not small. Then WASM could call cs2cs_impl.cpp. </span><span style="color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">(I think that GDAL is doing that). </span><span style="color:rgb(31,35,40);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";font-size:14px;font-style:normal;font-variant-ligatures:normal;font-variant-caps:normal;font-weight:400;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;white-space:normal;background-color:rgb(255,255,255);text-decoration-style:initial;text-decoration-color:initial;display:inline;float:none">But maybe I am misunderstanding the usage of WASM calling C functions and programs.<br></span></div></div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, 12 Dec 2024 at 10:34, Martin Desruisseaux via PROJ <<a href="mailto:proj@lists.osgeo.org">proj@lists.osgeo.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><u></u>
<div>
<p>Hello<br>
</p>
<p>Le 2024-12-12 à 01 h 43, Will Cohen via
PROJ a écrit :<br>
</p>
<blockquote type="cite">
<div dir="ltr">I am very pleased to announce clj-proj (<a href="https://github.com/willcohen/clj-proj/" target="_blank">https://github.com/willcohen/clj-proj/</a>),
a project which provides a native (or transpiled) version of
PROJ for both the JVM and JS ecosystems.<br>
<br>
The goal of this project is to provide a long-missing component
of geospatial analysis for these platforms: a performant version
of PROJ that can closely follow upstream development. This
should dramatically improve the suitability of the JVM and JS
ecosystems for advanced open-source geospatial uses.</div>
</blockquote>
<p align="justify">This is a great effort and this project will
surely meet some users. It may also replace <a href="https://github.com/OSGeo/PROJ-JNI" target="_blank">PROJ-JNI</a>. But just
for avoiding to give an inexact impression to the readers, this
project indeed fills a hole on the JS side (as far as I know), but
not really on the JVM side where alternatives comparable to PROJ
exist for 20 years, in particular GeoTools (the oldest) and Apache
SIS. They have their advantages and inconvenient. For example,
PROJ supports more projection methods but Apache SIS has more
extensive support of any-dimensional transforms. PROJ is more
up-to-date on WKT 2 but Apache SIS has better GML support. All
those projects can use an embedded EPSG database (GeoTools was 10
years in advance over PROJ in that aspect). So there is of course
reasons why some peoples will want to use PROJ on the JVM, but it
is inexact to say that they couldn't do advanced open-source
geospatial on that platform.</p>
<p align="justify"> Regards,</p>
<p align="justify"> Martin</p>
<p align="justify"><br>
</p>
</div>
_______________________________________________<br>
PROJ mailing list<br>
<a href="mailto:PROJ@lists.osgeo.org" target="_blank">PROJ@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/proj" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/proj</a><br>
</blockquote></div>