<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Oct 2, 2020, at 8:21 PM, Richard Greenwood <<a href="mailto:richard.greenwood@gmail.com" class="">richard.greenwood@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I am mistaken regarding web assembly support in Node. <a href="https://www.joyent.com/blog/improved-wasm-support-coming-to-node" class="">https://www.joyent.com/blog/improved-wasm-support-coming-to-node</a></div></div></blockquote><div><br class=""></div><div><span style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0);" class="">Yes. Emscripten will also degrade to plain JavaScript as well, so that is an option for runtimes that can't consume wasm.</span></div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 2, 2020 at 1:43 PM Richard Greenwood <<a href="mailto:richard.greenwood@gmail.com" class="">richard.greenwood@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="">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. </div></blockquote></div></div></blockquote><div><br class=""></div><div>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.</div><br class=""><blockquote type="cite" class=""><div class=""><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class="">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.?</div></blockquote></div></div></blockquote><div><br class=""></div></div>I think the combination of COGs at <a href="http://cdn.proj.org" class="">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. <div class=""><br class=""></div><div class="">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.</div><div class=""><br class=""></div><div class="">Howard<br class=""><div class=""><br class=""></div><div class="">[1] <a href="https://proj.org/specifications/projjson.html" class="">https://proj.org/specifications/projjson.html</a> </div></div></body></html>