2010-10-27 6 views
2

Bonjour J'ai un problème avec la bibliothèque proj4js. Voici ma source:javascript proj4js issue

<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> 

Je ne comprends pas pourquoi le reprojection ne fonctionne que lorsque je clique sur le bouton deux fois, quand je clique dessus la première fois, les mêmes valeurs sont retournées. Il semble ne fonctionner que lorsque je clique deux fois sur le bouton ou plus. Voici cette page en ligne: click

+0

Désolé, j'ai réalisé le travail na pas de lien, il devrait maintenant fonctionner. – Enriquev

+0

Merci pour la description claire du problème, et la solution. J'ai eu exactement le même problème! Je ne comprends pas entièrement pourquoi c'est le cas cependant .... – djq

Répondre

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

ici:

... 

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

    function go() 
{ 
... 

Et pour une raison quelconque il fonctionne maintenant ...

0

Je ne peux pas charger la page, mais est-ce un problème de rafraîchissement? C'est à dire. pouvez-vous explicitement provoquer l'actualisation des balises d'entrée xNew et yNew immédiatement après que leurs valeurs ont été définies?

+0

La page devrait fonctionner maintenant, mais je ne pense pas que c'est un problème d'actualisation, mais si c'est le cas, comment puis-je les forcer à actualiser? – Enriquev

+0

Il semble être spécifique au navigateur, je l'ai juste essayé sur Safari sur mon iPad et cela a fonctionné en un clic. (si quelque chose l'ipad est celui qui a souvent besoin de deux clics en raison de la façon dont la mise au point fonctionne) – winwaed

+0

Merde, il faut 2 clics sur mon pc avec chrome, firefox et IE8. Êtes-vous sûr (e) d'un clic que vous n'obtiendrez pas seulement les mêmes nombres dans les nouvelles cases? – Enriquev