<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="NL" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">At the Dutch NMA, I have had questions on the possibilities to do the Dutch transformation including precise datum transformation using the horizontal and vertical grid shift files in
Java or JavaScript. So, I agree with </span><span lang="EN-GB">Howard that there would be demand for PROJ in JavaScript.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Regards, Jochem<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal"><b><span lang="EN-US">From:</span></b><span lang="EN-US"> PROJ <proj-bounces@lists.osgeo.org>
<b>On Behalf Of </b>Howard Butler<br>
<b>Sent:</b> zaterdag 3 oktober 2020 15:19<br>
<b>To:</b> Richard Greenwood <richard.greenwood@gmail.com><br>
<b>Cc:</b> proj <PROJ@lists.osgeo.org><br>
<b>Subject:</b> Re: [PROJ] PROJ7 in JavaScript<o:p></o:p></span></p>
</div>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<p class="MsoNormal">On Oct 2, 2020, at 8:21 PM, Richard Greenwood <<a href="mailto:richard.greenwood@gmail.com">richard.greenwood@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">I am mistaken regarding web assembly support in Node. <a href="https://www.joyent.com/blog/improved-wasm-support-coming-to-node">https://www.joyent.com/blog/improved-wasm-support-coming-to-node</a><o:p></o:p></p>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal"><span style="color:black">Yes. Emscripten will also degrade to plain JavaScript as well, so that is an option for runtimes that can't consume wasm.</span><o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<div>
<p class="MsoNormal">On Fri, Oct 2, 2020 at 1:43 PM Richard Greenwood <<a href="mailto:richard.greenwood@gmail.com">richard.greenwood@gmail.com</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal">Proj 6 and 7 don't really add any new functionality. Proj does forward in inverse projections and it does datum transformations with 3 & 7 parameters transforms and grid shift transforms. Proj4js supports most of the commonly used projections
and the 3 & 4 param datum transforms. <o:p></o:p></p>
</div>
</blockquote>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Proj4js doesn't support WKTv2 consumption or emission, and it doesn't support PROJJSON [1]. At the very least, interoperability suffers when crossing the proj4js boundary when trying to communicate coordinate system descriptions.<o:p></o:p></p>
</div>
<p class="MsoNormal"><br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<p class="MsoNormal">It doesn't support grid shift transforms and grid shift transforms are what are "heavy" in terms of the size of the required data. I thought a lot about adding grid shift support and considered a server-side option like Javier mentions,
but it's a lot of moving parts for pretty limited use cases. Like how many web mapping apps need the precision of a grid shift transform? And for those that do, how do you build a generic enough mechanism to cover the variations in scale, platform, online/offline,
etc.?<o:p></o:p></p>
</div>
</blockquote>
</div>
</div>
</blockquote>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</div>
<p class="MsoNormal">I think the combination of COGs at <a href="http://cdn.proj.org">cdn.proj.org</a> and geotiff.js would allow for the construction of JavaScript support for high performance incremental grid access similar to the current PROJ runtime's incremental
implementation. There would be no need to cache GBs of grid files, and the data is hosted today as web native as you can get as COGs in CloudFront. <o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I think it is a mistake to see JavaScript support as only "web mapping apps". I think a WASM port of PROJ is a worthy goal for a number of reasons, but the community has to want it bad enough to invest to make it happen. To date, that hasn't
been demonstrated.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Howard<o:p></o:p></p>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">[1] <a href="https://proj.org/specifications/projjson.html">https://proj.org/specifications/projjson.html</a> <o:p></o:p></p>
</div>
</div>
</div>
<br>
<br>
<font size="2">Disclaimer:<br>
De inhoud van dit bericht is uitsluitend bestemd voor geadresseerde.<br>
Gebruik van de inhoud van dit bericht door anderen zonder toestemming van het Kadaster<br>
is onrechtmatig. Mocht dit bericht ten onrechte bij u terecht komen, dan verzoeken wij u<br>
dit direct te melden aan de verzender en het bericht te vernietigen.<br>
Aan de inhoud van dit bericht kunnen geen rechten worden ontleend.<br>
<br>
Disclaimer:<br>
The content of this message is meant to be received by the addressee only.<br>
Use of the content of this message by anyone other than the addressee without the consent<br>
of the Kadaster is unlawful. If you have received this message, but are not the addressee,<br>
please contact the sender immediately and destroy the message.<br>
No rights can be derived from the content of this message.<br>
</font>
</body>
</html>