javascript - 传单:使用 GeoJSON 掩码添加图像叠加层
问题描述
我正在尝试在 Leaflet 地图上添加图像叠加层,但我希望它仅在 geo-json 多面体关闭的区域中绘制(因此将 geo-json 图层视为图像的蒙版)。我要显示的图像是矩形的,没有透明区域。
通过使用 SVG 蒙版,我达到了我的目的。由于 geo-json 被放入 SVG 元素中,我可以用我的图像填充它。
https://gyazo.com/069ecec5904026d5f4d0624c6f1a2a7e
但是当我开始放大时问题就出现了。放置 geo-json 的 SVG 改变了它的大小和形状。它变得比应有的小(因为地图之外的区域已从 SVG 中删除),因此图像不再以它的确切位置为中心。
https://gyazo.com/68148043d5ff3d11c0a13aa1d29c197b
如您所见,无论是在缩放地图时还是在平移地图时,图像都会移动,这是因为显示 geo-json 的 SVG 改变了它的宽度和高度。
这是我目前提出的代码的一个小提琴:https ://jsfiddle.net/8n3m6t51/
我可以考虑几种解决方案:
- 强制 Leaflet 始终绘制完整的 geo-json 区域,即使是那些多边形或屏幕外的区域。
- 使用 ImageOverlay 并将其设置为蒙版(但我认为这是不可能的)。
但目前我还没有想出如何解决这个问题。
解决方案
推荐阅读
- python - 在管理界面显示总金额
- ruby-on-rails - Apitome 侧边栏在包含在布局中时消失
- css - 为Angular Material Card的标题设置背景颜色
- java - 使用 Java 和 Active Directory 进行用户模拟
- javascript - 正确更改反应组件状态
- amazon-dynamodb - Dynamoose - 如何在同一个密钥上查询两个 GSI?
- java - 如何从列表中收集所有整数
>> 并将其放入 List 在 RxJava 中? - flutter - Flutter:ListView 项目之间的奇怪差距
- c# - 使用 Log4net 生成带有自定义布局/字段的 json 格式日志?
- .net - 使用正则表达式从使用 .Net 的 SQL 语句中提取特定的选择子句