Я пытаюсь внедрить OSM и Mapnik. Мое требование - показать пользовательскую карту конечному пользователю (первый уровень базовой карты и второй уровень карты, созданный данными). Я начал с реализации демонстрационных примеров из Mapnik, но не получил достаточно идеи.
Вот что я пробовал,
App.js
var mapnik = require('mapnik');
var fs = require('fs');
/// Register fonts and datasource plugins
mapnik.register_default_fonts();
mapnik.register_default_input_plugins();
var map = new mapnik.Map(1280, 720);
map.load("./stylesheet.xml", function(err, map) {
if(err != null){
console.log(err)
return
}
map.zoomAll();
var im = new mapnik.Image(1280, 720);
map.render(im, function(err, im) {
im.encode("png", function(err, buffer) {
fs.writeFile("map.png", buffer);
});
});
});
Stylesheet.xml
<Map background-color="white" srs="+init=epsg:4326">
<Style name="My Style">
<Rule>
<PolygonSymbolizer fill="#f2eff9" />
<LineSymbolizer stroke="rgb(50%,50%,50%)" stroke-width="0.1" />
</Rule>
</Style>
<Style name="countries">
<Rule>
<PolygonSymbolizer fill="blue" />
<LineSymbolizer stroke="rgb(50%,50%,50%)" stroke-width="0.4" />
</Rule>
</Style>
<Layer name="world" srs="+init=epsg:4326">
<StyleName>countries</StyleName>
<Datasource>
<Parameter name="file">../data/India/IND_adm3.shp</Parameter>
<Parameter name="type">shape</Parameter>
</Datasource>
</Layer>
</Map>
Может ли кто-нибудь помочь мне в этом. Как я могу выполнить требование ?? Любая помощь будет оценена по достоинству.