Javascript 不能';不要用传单在地图上画形状

Javascript 不能';不要用传单在地图上画形状,javascript,html,css,leaflet,Javascript,Html,Css,Leaflet,我正在使用javascript库手册来处理地图,我现在做了位置搜索部分,我希望用户可以在地图上画圆、线和多边形,但不能工作。搜索工具栏可见,但形状工具栏不可见。有人能指出我代码中的错误吗,提前谢谢。 这是我的密码: #地图{ 位置:绝对位置; 排名:0; 底部:0; 左:0; 右:0; } var中心=[-33.8650151.2094]; var map=L.map('map').setView([0,0],6); drawnItems=新的L.FeatureGroup().addTo(映

我正在使用javascript库手册来处理地图,我现在做了位置搜索部分,我希望用户可以在地图上画圆、线和多边形,但不能工作。搜索工具栏可见,但形状工具栏不可见。有人能指出我代码中的错误吗,提前谢谢。 这是我的密码:


#地图{
位置:绝对位置;
排名:0;
底部:0;
左:0;
右:0;
}
var中心=[-33.8650151.2094];
var map=L.map('map').setView([0,0],6);
drawnItems=新的L.FeatureGroup().addTo(映射);
L.tileLayer('https://api.maptiler.com/maps/streets/{z} /{x}/{y}.png?key=el1sdtpwf7xeyxplvgq'{
属性:“”
}).addTo(地图);
var searchcontroll=L.esri.Geocoding.geosearch().addTo(map);
//将图层组添加到搜索控件
var results=L.layerGroup.addTo(映射);
searchContrl.on('结果'),函数(数据){
结果:clearLayers();
对于(var i=data.results.length-1;i>=0;i--){
results.addLayer(L.marker(data.results[i].latlong));
}
});
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(层);
});
使用错误

var results = L.layerGroup.addTo(map);
应该是

var results = new L.LayerGroup().addTo(map);
(就像您在搜索容器中所做的那样)

#地图{
位置:绝对位置;
排名:0;
底部:0;
左:0;
右:0;
}
var中心=[-33.8650151.2094];
var map=L.map('map').setView([0,0],6);
drawnItems=新的L.FeatureGroup().addTo(映射);
L.tileLayer('https://api.maptiler.com/maps/streets/{z} /{x}/{y}.png?key=el1sdtpwf7xeyxplvgq'{
属性:“”
}).addTo(地图);
var searchcontroll=L.esri.Geocoding.geosearch().addTo(map);
//将图层组添加到搜索控件
console.log(L.LayerGroup);
var results=new L.LayerGroup().addTo(map);
searchContrl.on('结果'),函数(数据){
结果:clearLayers();
对于(var i=data.results.length-1;i>=0;i--){
results.addLayer(L.marker(data.results[i].latlong));
}
});
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(层);
});

它不必是
新的L.LayerGroup()
L.LayerGroup()
也在工作。尝试过了。它给出了未捕获的TypeError:this.callInitHooks不是Object.NewClass[作为LayerGroup]的函数,您必须在没有
new
的情况下调用它:
var group=L.LayerGroup()
类似于