1

Я получил текстовый файл с такими координатами:Put координаты из файла .txt в Javascript массива

21.178797 56.888384 
21.373250 56.588044 
24.136921 56.965521 
26.231814 56.858971 
24.123382 56.951146 
25.399601 57.540989 
24.542900 57.090442 

мне нужно поставить их в этом виде массива:

var locations = [ 
['Title A', 3.180967,101.715546, 1], 
['Title B', 3.200848,101.616669, 2], 
['Title C', 3.147372,101.597443, 3], 
['Title D', 3.19125,101.710052, 4] 
]; 

Так я могу поместить несколько маркеры, использующие петлю следующим образом:

for (i = 0; i < locations.length; i++) { 
markers = new google.maps.Marker({ 
    position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
    map: map 
    }); 

    google.maps.event.addListener(marker, 'click', (function(markers, i) { 
    return function() { 
     infowindow.setContent(locations[i][0]); 
     infowindow.open(map, marker); 
    } 
})(marker, i)); 

    } 

} 

Любые идеи, как я могу заставить его работать?

Спасибо! :)

Спасибо за ваши быстрые ребята реагирования.

Я сделаю это немного проще для себя (это мои пихты Expirience с помощью JS)

У меня есть тот же файл:

21.178797 56.888384 
21.373250 56.588044 
24.136921 56.965521 
26.231814 56.858971 
24.123382 56.951146 
25.399601 57.540989 
24.542900 57.090442 

И мне нужно массив выглядеть так:

var locations = [ 
[3.180967,101.715546], 
[3.200848,101.616669], 
[3.147372,101.597443], 
[3.19125,101.710052] 
]; 

заранее спасибо)

+0

ли файл на сервере? Или локальный файл «пользователь» загрузит со своей машины? – geocodezip

+0

Сейчас он находится в той же папке с файлом .js (на машине), я получаю координаты от Api, используя Python, и я помещаю их в txt-файл. – EdwardK

ответ

1

Синтаксический т он данные

Используйте String#split, чтобы разделить текст в массив строк, а затем разделить каждую строку на массив:

var str = `21.178797 56.888384 
 
21.373250 56.588044 
 
24.136921 56.965521 
 
26.231814 56.858971 
 
24.123382 56.951146 
 
25.399601 57.540989 
 
24.542900 57.090442`; 
 

 
var result = str.split('\n').map(function(line, index) { 
 
    return ['Title ' + String.fromCharCode(index + 65)].concat(line.split(' ')); 
 
}); 
 

 
console.log(result);

Получение данных

В зависимости от того, какие браузеры вы планируете поддерживать, вы можете XMLHttpRequest или новее fetch. Этот простой метод будет использовать fetch, если он может, и возврат к XMLHttpRequest:

function getData(path, cb) { 
    var oReq; 

    if (window.fetch) { 
     window.fetch(path) 
      .then(function(response) { 
       return response.text(); 
      }) 
      .then(cb); 
    } else { 
     oReq = new XMLHttpRequest(); 
     oReq.addEventListener("load", function() { 
      cb(this.responseText); 
     }); 
     oReq.open("GET", path); 
     oReq.send(); 
    } 
} 

function parseData(data) { 
    var coo = str.split('\n').map(function(line, index) { 
     return ['Title ' + String.fromCharCode(index + 65)].concat(line.split(' ')); 
    }); 

    // your code that uses coo 
} 

getData('coo.txt', parseData); 

 Смежные вопросы

  • Нет связанных вопросов^_^