0

私は XSLTForms を使用しており、Leaflet マップを追加する必要があります。しかし、そのライブラリの何かが機能しません。.xml ファイルに次のコードがあります (各 xform として) が、マップをズームすると (ダブルクリックまたはズーム ボタンをクリックして) フリーズします。

_zoomIn: 関数はフリーズしてもトリガーされますが、期待される視覚的な変化はありません。

これは単純な xforms の例です:

<?xml-stylesheet href="xsltforms/xsltforms.xsl" type="text/xsl"?>
<?xsltforms-options debug="no" lang="en"?>

<html   xmlns="http://www.w3.org/1999/xhtml" 
        xmlns:xf="http://www.w3.org/2002/xforms"
        xmlns:ev="http://www.w3.org/2001/xml-events">
    <head>
        <link type="text/css" rel="stylesheet" href="res/leaflet-0.8-dev/leaflet.css"/> 
        <link type="text/css" rel="stylesheet" href="res/style.css"/>
        <script type="text/javascript" src="res/jquery-ui/jquery-1.11.2.min.js"></script>
        <script type="text/javascript" src="res/leaflet-0.8-dev/leaflet.js"></script>

        <script type="text/javascript">
            function showOutdoorMap(id){
                var map = L.map(id);
                L.tileLayer('https://{s}.tiles.mapbox.com/v3/{id}/{z}/{x}/{y}.png', {
                    id: 'examples.map-i875mjb7'
                }).addTo(map);
                map.locate({setView: true});
            }
        </script>
    </head>
    <body onload="showOutdoorMap('map')">
        <fieldset>
            <label class="header">Demo:</label>
            <div id="map" style='width:100%; height:250px;'/>
        </fieldset>
    </body>
</html>
4

1 に答える 1

0

解決策は、 の行にコメントを付けてsetView: function (center, zoom, options)、_resetView メソッドを更新できるようにすることでした。

if (animated) {
    clearTimeout(this._sizeTimer);
    /*return this;*/
}

問題なくドラッグアンドドロップするには、次の行にもコメントする必要がありました。

/*if (L.DomUtil.hasClass(this._element, 'leaflet-zoom-anim')) { return; }*/
于 2015-01-22T15:36:02.897 に答える