Я совершенно новый для Метеор. Я пытаюсь осуществить свою собственную версию этого примера с листовкой в Meteor: Interactive Choropleth MapЗагрузка GeoJSON в листовку Метеор
Он использует этот файл для импорта GeoJSON данных: us-states
Моя проблема: импортировать этот файл или получить его, чтобы сделать ,
То, что я сделал:
Template.map.rendered = function() {
var map = L.map('map').setView([37.8, -96], 5);
L.tileLayer.provider('Stamen.Watercolor').addTo(map);
HTTP.get(Meteor.absoluteUrl("/us-states.js"), function(err,result) {
var statesData = result.content;
console.log(statesData);
var myStyle = {
"fillColor": "#487ba1",
"weight": 3,
"opacity": 1,
\t "color": "#487ba1",
\t "fillOpacity": 0.1
};
var statesLayer = L.geoJson(statesData, {
style: myStyle
}).addTo(map);
});
}
#map {
width: 100%;
height: 100%;
}
<div id="column">
{{> map}}
</div>
<template name="map">
<div id='map'></div>
</template>
Что я получаю: Uncaught Ошибка: объект Invalid GeoJSON.
Переменная «stateData» возвращается как объект. Я просто хочу отобразить данные GeoJson на карте. Я мог бы легко сделать это на простом html. Что я не знаю, чтобы правильно это сделать?
Почему вы преобразовываете свой результат result.content в String? Если функция geoJSON ищет объект, это не сработает. – Guillaume
Woops. Этого не должно быть. Однако даже когда я удаляю .toString(), он все равно бросает мне исключение. – Anraiki
как отформатирован 'result.content'? Возможно ли, что он не будет автоматически анализироваться как JSON и что он должен анализироваться с помощью 'JSON.parse (result.content)'? Кроме того, объекты GeoJSON должны иметь следующую форму: '{type: '...', координат: [Number, Number]}' – Guillaume