如何从数组中获取坐标?

时间:2018-11-26 23:43:12

标签: javascript leaflet leaflet.markercluster

我有一个带有一些坐标的数组

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未捕获的TypeError:无法读取   属性“ lat”为空

如果我做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]);的情况下进行[],但发生相同的错误

1 个答案:

答案 0 :(得分:0)

coords包含以下字符串:

"45.461,9.177"

,但是看起来L.CircleMarker正在期待一个数组。您可以使用逗号将字符串分割成CircleMarker值数组:

 L.CircleMarker(coords[i].split(','))