0

我的 Django 应用程序刚开始遇到一个奇怪的问题,当我尝试使用 Leaflet 和 Leaflet draw 在地图上绘制形状时,形状永远不会完成。也就是说,当我单击并拖动以绘制一个形状时,该形状会绘制,然后当我释放鼠标时,该形状看起来已经完成,但一个新的形状会立即开始绘制(释放鼠标)。如果我按“esc”,形状看起来就完成了。但是,Web 控制台有错误:
MouseEvent.mozPressure is deprecated. Use PointerEvent.pressure instead. leaflet.js:5:268

我尝试django-leaflet从 pip 更新。我不确定leaflet.js还会从哪里来(它不是静态文件)。我正在使用 MacBook,尝试使用触控板和 USB 鼠标。

任何人都知道这是如何开始发生的以及我该如何解决?奇怪的是它正在工作,现在不是没有我改变任何东西。

这是一些相关的代码:

    {% load leaflet_tags %}
    {% leaflet_css %}
    {% leaflet_js %}
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/1.0.4/leaflet.draw.css"/>
    <script src="http://leaflet.github.io/Leaflet.draw/leaflet.draw.js"></script>
    map.on(L.Draw.Event.CREATED, function (e) {
        console.log('created'); //Never prints to console
        var type = e.layerType;
        var layer = e.layer;
        map.addLayer(layer);
        geoJSON_obj = layer.toGeoJSON();
        if (type === 'circle') {
            var rad = layer.getRadius();
            geoJSON_obj.properties.radius = rad;
        }
        var jsonObj = JSON.stringify(geoJSON_obj);
        document.getElementById('id_image__location').value = jsonObj;
        });
    }

使用 Django 2.2.3 和 Python 3.8

4

1 回答 1

0

原来这是我的一个错误:该行document.getElementById('id_image__location').value = jsonObj;不起作用,因为该元素不存在(应该是id_location)。显然,这使较大的功能无法正常工作,并且无法正确创建绘图对象。

更正后,一切正常(即使有MouseEvent.mozPressure is deprecated警告)。只是在这里发布以防其他人有类似的问题。

于 2020-06-10T17:51:56.493 回答