Как получить координаты из массива? - PullRequest
0 голосов
/ 27 ноября 2018

У меня есть массив с некоторыми координатами

coords = [];

console.log(coords); дает мне

  []
    0: "45.461,9.177"
    1: "40.85150386578784,14.258907499999964"
    2: "45.46135436613811,9.175124650000043"

Теперь мне нужно нарисовать маркеры, основанные на этих координатах, и поместить лат и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 Uncaught TypeError: Cannot read property 'lat 'of null

Если я сделаю console.log (обведите);это дает мне

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 голосов
/ 27 ноября 2018

coords содержит строки типа:

"45.461,9.177"

, но похоже, что L.CircleMarker ожидает массив.Вы можете разделить строки на запятую, чтобы получить CircleMarker массив значений с:

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