<div dir="ltr">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. 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><br></div><div>Bringing the proj4js code more inline with Proj 7 sounds like a nice goal. It was never really even in sync with Proj4, it was just cobbled together enough to work, not to maintain.</div><div><br></div><div>Web assembly sounds cool if you're thinking in a web browser context only but modern JavaScript is often trying to support browsers and Node, which web assembly would not do, or at least not in my very limited knowledge of web assembly.</div><div><br></div><div>Rich</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Oct 2, 2020 at 7:58 AM Howard Butler <<a href="mailto:howard@hobu.co">howard@hobu.co</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"><div style="overflow-wrap: break-word;"><br><div><br><blockquote type="cite"><div>On Oct 1, 2020, at 3:58 PM, Javier Jimenez Shaw <<a href="mailto:j1@jimenezshaw.com" target="_blank">j1@jimenezshaw.com</a>> wrote:</div><br><div><div dir="ltr"><div>Hi</div><div><br></div><div>As far as I know, there is no JavaScript version PROJ6 or 7. The last is <a href="https://github.com/proj4js/proj4js" target="_blank">https://github.com/proj4js/proj4js</a> based on PROJ4. Am I right?<br></div><div><br></div><div>Is there any plan to have anything like proj7js? Even more, does it make sense?<br></div></div></div></blockquote><div><br></div>Not as far as I know. Maybe you could put something forward. I think the path to explore is compilation of PROJ to WebAssembly and then build JavaScript wrappers over that. The SQLite database makes it a bit more challenging, but there are implementations of SQLite on WebAssembly too. </div><div><br></div><div>Don't hand roll a port. </div><div><br><blockquote type="cite"><div dir="ltr"><div>Somebody mentioned that PROJ6 was too heavy for a web page, and making constant requests to a server was not feasible (when the user moves the mouse over a map and the coordinates are updated instantly, for instance).</div></div></blockquote><div><br></div><div>The download of proj.db would be a bit of a hit, but it's conveniently cacheable per-page and doesn't change after it is fetched. Once it is local, a JavaScript PROJ implementation based on WebAssembly could use it do its queries just as C-language PROJ does today.</div><div><br></div></div><div>Howard</div></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><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr">Richard W. Greenwood, PLS<br><a href="http://www.greenwoodmap.com" target="_blank">www.greenwoodmap.com</a></div></div>