Pergunta

Olá, estou tendo um problema usando a biblioteca ProJ4js. Aqui está minha fonte:

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <script type="text/javascript" src="lib/proj4js-combined.js"></script>
   </head>

   <script type="text/javascript">
    function go()
    {
        var lon = document.getElementById("xOrg").value;
        var lat = document.getElementById("yOrg").value;
        var reprojected = reproject(Number(lon),Number(lat));

        document.getElementById("xNew").value = reprojected.x;
        document.getElementById("yNew").value = reprojected.y;
    }

    function reproject(lon,lat)
        {
            var sourceSys = new Proj4js.Proj('WGS84');
            var destSys = new Proj4js.Proj('EPSG:32187');

            var pointSource = new Proj4js.Point(lon,lat);
            var pointDest = Proj4js.transform(sourceSys, destSys, pointSource);

            return pointDest;
        }
   </script>

   <body>
    <div>
    <input id="xOrg" type="text" value="-73.56"/>
    <input id="yOrg" type="text" value="45.49"/>
    </div>
    <div>
    <input id="xNew" type="text" value=""/>
    <input id="yNew" type="text" value=""/>
    </div>
    <div>
        <input type="button" value="go" onclick="go()"/>
    </div>
   </body>
</html>

Não entendo por que a reprojeção só funciona quando clico no botão duas vezes, quando clico nele pela primeira vez, os mesmos valores são retornados. Parece funcionar apenas quando clico no botão duas ou mais. Aqui está esta página online:clique

Foi útil?

Solução

var sourceSys = new Proj4js.Proj('WGS84'); 
var destSys = new Proj4js.Proj('EPSG:32187'); 

para aqui:

...

<script type="text/javascript">  
    var sourceSys = new Proj4js.Proj('WGS84'); 
    var destSys = new Proj4js.Proj('EPSG:32187'); 

    function go()
{
...  

E por qualquer motivo, agora funciona ...

Outras dicas

Não vou conseguir carregar a página, mas é um problema de atualização? Ou seja. Você pode fazer com que as tags de entrada XNew e YNew se refresquem imediatamente após a definição de seus valores?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top