我是Javascript的新手,因此我有点失落。我能够从GeoJSON文件中读取;但是,我不明白如何遍历文件以获得Lat-Long的点数,然后在Leaflet中将这些点显示为标记。我希望也能使用插件Awesome Markers(基于font-awesome,适用于Leaflet)
这是我的GeoJSON文件的示例:
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": { "Street Nam": "Aljunied Avenue 2", " Block": "118 Aljunied Avenue 2", " Postal Co": "380118", " Latitude": 1.320440, "Longitude": 103.887575 },
"geometry": { "type": "Point", "coordinates": [ 103.887575, 1.320440 ] } }
,
{ "type": "Feature", "properties": { "Street Nam": "Aljunied Crescent", " Block": "97A Aljunied Crescent", " Postal Co": "381097", " Latitude": 1.321107, "Longitude": 103.886127 },
"geometry": { "type": "Point", "coordinates": [ 103.886127, 1.321107 ] } }
]
}
感谢您的关注和时间=)
答案 0 :(得分:1)
按照the leaflet documentation中的描述处理geojson。指定pointToLayer函数,该函数创建一个带有令人敬畏的图标的标记:
L.geoJson(geoJson, {
pointToLayer: function (feature, latlng) {
return L.marker(latlng,
{icon: L.AwesomeMarkers.icon(
<< options based on feature.properties >>
)});
}
}).addTo(map);
答案 1 :(得分:0)
读取文件后,您应该有一个javascript对象来表示文件中的所有数据:
var geoData = JSON.parse(fileContents);
var features = geoData.features;
等等。解析后的数据将转换为对象或数组,具体取决于它们是键/值字典还是仅列表。所以从上面
var feature = geoData.features[0];
将为您提供列表中第一个要素对象的引用。如果你写
console.log(geoData);
并使用最新的浏览器运行,您应该能够看到数据的可扩展描述,以帮助理解所有这些。