使用 carto.js 和传单库将圆添加到地图
Add circle to map with carto.js and leaflet libraries
我必须在我的图层上单击要素时显示一个圆圈。
当我尝试创建圆圈时出现此错误:Error: Invalid LatLng object: (41.961124103390674, NaN)
.
如果我在此错误之前打印对象,我可以读取:Array [ 41.84664960937685, 12.008056640625 ]
。
我试着写分开的值,但它不起作用。
怎么可能?
有人可以帮助我吗?谢谢,对不起我的英语
编辑
我试过这个解决方案:
layer.getSubLayer(1).on('featureClick', function (event, latlon, pos, data, index) {
var coord = {lat:data.lat, lng:data.lon};
console.log(coord)
L.circle(coord, {radius: data.distance}).addTo(map);
错误和日志是一样的...
编辑 2
使用此代码
var coord = L.latLng(42,21);
var cerchio = L.circle(coord,{radius: data.distance});
console.log(cerchio);
cerchio.addTo(map);
我注意到 circle 对象创建正确,所以问题出在 addTo(map) 方法上。
根据 Carto Docs,您的 featureClick
回调中的 latlon
参数包含:
Array with the LatLng ([lat,lng]) where the layer was clicked.
那是你要放置圆圈的地方吗?如果是这样,请使用此行:
L.circle(latlon, {radius: data.distance}).addTo(map);
添加1609*3
var coord = L.latLng(42,21,1609*3);
已解决
正确的做法是
L.circle([data.lat, data.lon], data.distance, {}).addTo(map);
其中 data.distance
是圆的半径。官方文档的例子L.circle([50.5, 30.5], {radius: 200}).addTo(map);
好像是错误的
我必须在我的图层上单击要素时显示一个圆圈。
当我尝试创建圆圈时出现此错误:Error: Invalid LatLng object: (41.961124103390674, NaN)
.
如果我在此错误之前打印对象,我可以读取:Array [ 41.84664960937685, 12.008056640625 ]
。
我试着写分开的值,但它不起作用。
怎么可能? 有人可以帮助我吗?谢谢,对不起我的英语
编辑
我试过这个解决方案:
layer.getSubLayer(1).on('featureClick', function (event, latlon, pos, data, index) {
var coord = {lat:data.lat, lng:data.lon};
console.log(coord)
L.circle(coord, {radius: data.distance}).addTo(map);
错误和日志是一样的...
编辑 2
使用此代码
var coord = L.latLng(42,21);
var cerchio = L.circle(coord,{radius: data.distance});
console.log(cerchio);
cerchio.addTo(map);
我注意到 circle 对象创建正确,所以问题出在 addTo(map) 方法上。
根据 Carto Docs,您的 featureClick
回调中的 latlon
参数包含:
Array with the LatLng ([lat,lng]) where the layer was clicked.
那是你要放置圆圈的地方吗?如果是这样,请使用此行:
L.circle(latlon, {radius: data.distance}).addTo(map);
添加1609*3
var coord = L.latLng(42,21,1609*3);
已解决
正确的做法是
L.circle([data.lat, data.lon], data.distance, {}).addTo(map);
其中 data.distance
是圆的半径。官方文档的例子L.circle([50.5, 30.5], {radius: 200}).addTo(map);
好像是错误的