我对Meteor很新。我试图将这个示例的自定义版本从传单实现到Meteor:Interactive Choropleth Map
它使用此文件导入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,
"color": "#487ba1",
"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>
我得到了什么:未捕获的错误:无效的GeoJSON对象。
变量“stateData”作为对象返回。我只想将GeoJson数据渲染到地图上。我可以轻松地在简单的HTML上执行此操作。什么是我不知道如何才能正常工作?
答案 0 :(得分:1)
问题似乎来自您的us-states.js
文件。您希望从中加载数据,但不是数据,而是在其中包含变量声明:
var statesData = {
"type":"FeatureCollection",
"features": [
....
]
}
您应该只保留文件中的数据并删除var statesData =
部分:
{
"type":"FeatureCollection",
"features": [
....
]
}