Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击创建Mapbox JS标记_Javascript_Angularjs_Mapbox - Fatal编程技术网

Javascript 单击创建Mapbox JS标记

Javascript 单击创建Mapbox JS标记,javascript,angularjs,mapbox,Javascript,Angularjs,Mapbox,我目前正在使用mapbox js和卫星图像API,我想知道如何在地图上显示一个非常简单的最后一次点击的标记(来自用户) 理想情况下,当用户点击地图时,它将显示一个半透明的小正方形,与卫星API显示的放大区域相对应 关于与预先创建的当前标记交互,有很多信息,但是我想在单击时动态创建一个标记,该标记只在下次单击之前有效 它会像下面这样,只是半径较小 如果您只是想在下一次鼠标单击时添加圆圈并将其删除,则类似的操作将起作用: L.mapbox.accessToken='pk.eyj1ijoi2nhbn

我目前正在使用mapbox js和卫星图像API,我想知道如何在地图上显示一个非常简单的最后一次点击的标记(来自用户)

理想情况下,当用户点击地图时,它将显示一个半透明的小正方形,与卫星API显示的放大区域相对应

关于与预先创建的当前标记交互,有很多信息,但是我想在单击时动态创建一个标记,该标记只在下次单击之前有效

它会像下面这样,只是半径较小


如果您只是想在下一次鼠标单击时添加圆圈并将其删除,则类似的操作将起作用:

L.mapbox.accessToken='pk.eyj1ijoi2nhbnrlesimeiijjawvsddnubmewmgu3czntdrynjrpdtvqin0.yFaW4Ty6VE3GHkrDvdbW6g';
var map=L.mapbox.map('map','mapbox.streets').setView([38.91338,-77.03236],16);
streetsBasemap=L.Tillelayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyj1ijoiy2nhbnlessimeiijjawvsddnubmewmgu3czntdrynjrpdtvqin0.yFaW4Ty6VE3GHkrDvdbW6g'{
maxZoom:18,
minZoom:6,
zIndex:1,
id:“地图盒。街道”
}).addTo(地图);
地图上('点击',添加标记);
功能添加标记(e){
if(电路标记器的类型!=“未定义”){
地图移除者(圆形标记者);
}
//添加标记
圆标记器=新的L圆(e.latlng,200{
颜色:“红色”,
填充颜色:“#f03”,
填充不透明度:0.5
}).addTo(地图);
}
body{margin:0;padding:0;}
#映射{位置:绝对;顶部:0;底部:0;宽度:100%;}

单标记

这太棒了,它正在工作,但我想做一个修改。因为用户的相关视图是一幅放大的图像,大概有1英亩宽,所以我不能让圆圈在缩小时变得相对更大。有没有办法修改代码中的半径,使其符合地图上的精确单位?所以它在大范围内会非常小(也许不是太大,但明显很小),随着缩放比例的增加,它会变大?我把半径减小到非常小,而且它看起来更适合我的特定用途。无论如何,这是一个非常棒的答案,也是我的问题所要寻找的,所以我将其标记为正确,谢谢。如果您碰巧知道如何使用缩放比例动态缩放圆,请分享。@maxwell-我编辑了这篇文章,我们只添加了L.circle,而不是circleMarker-半径参数以米为单位。