Javascript 为什么我会得到TypeError:L.Control.Draw不是构造函数错误?

Javascript 为什么我会得到TypeError:L.Control.Draw不是构造函数错误?,javascript,html,css,leaflet,Javascript,Html,Css,Leaflet,我正在用freedraw插件为传单地图编写代码。目前,我正在尝试添加选项菜单来编辑绘制的形状。但我突然遇到了这个错误: TypeError:L.Control.Draw不是构造函数 我不仅不知道该如何解决这个问题,而且我也不知道为什么会出现这个错误 我试着环顾互联网,包括堆栈溢出,但没有任何解决方案 有人知道这个错误是关于什么的吗?我应该如何修复它 我已尝试将此添加到我的代码中: <link rel="stylesheet" href="https://cdnjs.cloudflare.c

我正在用freedraw插件为传单地图编写代码。目前,我正在尝试添加选项菜单来编辑绘制的形状。但我突然遇到了这个错误:

TypeError:L.Control.Draw不是构造函数

我不仅不知道该如何解决这个问题,而且我也不知道为什么会出现这个错误

我试着环顾互联网,包括堆栈溢出,但没有任何解决方案

有人知道这个错误是关于什么的吗?我应该如何修复它

我已尝试将此添加到我的代码中:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/0.4.2/leaflet.draw.css"/> 

<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet.draw/0.4.2/leaflet.draw.js"></script>

var map = L.map('mapid', { drawControl: true }).setView([25, 25], 2);

var map=L.map('mapid',{drawControl:true}).setView([25,25],2);
除了给我另一个错误,我似乎什么也没做,我没有定义。我已将数字更改为引发上述错误的实际版本。实际的链接是旧版本的工作,但我很好奇这可能会引起其他问题。就连控制台也警告过我这一点


简易单张地图

#mapid{
位置:绝对位置;
排名:0;
右:0;
底部:0;
左:0;
}

var map=L.map('mapid',{drawControl:true}).setView([50.100500,14.395497],18);
L.tileLayer('https://maps.wikimedia.org/osm-intl/{z} /{x}/{y}{r}.{ext}'{
分机:“png”,
maxZoom:18,
属性:“Wikimedia地图|地图数据和副本;”
}).addTo(此.map);
var editableLayers=新的L.FeatureGroup();
map.addLayer(可编辑层);
var MyCustomMarker=L.Icon.extend({
选项:{
shadowUrl:null,
iconAnchor:新的L点(12,12),
iconSize:新的L点(24,24),
iconUrl:'link/to/image.png'
}
});
变量选项={
位置:'topright',
抽签:{
多段线:{
形状选项:{
颜色:“#f357a1”,
体重:10
}
},
多边形:{
AllowerSection:false,//将形状限制为简单多边形
抽屉错误:{
颜色:'#e1e100',//形状相交时将改变颜色
消息:“噢,快!你不能画那个!”//当相交时将显示的消息
},
形状选项:{
颜色:“#bada55”
}
},
圆:false,//关闭此绘图工具
矩形:{
形状选项:{
可点击:false
}
},
标记:{
图标:新的MyCustomMarker()
}
},
编辑:{
featureGroup:editableLayers,//必需!!
删除:false
}
};
var drawControl=新的L.Control.Draw(选项);
map.addControl(drawControl);
map.on(L.Draw.Event.CREATED,函数(e){
变量类型=e.layerType,
层=e层;
如果(类型=='marker'){
layer.bindpoppup('A popup!');
}
editableLayers.addLayer(层);
});

您可以在下面找到已更正的代码:

你需要的是


简易单张地图
#mapid{
位置:绝对位置;
排名:0;
右:0;
底部:0;
左:0;
}
var map=L.map('mapid',{drawControl:true}).setView([50.100500,14.395497],18);
L.tileLayer('https://maps.wikimedia.org/osm-intl/{z} /{x}/{y}{r}.{ext}'{
分机:“png”,
maxZoom:18,
属性:“Wikimedia地图|地图数据和副本;”
}).addTo(此.map);
var editableLayers=新的L.FeatureGroup();
map.addLayer(可编辑层);
var MyCustomMarker=L.Icon.extend({
选项:{
shadowUrl:null,
iconAnchor:新的L点(12,12),
iconSize:新的L点(24,24),
iconUrl:'link/to/image.png'
}
});
变量选项={
位置:'topright',
抽签:{
多段线:{
形状选项:{
颜色:“#f357a1”,
体重:10
}
},
多边形:{
AllowerSection:false,//将形状限制为简单多边形
抽屉错误:{
颜色:'#e1e100',//形状相交时将改变颜色
消息:“噢,快!你不能画那个!”//当相交时将显示的消息
},
形状选项:{
颜色:“#bada55”
}
},
圆:false,//关闭此绘图工具
矩形:{
形状选项:{
可点击:false
}
},
标记:{
图标:新的MyCustomMarker()
}
},
编辑:{
featureGroup:editableLayers,//必需!!
删除:false
}
};
var drawControl=新的L.Control.Draw(选项);
map.addControl(drawControl);
map.on(L.Draw.Event.CREATED,函数(e){
变量类型=e.layerType,
层=e层;
如果(类型=='marker'){
layer.bindpoppup('A popup!');
}
editableLayers.addLayer(层);
});

问题是您尝试使用带有插件API的传单插件


选择一个或另一个(从您的评论中,听起来您需要freedraw功能)并粘贴其API和文档。

如果您解释代码中的差异以及您认为它可以解决问题的原因,会更有帮助,特别是考虑到你的答案包含很多OP的代码,你必须在代码中添加这两行:我已经尝试添加这两行了