Javascript 未捕获引用错误:未定义L

Javascript 未捕获引用错误:未定义L,javascript,google-maps,cordova,phonegap,marker,Javascript,Google Maps,Cordova,Phonegap,Marker,那么我该如何修复这个错误呢?“未捕获引用错误:未定义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'{ 属性:“©;贡献者” }).addTo(地图); var la

那么我该如何修复这个错误呢?“未捕获引用错误:未定义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'{
属性:“©;贡献者”
}).addTo(地图);
var layergroup=L.layergroup().addTo(映射);
var活性标记;
$(“#添加标记”)。单击(函数(){
var mapCenter=map.getCenter();
var geojsonFeature={
“类型”:“功能”,
“财产”:{
“名称”:“,
“类型”:“nur”,
“reichweite”:”
},
“几何学”:{
“类型”:“点”,
“坐标”:[mapCenter.lat,mapCenter.lng]
}
};
var geojsonlayer=L.geoJson(geojsonFeature{
pointToLayer:功能(特性、latlng){
var marker=L.marker(map.getCenter(){
真的,
}).bindPopup(“解封中间标记
名称:说你好”); marker.on(“popupopen”,onPopupOpen); 返回标记; } }); layergroup.addLayer(geojsonlayer.getLayers()[0]);//使用唯一的标记,而不是GeoJSON层。 }); //用于处理标记弹出窗口打开时的删除和其他事件的函数 函数onPopupOpen(){ activeMarker=这个; $(“.marker删除按钮:可见”)。单击(函数(){ layergroup.removeLayer(activeMarker); activeMarker=null; }); $(“#setname”).val(activeMarker.feature.properties.name).change(modifyName); } 函数modifyName(事件){ var newName=event.currentTarget.value; activeMarker.feature.properties.name=newName; } 函数getAllMarkers(){ /*var allMarkersObjArray=[];//新数组(); var allMarkersGeoJsonArray=[];//新数组(); $。每个(映射层,函数(ml){ //console.log(映射层) if(映射._层[ml].要素和映射._层[ml].要素.properties.typ==“nur”){ 推(这个); allMarkersGeoJsonArray.push(JSON.stringify(this.toGeoJSON()); } })*/ var allMarkersObjArray=layergroup.getLayers(); var allMarkersGeoJsonArray=[]; layergroup.eachLayer(函数(层){ allMarkersGeoJsonArray.push(JSON.stringify(layer.toGeoJSON()); //您也可以使用layergroup.toGeoJSON(),但它会给出一个FeatureCollection,而这里您会得到一个Feature的数组。 }); console.log(allMarkersObjArray); 警报(“Anzahl标记:“+allMarkersGeoJsonArray.length+”\n\n“+allMarkersGeoJsonArray+”\n\n”); } $(“#getAllMarkers”)。单击(函数(){ getAllMarkers(); });

因此,我正在尝试制作一个应用程序,您可以单击地图并插入带有消息的标记。

我假设您正在使用
传单js
库渲染该地图

请确保在开始之前已按照本指南准备好页面:

因此,您需要在页面中包括:

  • css文件
  • js文件
  • 添加到页面正文中
  • 然后才添加代码

享受吧

对!!非常感谢:)@ZamiCoskula不客气,如果以上所有方法都适用于您,您可以将此答案标记为预期答案。另一个用户甚至不用投票就解决了他的问题。StackOverflow,请创建有关如何使用此网站的视频教程!
    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>