传单:LatLng对象NaN无效



我的原始代码使用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不起作用。正确的顺序是latlngradiusoptions

所以改为调用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);

最新更新