【问题标题】:How to get coordinates from array?如何从数组中获取坐标?
【发布时间】: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


【解决方案1】:

coords 包含如下字符串:

"45.461,9.177"

但看起来L.CircleMarker 需要一个数组。你可以用逗号分割字符串,给CircleMarker一个值数组:

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

【讨论】:

    猜你喜欢
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2015-08-01
    • 1970-01-01
    • 2021-12-26
    • 2015-08-24
    • 2020-06-15
    相关资源
    最近更新 更多