如何解决如何在 react-leaflet v3 中绘制形状
您对 react-leafletV3 实现绘图功能有什么想法吗? 我添加了一个事件侦听器,但它不起作用并且对任何事情都没有反应。
import boto3
import json
access_key = "XXXXXXXXXX"
secret_key = "XXXXXXXXXXXXXXXXXXXXX"
client = boto3.client('ec2',aws_access_key_id=access_key,aws_secret_access_key=secret_key,region_name='us-east-1')
ec2_result = client.describe_instances(
Filters=[
{
'Name': 'tag:Name','Values': ['?avi*']
}
]
)
#ids= [ec2_result['Reservations'][0]['Instances'][i]['InstanceId'] for i in range(len(ec2_result['Reservations'][0]['Instances']))]
#print(ids)
print(ec2_result)
解决方法
这是对我有用的代码。我添加了一个事件侦听器来侦听创建的图层,并在创建图层后添加了要素组图层。我已经提到这部分是必需的,因为我已经在选项对象中进行了评论。
edit: {
featureGroup: editableLayers,//REQUIRED!!
}
useEffect(() => {
if (!map) return;
map.addEventListener("mousemove",function (event) {
setCoords({ lat: event.latlng.lat,lng: event.latlng.lng });
});
const editableLayers = new L.FeatureGroup();
map.addLayer(editableLayers);
const options = {
position: "topleft",draw: {
polyline: false,polygon: false,rectangle: {
shapeOptions: {
clickable: false,color: "dodgerblue",},edit: {
featureGroup: editableLayers,//REQUIRED!!
},};
const drawControl = new L.Control.Draw(options);
map.addControl(drawControl);
map.on(L.Draw.Event.CREATED,function (e) {
var type = e.layerType,layer = e.layer;
if (type === "marker") {
layer.bindPopup("A popup!");
}
editableLayers.addLayer(layer);
});
const leftLayer = L.tileLayer(
layers[leftLayerIndex].url,layerOptions
).addTo(map);
const rightLayer = L.tileLayer(
layers[rightLayerIndex].url,layerOptions
).addTo(map);
const sbs = L.control.sideBySide(leftLayer,rightLayer).addTo(map);
setSideBySide(sbs);
},[map]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。