<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<div class="moz-cite-prefix">
<p>Hello Robb</p>
<p>I you look for a pure Java implementation, Apache Spatial
Information System (<a class="moz-txt-link-freetext" href="http://sis.apache.org/">http://sis.apache.org/</a>) can do this
coordinate transformation. Apache SIS is a source of inspiration
for the new PROJ version (<a class="moz-txt-link-freetext" href="https://gdalbarn.com/">https://gdalbarn.com/</a>) in progress.
Pros and cons below:</p>
<p>Advantages:</p>
<ul>
<li>Strong emphasis on OGC and ISO standards, including GML, WKT
1 and 2, etc.</li>
<li>Advanced features not found even in Proj.4 (late-binding
implementation, etc.). PROJ is catching-up with gdalbarn
however.<br>
</li>
<li>You can use it in a way that does not make you too dependent
on this particular implementation, through GeoAPI interfaces.</li>
</ul>
<p>Inconvenient:</p>
<ul>
<li>Not as many projections than Proj.</li>
<li>Relatively large binary (~3 Mb) with many features not
needed for WGS84 to NAD27 UTM transformations.</li>
<li>Depends on JAXB, which is not available by default on
Android.</li>
<li>Making sure that SIS runs on Android would probably require
more work.<br>
</li>
</ul>
<p>The JAR size problem may be mitigated by trimming down the
classes not needed by your application. I think Maven Shader
plugin can do that. Since Java 9, jlink can also do that but the
result is a native binary instead than a portable Java Archive
file. A Google Summer of Code student started a port of SIS to
Android (e.g. removing JAXB dependencies), but this work has not
been completed.</p>
<p>Let me know if you wish any additional information,</p>
<p> Martin</p>
<p><br>
</p>
</div>
</body>
</html>