Получить широту и долготу после нажатия на Geo django Leaflet map - PullRequest
0 голосов
/ 03 мая 2020

У меня есть форма с картой Geo django Leaflet на моей странице.

Чего я хочу добиться, так это то, что после нажатия где-нибудь на карте я получаю широту и долготу из этого местоположения, чтобы чем хранить это в моей форме. Код в форме уже заботится о размещении маркера на карте.

Я не могу найти место, где я нажал.

forms.py

class PlacesForm(forms.ModelForm):
    required_css_class = 'required'
    place = forms.PointField( required=False,
        widget=LeafletWidget())

    class Meta():
        model = Places

форма. html

    var markers = [];
    var layerGroup =  new L.layerGroup();

    $.fn.setMap = function(map) {

        console.log(layerGroup);

        layerGroup.clearLayers();
        //$(".leaflet-marker-icon").remove(); $(".leaflet-popup").remove();

        if( $("#id_latitude").val() && $("#id_longitude").val() ) {

          map.setView([$("#id_latitude").val(), $("#id_longitude").val()], 18);
          markers = L.marker([$("#id_latitude").val(), $("#id_longitude").val()]).addTo(layerGroup);

          if( $("#id_radius").val() ) {
              L.circle([$("#id_latitude").val(), $("#id_longitude").val()], {radius: $("#id_radius").val()}).addTo(layerGroup);
          }

          layerGroup.addTo(map);

        }
    }

    $(document).ready(function() {

        // Store the variable to hold the map in scope
        var map;
        var markers;

        $(window).on('map:init', function(e) {
            map = e.originalEvent.detail.map;
            $.fn.setMap(map);
        });

        $("#id_latitude").on("change", function () {
            $.fn.setMap(map);
        });

        $("#id_longitude").on("change", function () {
            $.fn.setMap(map);
        });

        $("#id_radius").on("change", function () {
            $.fn.setMap(map);
        });

        $('#id_place-map').on("click", function(e) {

            //var lat = e.latlng;
            //var lng = e.latlng;

            console.log(e);
        });
    });
</script>

Если я загляну в консоль, то не смогу найти ничего, что смогу использовать. Я вижу только текущие параметры карты. Я хочу установить переменные lat и lng, которые сейчас закомментированы.

У кого-нибудь есть идея?

...