我正在尝试实施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>
任何人都可以指导我。我怎样才能达到要求? 任何帮助将不胜感激。