Uncaught ReferenceError: L не определено

1

Итак, как я могу исправить эту ошибку? "Неподготовлено ReferenceError: L не определено" var map = L.map("map"). SetView ([60.201424, 24.934037], 12);

Вот остальная часть Javascript:

var map = L.map("map"). setView ([60.201424, 24.934037], 12);

    L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
        attribution: '&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
    }).addTo(map);

    var layergroup = L.layerGroup().addTo(map);
    var activeMarker;

    $("#addmarker").click(function() {

        var mapCenter = map.getCenter();

        var geojsonFeature = {
            "type": "Feature",
            "properties": {
                "name": "",
                "typ": "nur",
                "reichweite": ""
            },
            "geometry": {
                "type": "Point",
                "coordinates": [mapCenter.lat, mapCenter.lng]
            }
        };

        var geojsonlayer = L.geoJson(geojsonFeature, {

            pointToLayer: function(feature, latlng) {
                var marker = L.marker(map.getCenter(), {
                    draggable: true,
                }).bindPopup("<div id='titel'>Unbenannter Marker</div><input type='button' value='Delete Marker' class='marker-delete-button'/><br><p>Name:<input type='text' id='setname'/><button class='trigger'>Say hi</button>");

                marker.on("popupopen", onPopupOpen);

                return marker;
            }
        });

        layergroup.addLayer(geojsonlayer.getLayers()[0]); // use the only marker instead of the GeoJSON layer.

    });

    // Function to handle delete as well as other events on marker popup open
    function onPopupOpen() {

        activeMarker = this;

        $(".marker-delete-button:visible").click(function() {
            layergroup.removeLayer(activeMarker);
            activeMarker = null;
        });

        $("#setname").val(activeMarker.feature.properties.name).change(modifyName);
    }

    function modifyName(event) {
        var newName = event.currentTarget.value;

        activeMarker.feature.properties.name = newName;
    }

    function getAllMarkers() {
        /*var allMarkersObjArray = []; //new Array();
        var allMarkersGeoJsonArray = []; //new Array();

        $.each(map._layers, function(ml) {
          //console.log(map._layers)
          if (map._layers[ml].feature && map._layers[ml].feature.properties.typ == "nur") {

            allMarkersObjArray.push(this);
            allMarkersGeoJsonArray.push(JSON.stringify(this.toGeoJSON()));
          }
        })*/

        var allMarkersObjArray = layergroup.getLayers();
        var allMarkersGeoJsonArray = [];

        layergroup.eachLayer(function(layer) {
            allMarkersGeoJsonArray.push(JSON.stringify(layer.toGeoJSON()));
            // You could also have used layergroup.toGeoJSON(), but it would have given a FeatureCollection, whereas here you get an array of Feature's.
        });

        console.log(allMarkersObjArray);
        alert("Anzahl Markers : " + allMarkersGeoJsonArray.length + "\n\n" + allMarkersGeoJsonArray + "\n\n");
    }

    $("#getAllMarkers").click(function() {
        getAllMarkers();
    });
</script>

Поэтому я пытаюсь создать приложение, где вы нажимаете на карту и вставляете маркер с сообщением.

Теги:
google-maps
cordova
phonegap
marker

1 ответ

2
Лучший ответ

Я предполагаю, что вы используете библиотеку leafletjs для отображения этой карты.

Перед началом работы убедитесь, что вы подготовили свою страницу, следуя этому руководству: https://leafletjs.com/examples/quick-start/

Итак, вам нужно будет включить в свою страницу:

  • css файл;
  • js файл;
  • добавьте <div id="map"></div> в тело вашей страницы;
  • и только потом добавьте свой код.

Наслаждайтесь!

  • 2
    ДА! Огромное спасибо :)
  • 1
    @ZamiCoskula Добро пожаловать, вы можете пометить этот ответ, как и ожидалось, если все вышеперечисленное работает для вас.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню