小叶圆半径不重要
Leaflet circle radius doesn't matter
我正在为显示来自服务器的活动地图的游戏地图的扩展工作。地图还能用,而且不是我送的。重要的是,他们正在使用简单的CRS来处理游戏坐标。
现在我想创建一个半径的圆。半径应该绑定到地图单位(latlng),而不是像素,所以如果你放大圆圈,屏幕上的半径应该更大,但相对于世界地图的半径是相同的。
我将这段代码作为map的扩展:
var bla = L.circle([0,0], 1000, {'color': '#ffffff'}).addTo(map);
如您所见,这只是一个测试。现在应该有一个半径为1000的圆(我认为它在地图"单位"中,因为文档中的值被命名为"米")。但是我看到的只是一个圆,只不过是一个点。
如果我将半径设置为另一个大小,则没有效果:
var bla = L.circle([0,0], 100000, {'color': '#ffffff'}).addTo(map);
即使是1000000000000000的半径对半径计算也没有影响。负半径也不行
你有什么想法吗?
当你使用L.CRS.Simple投影时,就会发生这种情况。
他们在1.0测试版中修复了这个问题,但增加了一堆新的错误(例如-大量的传单)。绘制插件功能拒绝与新版本一起工作)
我已经找到了2个解决方法:
选项1:升级到1.0测试版或更高版本
选项2:既然他们已经将地球投影硬编码到l圈中,我们也可以像这样破解leaf -src.js:
从改变
_getLatRadius: function () {
return (this._mRadius / 40075017) * 360;
},
_getLngRadius: function () {
return this._getLatRadius() / Math.cos(L.LatLng.DEG_TO_RAD * this._latlng.lat);
},
_getLatRadius: function () {
return this._mRadius;
},
_getLngRadius: function () {
return this._mRadius;
},
希望对大家有所帮助
我有同样的问题,但Stas的答案不适合我(现在使用传单1.9)。
我设法使它工作通过强制_updateCircle接受我的参数。在leaflet-src.js中我修改了这个:
_updateCircle: function(t) {
var e = t._point,
i = Math.max(Math.round(t._radius), 1),
n = "a" + i + "," + (Math.max(Math.round(t._radiusY), 1) || i) + " 0 1,0 ",
e = t._empty() ? "M0 0" : "M" + (e.x - i) + "," + e.y + n + 2 * i + ",0 " + n + 2 * -i + ",0 ";
this._setPath(t, e)
},
:
_updateCircle: function(t) {
/******/
t._radius = t._mRadius
t._radiusY = t._mRadius
/******/
var e = t._point,
i = Math.max(Math.round(t._radius), 1),
n = "a" + i + "," + (Math.max(Math.round(t._radiusY), 1) || i) + " 0 1,0 ",
e = t._empty() ? "M0 0" : "M" + (e.x - i) + "," + e.y + n + 2 * i + ",0 " + n + 2 * -i + ",0 ";
this._setPath(t, e)
},
你失去了在Y轴上拉伸圆的可能性(_radiusY总是等于_radius),但这是一个相当罕见的功能(坦率地说,我不知道如何控制它)。
相关文章:
- 我如何才能确保计时器设置为每天4点半,所以我不会;不用在Javascript中提及某个日期
- 我正在尝试使用多个2数组来绑定svg圆的数据,但不知道如何绑定
- 在页面刷新时,不会触发重要滚动航路点(如果不在页面顶部)
- 试图把注意力集中在一个不重要的元素上是不是一种糟糕的做法;不存在
- 使用D3.js的SVG圆周围的矩形之间的间隙不是通用的
- 直接从代码笔复制的圆环图代码不起作用
- ng样式在与的预标记中!重要的是不能工作
- 画圆的两半,填错了点
- 如果不在 JavaScript 中单击,如何让圆消失
- 圆环图在 Angularjs 中不起作用
- 拖动事件后不更新圆的Cx
- 悬停圆触发器不'Don’不要在多个圆圈上工作
- 用Javascript计算圆的周长和面积-函数不起作用
- 为什么不是't这个圆绕着正确的中心旋转
- 样式更改后禁用悬停:重要的是不要'不起作用
- 为什么帆布的弧线不是圆的?
- 附加子不能在两个圆中工作
- 用于替换字符串中小数后不重要的零的正则表达式模式
- JavaScript库应该如何设置默认的CSS样式(是否有“不重要”?)
- 小叶圆半径不重要