Добавление 'lat' и 'lng' в существующий массив - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть массив для многоугольника, и он неправильно отформатирован для API карт Google. Я уверен, что это простое решение на javascript, но я новичок в JS, поэтому мне интересно, можете ли вы сказать мне, что я не так, в приведенном ниже коде.

Я знаю, что я близок с кодом ниже.

let path = [[59.523341487842316, -9.193736158410616],
           [59.535126839526605, -9.175282560388155],
           [59.529311101819324, -9.147215925256319],
           [59.51395167489177, -9.158202253381319],
           [59.51139973569412, -9.190560422936983],
           [59.521402457849575, -9.174424253503389],
           [59.50946015912328, -9.207211576501436]];    

path.map ( e => ({lat: e[0], lng: e[1]}) )                                                         
console.log(path);

// Construct the polygon.
var geoFences = new google.maps.Polygon({
  paths: path,
  strokeColor: '#FF0000',
  strokeOpacity: 0.8,
  strokeWeight: 2,
  fillColor: '#FF0000',
  fillOpacity: 0.35
});

Вы можете видеть, что я устанавливаю переменную пути к тому, что у меня есть в терминах координат x, y, и использую .map, чтобы попытаться добавить правильный текст json и lat lng. Мне нужно, чтобы вывод выглядел так:

path = [
    {lat: 59.523341487842316, lng: -7.193736158410616},
    {lat: 59.535126839526605, lng: -7.175282560388155}
    /* etc.. */
];

Ответы [ 2 ]

0 голосов
/ 29 апреля 2019

Array.map не изменять существующий массив, вместо этого он возвращает сопоставленный массив. Вы должны присвоить результат переменной.


path = path.map ( e => ({lat: e[0], lng: e[1]}) )

0 голосов
/ 29 апреля 2019

Я бы создал пустой массив и добавил бы к нему объекты

let pathObj = []
path.map( e => pathObj = {lat: e[0], lng: e[1]} )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...