Импортировать свойства маркеров, например, из текстовый файл? - PullRequest
0 голосов
/ 25 июня 2019

Сначала исправьте теги, если они не правы.Не уверен, к чему это относится.
Я хочу добавить маркеры в мой OpenStreetMap, который работает с листовкой.Я добавил их вручную по одному в мой HTML-файл, но это выглядит плохо.У меня уже есть некоторые идеи о том, как добавить их, используя цикл for.Но моя проблема сейчас в том, что я не хочу создавать новый массив для каждого нужного мне маркера.Я видел, как кто-то использовал стол и извлекал из него информацию.Не помню, что и где это было.

Мой маркер выглядит так: Name = L.marker([lat,lon]).addTo(overlay).bindPopop("Info for marker")
Теперь можно ли написать таблицу, например, в текстовом файле, где в первой строке указано «Имя, широта, долгота, наложение, информация»,Следующие строки дают свойства, а JS или любой другой модуль получает нужную мне информацию?Если так, то как?Если нет, то как? ^^

1 Ответ

1 голос
/ 25 июня 2019

Возможно, вы захотите поместить данные в список объектов JavaScript (в данном случае - JSON). Это достаточно просто написать, и вам не нужно разбирать вещи.

const markers = [
  {lat: 123, lon: 456, text: 'Info'},
  {lat: 123, lon: 456, text: 'Info'},
  {lat: 123, lon: 456, text: 'Info'},
  {lat: 123, lon: 456, text: 'Info'},
  {lat: 123, lon: 456, text: 'Info'},
];
markers.forEach(({lat, lon, text}) => L.marker([lat, lon]).addTo(overlay).bindPopop(text));

Если вы действительно действительно хотите текстовый формат, мы тоже можем это сделать ...

const markersText = `
123,456,Info
123,456,Info
123,456,Info
123,456,Info
`;
// Converts the above text format into a similar `markers` list-of-objects:
const markers = markersText
  .split("\n") // split by newlines
  .filter(Boolean) // remove empty lines
  .map(line => line.trim().split(",")) // split each line by comma
  .map(([lat, lon, text]) => ({  // map the arrays to objects
    lat: parseFloat(lat),
    lon: parseFloat(lon),
    text,
  }));



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...