Project

mapnik

0.03
No commit activity in last 3 years
No release in over 3 years
A set of bindings between Ruby and Mapnik. Supports many of the common uses for Mapnik, and one day, might support all of them. Rendering is available using the standard AGG library, or additionally via Cairo, if the rcairo gem is installed and Mapnik has been compiled with Cairo support.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 3.5
~> 3.10

Runtime

>= 1.4.2
 Project Readme

Ruby Mapnik¶ ↑

github.com/mapnik/Ruby-Mapnik

<img src=“https://travis-ci.org/mapnik/Ruby-Mapnik.svg?branch=master” alt=“Build Status”>

Requirements¶ ↑

On OS X install ruby deps like:

export ARCHFLAGS="-arch x86_64"
gem install rake-compiler rake hoe rice chunky_png cairo

Description¶ ↑

A set of bindings between Ruby and Mapnik. Supports many of the common uses for Mapnik, and one day, might support all of them. Rendering is available using the standard AGG library, or additionally via Cairo, if the rcairo gem is installed and Mapnik has been compiled with Cairo support.

Installation¶ ↑

If you have checked out this local repository code build like:

rake

The above command will compile the bindings and run the tests.

File issues at github.com/mapnik/Ruby-Mapnik/issues if you hit any compile errors.

To create a gem from your local repository and install it run:

rake gem
gem install pkg/mapnik-0.x.y.gem

Alternatively, if you wish to install Ruby-Mapnik from the latest tagged release you can do:

gem install mapnik

Note: on osx the default rake compile will try to build universal, and your mapnik install is unlikely built universal. Check the architecture of libmapnik.dylib like:

file /usr/local/lib/libmapnik.dylib

On a system where your compiler defaults to 64bit you’ll see: ‘Mach-O 64-bit dynamically linked shared library x86_64’

So to avoid a linking warning like:

ld: warning: ignoring file /usr/local/lib/libmapnik.dylib, file was built for unsupported file format which is not the architecture being linked (i386)

You can pass this before rake compile:

export ARCHFLAGS="-arch x86_64"

Synopsis¶ ↑

require 'mapnik'

map = Mapnik::Map.new do |m|

  # A grey background
  m.background = Mapnik::Color.new('#777')

  # Use the Google mercator projection
  m.srs =  Mapnik::Tile::DEFAULT_OUTPUT_PROJECTION

  # Add a layer to the map
  m.layer 'countries' do |l|

    # Add a style to the layer
    l.style do |s|

      # Add a rule to the style (this one is a default rule)
      s.rule do |default|

        #fill the shapes with polygon symbolizers
        default.fill = Mapnik::Color.new('#880000')
      end
    end

    # set the srs of the layer
    l.srs = "+proj=latlong +datum=WGS84"

    #specify the datasource for the layer
    l.datasource = Mapnik::Datasource.create :type => 'shape', :file => "#{PATH}/../data/TM_WORLD_BORDERS_SIMPL_0.3_MOD"
  end

end

map.zoom_to_box(map.layers.first.envelope) 
map.render_to_file('my_map.png')

Examples¶ ↑

See demo/rundemo.rb for the classic mapnik rundemo. Also see demo/sinatra/demo.rb for a simple tile server (requires the sinatra gem).

Thanks¶ ↑

Thanks to the Mapnik team and especially to Dane Springmeyer!