Это потому, что L.Polyline
, принимает вложенный массив из нескольких координат lat/lng в качестве первого параметра, L.Marker
принимает один массив с координатами lat/lng. Подпись отличается:
L.Polyline:
new L.Polyline([[-45, -45], [45, 45]], {/*options*/});
L.Marker:
new Marker([-45, -45], {/*options*/});
При передаче вложенного массива L.Marker
, как показано выше в полилинии, то выдает ошибку:
Uncaught TypeError: Cannot read property 'lat' of null
Если вы хотите использовать набор координат полилинии t о шоу-маркеры в начале и/или конечной точки линии, которую вы могли бы сделать это:
var coordinates = [[-45, -45], [45, 45]];
var startMarker = new Marker(coordinates[0], {/*options*/});
var endMarker = new Marker(coordinates[1], {/*options*/});
Как и было обещано в комментариях еще более простой способ, чтобы добавить маркеры из большого массива:
var coordinates = [
[-41.31825,174.80768],
[-41.31606,174.80774],
[-41.31581,174.80777],
[-41.31115,174.80827],
[-41.30928,174.80835],
[-41.29127,174.83841],
[-41.33571,174.84846],
[-41.34268,174.82877]
];
coordinates.forEach(function (coordinate) {
new L.Marker(coordinate).addTo(map);
});
Намного проще чем делать:
new L.Marker(coordinate[0]).addTo(map);
new L.Marker(coordinate[1]).addTo(map);
new L.Marker(coordinate[2]).addTo(map);
new L.Marker(coordinate[3]).addTo(map);
new L.Marker(coordinate[4]).addTo(map);
new L.Marker(coordinate[5]).addTo(map);
new L.Marker(coordinate[6]).addTo(map);
new L.Marker(coordinate[7]).addTo(map);
Работа на пример Plunker: http://plnkr.co/edit/3dbJgb?p=preview
Уважаемый @ iH8, спасибо за ответ , У меня есть набор координат, ваши коды все еще применимы? Очень ценю вашу помощь. 'вар planelatlong = [ [-41.31825,174.80768], [-41.31606,174.80774], [-41.31581,174.80777], [-41.31115,174.80827], [-41.30928,174.80835], [ -41.29127,174.83841], [-41.33571,174.84846], [-41.34268,174.82877]]; ' – hftan
Нет, спасибо, вы всегда рады, это то, для чего СОСТОИТСЯ. Просто примите ответ, если это решение вашей проблемы, так что другие пользователи, которые ищут подобное решение, могут воспользоваться также принятым решением, см .: http://stackoverflow.com/help/someone-answers. Да, этот подход будет но я обновляю свой ответ, чтобы добавить второе решение, которое будет работать немного при работе с большими массивами. – iH8