我的原始代码使用L.latLng()
创建Lat/Long对象。它抛出了一个异常。
它也使用了变量,但当我将变量的值硬编码到代码中时,仍然会出现异常。
为什么
const circle = L.circle([103.628251266667, 1.31326251666667],
{
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5,
radius: 500
}).addTo($scope.map);
投掷
mapController.js:73错误:无效LatLng对象:(103.62825126667,NaN(
奇怪的是,添加标记会起作用。只是没有一个圆圈,我真的更喜欢。
const marker = L.marker(markerLatLng,
{
draggable: false,
}).addTo($scope.map);
不会引发异常。
我更喜欢使用圆形,因为半径可以以米为单位,并且会受到滚动的影响。
更改坐标。传单需要格式为latlng
,但您通过了lnglat
。
为什么我知道你必须改变你的coords?因为最大lat值在88
附近
将您的代码更改为:
const circle = L.circle([1.31326251666667,103.628251266667],
{
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5,
radius: 500
}).addTo($scope.map);
测试
公开传单官方示例
并将其添加到控制台:
const circle = L.circle([1.31326251666667,103.628251266667],
{
color: 'red',
fillColor: '#f03',
fillOpacity: 0.5,
radius: 500
}).addTo(mymap);
mymap.panTo(circle.getLatLng())
然后你看,它正在发挥作用。真的很奇怪,这不适合你
回答
经过几次尝试和错误测试(查看注释(,我们发现当第二个参数是选项时,L.circle不起作用。正确的顺序是latlng
、radius
、options
所以改为调用L.circle([1.31326251666667,103.628251266667],500, {color: 'red'})
[更新]以包含来自@Falke 的命令
这项工作:
L.circle([1.31326251666667,103.628251266667],
500,
{color: 'red',
fillColor: '#f03',
fillOpacity: 0.5}).addTo($scope.map);