【发布时间】:2018-11-26 23:43:11
【问题描述】:
我有一个带有一些坐标的数组
coords = [];
console.log(coords);给我
[]
0: "45.461,9.177"
1: "40.85150386578784,14.258907499999964"
2: "45.46135436613811,9.175124650000043"
现在我需要根据这些坐标绘制标记,并将 lat 和 lng 放在 2 个不同的输入字段中,所以我这样做了:
for (var i = 0; i < coords.length; i++) {
console.log(coords[i]);
var circle = new L.CircleMarker([coords[i]]);
circles.addLayer(circle);
circle.on('click', function (e) {
var curPos = e.target.getLatLng();
$("#longiTude").val(curPos.lat);
$("#latiTude").val(curPos.lng);
submitSearchForm();
});
}
但这给了我以下错误
Projection.SphericalMercator.js:18 未捕获类型错误:无法读取 null 的属性“纬度”
如果我做 console.log(circle);它给了我
NewClass {options: {…}, _latlng: null, _radius: 10, _initHooksCalled: true}
options:
__proto__: Object
_events:
click: [{…}]
__proto__: Object
_initHooksCalled: true
_latlng: null
_radius: 10
__proto__: NewClass
看起来它没有读取数组var circle = new L.CircleMarker([coords[i]]);中的坐标
我尝试在没有[] 的情况下执行var circle = new L.CircleMarker(coords[i]);,但出现同样的错误
【问题讨论】:
-
L.CircleMarker期望什么作为参数?看起来您传递的是数组内的字符串,例如["45.461,9.177"] -
@MarkMeyer 它需要一个数组,我以为我正在传递一个数组,请参阅底部的更新问题
-
@MarkMeyer 宾果游戏!非常感谢。如果您将其放入答案中,我会接受它
标签: javascript leaflet leaflet.markercluster