leaflet - 如何在传单中的多边形内获得一个圆圈
问题描述
使用以下文档在多边形内创建多边形非常简单:https ://leafletjs.com/reference-1.7.1.html#polygon 。有人可以帮我在多边形内创建一个圆圈(不是任何其他形式的孔,而是一个圆圈)。
这是多边形内多边形的代码:
var coordinates1 =
[
[
56.161106946516895,
10.19885912840232
],
[
56.16109132206879,
10.200468870423682
],
[
56.16019304847142,
10.200440852823863
],
[
56.16020867239298,
10.19883114835013
],
[
56.161106946516895,
10.19885912840232
],
];
const coor2 = [
[
56.11952933994325,
9.996528625488281,
],
[
56.11952933994325,
10.204582214355469
],
[
56.18015197042245,
10.204582214355469,
],
[
56.18015197042245,
9.996528625488281,
],
[
56.11952933994325,
9.996528625488281,
]
];
var lat = 56.16065;
var lng = 10.19965;
var zoom = 18;
var map = new L.Map('map');
var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © OpenStreetMap contributors';
var osm = new L.TileLayer(osmUrl, {minZoom: 3, maxZoom: 8, attribution: osmAttrib});
map.addLayer(osm);
map.setView(new L.LatLng(lat, lng), zoom);
// transform geojson coordinates into an array of L.LatLng
var latLngs1 = [];
var latLngs2 = [];
for (i=0; i<coordinates1.length; i++) {
latLngs1.push(new L.LatLng(coordinates1[i][0], coordinates1[i][1]));
}
for (i=0; i<coor2.length; i++) {
latLngs2.push(new L.LatLng(coor2[i][0], coor2[i][1]));
}
var ll = [latLngs2, latLngs1];
var polygon = L.polygon(ll, {color: 'red'}).addTo(map);
多边形内多边形的 JSfiddle 示例在这里:http: //jsfiddle.net/fojdcy1a/
解决方案
推荐阅读
- php - 当一个人尝试直接从 URL 访问网页时如何重定向,但在通过按钮单击访问时应该可以工作
- asp.net - 我可以为 ObjectDataSource 更新参数使用默认值吗?
- ios - Firebase 的 ref().child(pathString: String) 没有按预期工作;返回父级及其邻居而不是我要求的节点
- vba - 根据从 MS Access 数据库读取的数据在 Microsoft Word VBA 中隐藏或显示文本
- ruby-on-rails - caxlsx gem: 生成的 excel 文件显示 #
- css - 小部件中的摘要文本有问题。在同一垂直位置制作第二行
- javascript - 如何在adonis js中将base 64字符串图像保存在数据库中
- routes - 我需要在实时服务器上添加 codeigniter4 数据问题的帮助吗?
- python - 使用 python 对文件中的 url 进行截图只需要一个截图
- spring - 将 @RequestBody 与包装对象一起使用