JS Leaflet, сохранение местоположения пользователя в json - PullRequest
0 голосов
/ 14 марта 2020

Я делаю карту, используя фолиум (python обертка для листовки)

Я хочу сохранить местоположение пользователя в памяти.

Теперь в листовке есть кнопка местоположения пользователя, которая Я добавил на карту и хочу сохранить ее в хранилище, возможно в формате JSON.

Я пока не очень знаком с javascript, поэтому мой вопрос:

Как сохранить местоположение пользователя, как только он нажмет кнопку «Найти меня», и сохранить ее для дальнейшего использования или экспортировать, чтобы я мог использовать ее в python?

коде фолиума:


def try_map():
    fmap = folium.Map(position=plot_test1[0])

    user_location = plugins.LocateControl(drawMarker=True,
                                          showCompass=True)
    user_location.add_to(fmap)

    fmap.save('h.html')


try_map()

Создано html Страница:

<!DOCTYPE html>
<head>    
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />

        <script>
            L_NO_TOUCH = false;
            L_DISABLE_3D = false;
        </script>

    <script src="https://cdn.jsdelivr.net/npm/leaflet@1.5.1/dist/leaflet.js"></script>
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js"></script>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet@1.5.1/dist/leaflet.css"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap-theme.min.css"/>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css"/>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css"/>
    <link rel="stylesheet" href="https://rawcdn.githack.com/python-visualization/folium/master/folium/templates/leaflet.awesome.rotate.css"/>
    <style>html, body {width: 100%;height: 100%;margin: 0;padding: 0;}</style>
    <style>#map {position:absolute;top:0;bottom:0;right:0;left:0;}</style>

            <meta name="viewport" content="width=device-width,
                initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
            <style>
                #map_8474b0e5c07f43f883e68bf0da607b57 {
                    position: [33.220439, 35.808097];
                    width: 100.0%;
                    height: 100.0%;
                    left: 0.0%;
                    top: 0.0%;
                }
            </style>

    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet-locatecontrol/0.66.2/L.Control.Locate.min.css"/>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet-locatecontrol/0.66.2/L.Control.Locate.min.js"></script>
</head>
<body>    

            <div class="folium-map" id="map_8474b0e5c07f43f883e68bf0da607b57" ></div>

</body>
<script>    

            var map_8474b0e5c07f43f883e68bf0da607b57 = L.map(
                "map_8474b0e5c07f43f883e68bf0da607b57",
                {
                    center: [0, 0],
                    crs: L.CRS.EPSG3857,
                    zoom: 1,
                    zoomControl: true,
                    preferCanvas: false,
                }
            );





            var tile_layer_af9dba3b661c4953ad8940d418086542 = L.tileLayer(
                "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
                {"attribution": "Data by \u0026copy; \u003ca href=\"http://openstreetmap.org\"\u003eOpenStreetMap\u003c/a\u003e, under \u003ca href=\"http://www.openstreetmap.org/copyright\"\u003eODbL\u003c/a\u003e.", "detectRetina": false, "maxNativeZoom": 18, "maxZoom": 18, "minZoom": 0, "noWrap": false, "opacity": 1, "subdomains": "abc", "tms": false}
            ).addTo(map_8474b0e5c07f43f883e68bf0da607b57);


            var locate_control_04f10ac0a8c8457186bafd21a13c264e = L.control.locate(
                {"drawMarker": true, "showCompass": true}
            ).addTo(map_8474b0e5c07f43f883e68bf0da607b57);

            # I'm guessing putting here some on click function to write the data to JSON format.


</script>
...