سؤال

مرحبًا ، أواجه مشكلة باستخدام مكتبة Proj4JS. ها هو مصدري:

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

لا أفهم لماذا يعمل Reproplision فقط عند النقر فوق الزر مرتين ، عندما أنقر عليه في المرة الأولى ، يتم إرجاع نفس القيم. يبدو أنه يعمل فقط عند النقر فوق الزر مرتين أو أكثر. ها هي هذه الصفحة عبر الإنترنت:انقر

هل كانت مفيدة؟

المحلول

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

إلى هنا:

...

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

    function go()
{
...  

ولأي سبب كان يعمل الآن ...

نصائح أخرى

لا أحصل على الصفحة لتحميلها ، لكن هل هي مشكلة تحديث؟ بمعنى آخر. هل يمكنك أن تتسبب صراحة في تحديث علامات إدخال XNew و Ynew على الفور بعد تعيين قيمها؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top