jjzjj

leaflet.draw

全部标签

javascript - 如何在 Leaflet 中将点从 [x,y] 坐标投影到 LatLng?

我正在使用Leaflet1.0.0rc3并且需要使用绝对像素值来修改map上的某些内容。因此,我想知道用户点击像素的位置,然后将其转换回LatLng坐标。我尝试使用map.unproject(),这似乎是正确的方法(unproject()Leafletdocumentation)。但该方法产生的La​​tLng值与e.latlng的输出有很大不同。(例如,输入LatLng(52,-1.7)并输出LatLng(84.9,-177))。所以我一定是做错了什么。问题:将点从层(x,y)空间投影到LatLng空间的正确方法是什么?这是一个代码片段(fiddle:https://jsfiddle

javascript - 以编程方式折叠 Leaflet JS 层控件

LeafletJS层控件如何使用JS代码关闭?在桌面上,当鼠标光标离开控件时,控件会很好地关闭。但是,在手机上,用户需要点击控件外部才能关闭它。一旦用户在控件中选择了一个层,我想手动关闭它。 最佳答案 此控件的状态由leaflet-control-layers-expanded类控制。如果向leaflet-control-layers元素添加或删除此类,则可以控制状态。为简单起见,这些示例使用jQuery。展开控件:$(".leaflet-control-layers").addClass("leaflet-control-laye

javascript - 将 Leaflet LatLng 投影到平铺像素坐标

对于Canvas图层,如何访问特定图block的点击像素?给定像{lat:37.68816,lng:-119.76196}这样的LatLng,我如何:#1,检索正确的点击block,#2,block内的像素坐标?这两个都应该考虑maxNativeZoom。 最佳答案 需要像L.CRS.EPSG3857这样的CRS。map的CRS可通过map.options.crs访问。需要真正的缩放、图block大小(如256,但可能为512或更高maxNativeZoom)和像素原点,如map.getPixelOrigin():constlatl

javascript - 将 Leaflet 与 WMTS 服务器一起使用?

是否可以使用Leafletjavascript库显示来自WMTS的map数据(网络map瓦片服务)基于服务器?Leaflet似乎不支持开箱即用的WMTS,但是是否有任何插件? 最佳答案 您可以使用此处实现的L.TileLayer.WMTS类:http://depot.ign.fr/geoportail/api/develop/tech-docs-js/examples/js/geoportalLeaflet.js这是结果:http://depot.ign.fr/geoportail/api/develop/tech-docs-js/

javascript - 在 Leaflet 中达到最大范围后禁用拖动

我正在使用自定义图像处理Leaflet,其图block是使用“zoomify”生成的。我目前面临以下问题:1)在最小缩放级别上,图像不应可拖动,这是使用map.dragging.disable()实现的。但是当图像当前处于最大缩放级别并且用户正在拖动时会出现问题,因为我不希望焦点超出图block,即用户一旦到达就不应看到“灰色边框”超出界限限制。是否可以使用Leaflet.例如,用户拖动图像,一旦灰色边框开始出现,拖动就会被禁用。虽然它确实通过设置bounceAtZoomLimits:false以及map.fitBounds()返回到当前位置,但这只是在用户结束拖动时。2)在双指缩放时

javascript - 标记不会出现在 Leaflet 的连续世界中

当我设置选项continuousWorld=true时,标记不会显示在克隆的图block上,只会显示在主世界上。它是设计行为吗?可能是我没有注意到的其他选项来显示这些标记的存在?UPD:我的目标是在每个世界上重复标记,如下图所示。我调查了continuousWorld和worldcopyjump不适合这个。那么是否可以使传单像图片上那样工作? 最佳答案 不幸的是,据我所知,没有自动和开箱即用的解决方案可以复制Leaflet世界相邻副本上的所有内容(标记、矢量等)。Tomislav提出的最简单的技巧是手动生成内容的额外副本,偏移360

javascript - Leaflet JS - 实现手势处理以强制执行 2 指滚动

您知道当您在移动设备上向下滚动带有谷歌地图的网页时。map变暗并告诉您“用两根手指移动map”。我想在我的Leafletmap中实现这一点。Leaflet目前不提供这种开箱即用的功能。Google将此功能称为手势处理。如果将其设置为“合作”,您将获得我刚才描述的效果。https://developers.google.com/maps/documentation/javascript/interaction如我的代码示例所示,检测所用手指的数量并显示消息非常容易。(您需要在移动设备或模拟器上运行它才能看到它的效果)如果是1根手指,我取消touchmove事件并显示我的警告。否则我允许事

javascript - 如何使用 HTML5 Canvas 而不是 Debug Draw 来绘制我的 Box2D 世界?

我非常了解HTML5Canvas,我了解使用循环等的基础知识和动画。我正在使用的演示:(单击以制作形状)http://henry.brown.name/experiments/box2d/example-canvas.html我不太熟悉的是Box2D。我正在使用Box2DWeb端口,听说它比Box2D-js更新,我不确定哪个最好。我知道如何初始化“世界”并且我可以在世界中放置对象。然后,我使用Step为世界设置动画-但是到目前为止,为了在屏幕上显示它,我只能使用debugdraw来让它工作,因为它基本上会为你做所有事情。我不想使用调试绘图,而是使用Canvas来绘制,例如一辆汽车,而不

javascript - 从外部访问 Leaflet.js GeoJson 功能

我想与L.领域之外的传单驱动map的GeoJson叠加层(多边形)进行交互,但我似乎无法访问创建的对象L..互动将包括:获取边界(我的特征)适合边界(我的特征)设置样式等等我可以看到Leaflet公开了L.GeoJSON.getFeature(),但我似乎无法从中挤出任何东西。没有文档,检查员似乎建议它不接受参数...:\这只是为了future的发展吗? 最佳答案 您可以使用getLayer通过其id获取要素。http://leafletjs.com/reference.html#layergroup-getlayervargeoj

javascript - 在 Leaflet L.Draw 插件中以编程方式添加多边形

有没有办法使用Leaflet绘图插件以编程方式添加多边形?https://github.com/Leaflet/Leaflet.draw例如:点击一个按钮,添加一个可以被插件编辑的正方形。 最佳答案 您只需要将您的多边形(或您想要编辑的任何其他层)添加到您传递给edit.featureGroup的要素组中L.Control.Draw控件的选项。vareditableLayers=L.featureGroup().addTo(map);vardrawControl=newL.Control.Draw({edit:{featureGro