使用传单创建圆(使用正半径)
Creating a circle with Leaflet (using a positive radius)
根据文档,在传单中画一个圆圈似乎很直接,你只需要提供坐标、半径和可选的选项对象:
L.circle( <LatLng> latlng, <Number> radius, <Path options> options? )
我试着在我正在绘制的地图上做这件事,但无论我指定的半径有多大,都只能产生一个点而不是一个圆。我让这件事让我抓狂了一段时间,然后离开代码去做其他项目。我最近又回来了,一时兴起,我试着用一个负值来表示半径:
"use strict";
var theMap = L.map("map", {
minZoom: 0,
maxZoom: 7,
crs: L.CRS.Simple
}).setView([0, 0], 0),
eventsLayer = new L.LayerGroup(),
unproject = function (coord) {
return theMap.unproject(coord, theMap.getMaxZoom());
},
coord = unproject([12057.79, 13661.21]),
southWest = unproject([0, 32768]),
northEast = unproject([32768, 0]),
radius = -8653.18, // Why isn't it working with a positive radius?!?!?
circ = L.circle(coord, radius, {color: '#f00', fillColor: '#00f'});
theMap.setMaxBounds(new L.LatLngBounds(southWest, northEast));
L.tileLayer("https://tiles.guildwars2.com/1/1/{z}/{x}/{y}.jpg", {
minZoom: 2,
maxZoom: 7,
continuousWorld: true
}).addTo(theMap);
eventsLayer.addTo(theMap);
theMap.setView(coord, 7, {animate: true});
circ.addTo(eventsLayer);
出于某种原因,它会创建一个半径为负的圆。
这似乎是一个错误,因为文档中使用了正值表示半径。是我在代码中做错了什么导致了这种错误行为,还是可能是传单中的错误?
看到这个答案后,我认为这是传单中的一个错误。我下载了当前版本的开发主机并添加到fiddle中。
radius = 1,
新版本确实接受正值,并做了一个圆圈。然而,它在另一方面有缺陷。0.7指定圆的半径应设置为米。在当前的开发版本中,即使值为1也会覆盖数百米。
相关文章:
- 在表单中创建一个黑名单过滤器以避免某些单词
- 如何在表单中创建html元素,而无需重新加载页面
- 在 javascript 中使 split() 方法使用双引号而不是单引号创建数组
- Rails/Ajax 在提交后将表单从创建更改为更新
- JQuery / Javascript弹出框和表单提交创建
- 如何创建动态html表单的创建JSON对象(表单元素)
- 通过多次单击创建字符串
- 从表单输入创建多维关联数组
- JSON 的新增内容.如何在提交表单时创建 json 文件以及在何处查看它
- 使用表单输入创建 PDF 文档
- 如何在HTML表单中创建美元金额输入字段
- 在JavaScript提交表单时创建URL
- 单击创建 DIV;然后通过单击它删除相同的 DIV
- 使用动态表单 jquery 创建多维数组
- 为链接单击创建简单的侦听器
- 尝试使用数据从谷歌表单响应创建谷歌表单每当有人提交表单
- 在PHP表单中创建一个带有自动完成功能的输入字段
- 在javascript生成的表单中创建输入字段
- 在Meteor.js中填写向导表单后创建用户
- 如何在HTML表单中创建两组单选按钮,以及在a组中的更改何时会在B组中更改