【问题标题】:Leaflet draw not working with Django - shape never finishes传单绘制不适用于 Django - 形状永远不会完成
【发布时间】:2020-06-10 00:04:21
【问题描述】:

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

我尝试从 pip 更新 django-leaflet。我不确定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

【问题讨论】:

    标签: django leaflet leaflet-draw django-leaflet


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多