OSM Mapnik集成

时间:2017-11-02 13:07:39

标签: openstreetmap mapnik

我正在尝试实施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>

任何人都可以指导我。我怎样才能达到要求? 任何帮助将不胜感激。

0 个答案:

没有答案