diff --git a/data/icons/Makefile.am b/data/icons/Makefile.am
index 55493aa..6f0ab7c 100644
--- a/data/icons/Makefile.am
+++ b/data/icons/Makefile.am
@@ -4,6 +4,20 @@ public_icons_themes =				\
 	hicolor					\
 	$(NULL)
 
+poi_icons = \
+	scalable_places_poi-airport.svg \
+	scalable_places_poi-building.svg \
+	scalable_places_poi-bus-stop.svg \
+	scalable_places_poi-car.svg \
+	scalable_places_poi-marker.svg \
+	scalable_places_poi-railway-station.svg \
+	scalable_places_poi-town.svg \
+	scalable_places_poi-school.svg \
+	scalable_places_poi-place-of-worship.svg \
+	scalable_places_poi-restaurant.svg \
+	scalable_places_poi-bar.svg \
+	scalable_places_poi-airport.svg
+
 public_icons =					\
 	hicolor_apps_16x16_gnome-maps.png	\
 	hicolor_apps_22x22_gnome-maps.png	\
@@ -26,6 +40,7 @@ noinst_DATA =					\
 EXTRA_DIST =					\
 	$(public_icons)				\
 	$(images_DATA)				\
+	$(poi-icons)				\
 	gnome-maps.svg				\
 	$(NULL)
 
@@ -56,6 +71,14 @@ install-icons:
 		$(INSTALL_DATA) $(srcdir)/$$icon $(DESTDIR)$(datadir)/icons/$$THEME/$$SIZE/$$CONTEXT/$$ICONFILE; \
 	done
 
+	for icon in $(poi_icons); do \
+		ICON=`echo $$icon | sed -e 's:_:/:g'`; \
+		ICONDIR=`dirname $$ICON`; \
+		mkdir -p $(DESTDIR)$(datadir)/icons/gnome/$$ICONDIR; \
+		echo INSTALL $(DESTDIR)$(datadir)/icons/gnome/$$ICON; \
+		$(INSTALL_DATA) $(srcdir)/maki/$$icon $(DESTDIR)$(datadir)/icons/gnome/$$ICON; \
+	done;
+
 uninstall-icons:
 	-for icon in $(public_icons); do \
 		THEME=`echo $$icon | cut -d_ -f1`; \
diff --git a/data/icons/maki/LICENSE.txt b/data/icons/maki/LICENSE.txt
new file mode 100644
index 0000000..793dca9
--- /dev/null
+++ b/data/icons/maki/LICENSE.txt
@@ -0,0 +1,28 @@
+BSD License
+
+Copyright© 2012, MapBox, LLC. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above copyright notice, this
+  list of conditions and the following disclaimer.
+
+* Redistributions in binary form must reproduce the above copyright notice, this
+  list of conditions and the following disclaimer in the documentation and/or
+  other materials provided with the distribution.
+
+* Neither the name of the Development Seed, Inc. nor the names of its
+  contributors may be used to endorse or promote products derived from this
+  software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/data/icons/maki/scalable_places_poi-airport.svg b/data/icons/maki/scalable_places_poi-airport.svg
new file mode 100644
index 0000000..3ca18b6
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-airport.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="place-of-worship-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="-0.15638252"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="56"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       transform="translate(-84,-22)"
+       style="display:inline"
+       id="airport-24"
+       inkscape:label="airport-24"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <g
+         transform="translate(84,-2)"
+         id="g6678">
+        <g
+           id="g14771">
+          <path
+             inkscape:connector-curvature="0"
+             inkscape:export-ydpi="90"
+             inkscape:export-xdpi="90"
+             style="opacity:0.3;color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             d="m 21,1065.3622 0,1 -7,-1 0,0.031 0,3.9688 2,2.0002 c 0,0.5 -0.5,1 -1,1 -2,0 -5,0 -5,0 -0.5,0 -1,-0.5 -1,-1 l 2,-2.0002 0,-4 -7,1 0,-1 7,-4 c 0,0 0,-0.3333 0,-2 0,-1 0.5,-4 1.5,-4 1,0 1.5,3 1.5,4 0,1.6667 0,2 0,2 z"
+             id="path14304"
+             sodipodi:nodetypes="ccccccscccccccssscc" />
+          <path
+             sodipodi:nodetypes="cccccsccccccccsssccc"
+             id="path7712"
+             d="m 21,1065.8622 0,0.5 -7,-1 0,3.9998 2,2.0002 c 0,0.5 -0.5,1 -1,1 -2,0 -5,0 -5,0 -0.5,0 -1,-0.5 -1,-1 l 2,-2.0002 0,-4 -7,1 0,-0.4998 c 0,-0.5 0.3056731,-0.6379 0.5,-0.75 l 6.5,-3.7502 c 0,0 0,-0.3333 0,-2 0,-1 0.5,-4 1.5,-4 1,0 1.5,3 1.5,4 0,1.6667 0,2 0,2 l 6.5,3.7502 c 0.27841,0.1606 0.5,0.2411 0.5,0.75 z"
+             style="fill:#444444;fill-opacity:1;stroke:none;display:inline"
+             inkscape:export-xdpi="90"
+             inkscape:export-ydpi="90"
+             inkscape:connector-curvature="0" />
+        </g>
+      </g>
+      <rect
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect22075-7"
+         width="24"
+         height="24.000017"
+         x="84"
+         y="1050.3622" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-bar.svg b/data/icons/maki/scalable_places_poi-bar.svg
new file mode 100644
index 0000000..fd2e941
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-bar.svg
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="bank-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="6.9146856"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="25"
+     inkscape:window-y="195"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-nodes="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="1px"
+       spacingy="1px" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="13,16"
+       id="guide4486" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       style="display:inline"
+       id="bar-24"
+       inkscape:label="bar-24"
+       transform="translate(-318,-117.99998)"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <g
+         transform="translate(-1,0)"
+         id="g16670">
+        <path
+           sodipodi:nodetypes="ssccccccccccccs"
+           inkscape:connector-curvature="0"
+           id="path15624"
+           d="m 324,1150.3622 c -0.5,0 -1,6e-4 -1,0.25 0,0.2506 0.34281,0.5479 0.5,0.75 l 7.5,7.8125 0,6.1875 -4,1 c -0.5,0.1667 -1,0.5 -1,1 l 11,0 c 0,-0.5 -0.5,-0.8333 -1,-1 l -4,-1 0,-6.1875 7.5,-7.8125 c 0.15719,-0.2021 0.5,-0.4994 0.5,-0.75 0,-0.2494 -0.5,-0.25 -1,-0.25 z"
+           style="opacity:0.3;color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <path
+           style="color:#000000;fill:#444444;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           d="m 324,1150.3622 c -0.5,0 -1,6e-4 -1,0.25 0,0.2506 0.34281,0.5479 0.5,0.75 l 7.5,7.8125 0,6.1875 -4,1 c -0.5,0.1667 -1,0.5 -1,1 l 11,0 c 0,-0.5 -0.5,-0.8333 -1,-1 l -4,-1 0,-6.1875 7.5,-7.8125 c 0.15719,-0.2021 0.5,-0.4994 0.5,-0.75 0,-0.2494 -0.5,-0.25 -1,-0.25 z"
+           id="path15601-4"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="ssccccccccccccs" />
+      </g>
+      <rect
+         y="1146.3622"
+         x="318"
+         height="24.000017"
+         width="24"
+         id="rect22415"
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-building.svg b/data/icons/maki/scalable_places_poi-building.svg
new file mode 100644
index 0000000..77214d4
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-building.svg
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="logging-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="6.9146856"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="38"
+     inkscape:window-y="82"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-nodes="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="1px"
+       spacingy="1px" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="13,16"
+       id="guide4486" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       style="display:inline"
+       inkscape:export-ydpi="89.996864"
+       inkscape:export-xdpi="89.996864"
+       transform="translate(-630.00002,-45.999983)"
+       inkscape:label=""
+       id="building-24">
+      <path
+         sodipodi:nodetypes="cscccccccccccscc"
+         inkscape:connector-curvature="0"
+         id="path6138"
+         d="m 641,1077.3622 -7.5,6.5 c -0.3561,0.3086 -0.5,0.5 -0.5,0.75 0,0.4959 0.5,0.75 1,0.75 l 1,0 0,8 c 0,0.554 0.446,1 1,1 l 6.5,0 6.5,0 c 0.554,0 1,-0.446 1,-1 l 0,-8 1,0 c 0.5,0 1,-0.2541 1,-0.75 0,-0.25 -0.13799,-0.4483 -0.5,-0.75 l -7.5,-6.5 z"
+         style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <rect
+         y="1074.3622"
+         x="630"
+         height="24.000034"
+         width="24.000017"
+         id="rect5877"
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+      <path
+         style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         d="m 641,1077.3622 -7.5,6.5 c -0.3561,0.3086 -0.5,0.5 -0.5,0.75 0,0.4959 0.5,0.75 1,0.75 l 1,0 0,8 c 0,0.554 0.446,1 1,1 l 6.5,0 6.5,0 c 0.554,0 1,-0.446 1,-1 l 0,-8 1,0 c 0.5,0 1,-0.2541 1,-0.75 0,-0.25 -0.13799,-0.4483 -0.5,-0.75 l -7.5,-6.5 z"
+         id="path5881"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cscccccccccccscc" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-bus-stop.svg b/data/icons/maki/scalable_places_poi-bus-stop.svg
new file mode 100644
index 0000000..117bc30
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-bus-stop.svg
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="bus-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="22.627417"
+     inkscape:cx="9.6304569"
+     inkscape:cy="15.078296"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="451"
+     inkscape:window-y="10"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       style="display:inline"
+       id="bus-24"
+       transform="translate(-84,-118)"
+       inkscape:label="bus-24"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <g
+         id="g21783">
+        <path
+           style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           d="m 93,1149.3622 0,1 -2,0 c -0.5,0 -1,0.5 -1,1 l 0,6 0,5 0,1 0,1 1,0 0,2 2,0 0,-2 7,0 0,2 2,0 0,-2 1,0 0,-1 0,-1 0,-5 0,-6 c 0,-0.5 -0.5,-1 -1,-1 l -2,0 0,-1 -7,0 z"
+           id="path8471"
+           inkscape:connector-curvature="0" />
+        <g
+           id="g15936"
+           transform="translate(-1,2)">
+          <g
+             transform="translate(84,139)"
+             style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+             id="g9918" />
+          <g
+             id="g8615-8"
+             style="display:inline"
+             transform="translate(84,139)">
+            <path
+               sodipodi:nodetypes="ccccccccccccccccccccccccssssssssss"
+               style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+               d="m 10,1008.3622 0,1 -2,0 c -0.5,0 -1,0.5 -1,1 l 0,13 1,0 0,2 2,0 0,-2 7,0 0,2 2,0 0,-2 1,0 0,-13 c 0,-0.5 -0.5,-1 -1,-1 l -2,0 0,-1 z m -1,3 9,0 0,5 -9,0 z m 1,8 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 -0.554,0 -1,-0.446 -1,-1 0,-0.554 0.446,-1 1,-1 z m 7,0 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 -0.554,0 -1,-0.446 -1,-1 0,-0.554 0.446,-1 1,-1 z"
+               id="path8522-6-8"
+               inkscape:connector-curvature="0" />
+          </g>
+        </g>
+      </g>
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-car.svg b/data/icons/maki/scalable_places_poi-car.svg
new file mode 100644
index 0000000..aeaf247
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-car.svg
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   version="1.1"
+   id="svg4460"
+   sodipodi:docname="car-24.svg"
+   inkscape:version="0.48.2 r9819"
+   x="0px"
+   y="0px"
+   width="24px"
+   height="24px"
+   viewBox="-402.5 403.5 24 24"
+   enable-background="new -402.5 403.5 24 24"
+   xml:space="preserve"><metadata
+   id="metadata3299"><rdf:RDF><cc:Work
+       rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
+         rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
+   id="defs3297" />
+<sodipodi:namedview
+   id="base"
+   inkscape:pageopacity="0.0"
+   borderopacity="1.0"
+   inkscape:cx="-11.837642"
+   inkscape:pageshadow="2"
+   inkscape:zoom="4"
+   inkscape:document-units="px"
+   inkscape:current-layer="svg4460"
+   inkscape:guide-bbox="true"
+   showguides="true"
+   inkscape:window-width="1220"
+   showgrid="false"
+   inkscape:window-height="833"
+   inkscape:window-x="56"
+   inkscape:cy="27.652729"
+   inkscape:window-y="20"
+   inkscape:window-maximized="0"
+   pagecolor="#ffffff"
+   bordercolor="#666666"
+   inkscape:object-paths="true"
+   inkscape:snap-intersection-paths="false"
+   inkscape:object-nodes="true">
+	<inkscape:grid
+   type="xygrid"
+   id="grid4468"
+   enabled="true"
+   empspacing="2"
+   visible="true"
+   snapvisiblegridlinesonly="true"
+   spacingx="0.5px"
+   spacingy="0.5px">
+		</inkscape:grid>
+	<sodipodi:guide
+   id="guide4470"
+   position="0,20"
+   orientation="1,0" />
+	<sodipodi:guide
+   id="guide4472"
+   position="4,24"
+   orientation="0,1" />
+	<sodipodi:guide
+   id="guide4474"
+   position="24,13"
+   orientation="1,0" />
+	<sodipodi:guide
+   id="guide4476"
+   position="15,0"
+   orientation="0,1" />
+	<sodipodi:guide
+   id="guide4478"
+   position="23,20"
+   orientation="1,0" />
+	<sodipodi:guide
+   id="guide4480"
+   position="20,23"
+   orientation="0,1" />
+	<sodipodi:guide
+   id="guide4482"
+   position="2,5"
+   orientation="1,0" />
+	<sodipodi:guide
+   id="guide4484"
+   position="7,2"
+   orientation="0,1" />
+	<sodipodi:guide
+   id="guide4486"
+   position="12.5,1"
+   orientation="1,0" />
+	<sodipodi:guide
+   id="guide4490"
+   position="16,13"
+   orientation="0,1" />
+<sodipodi:guide
+   orientation="0,1"
+   position="18,10.5"
+   id="guide3307" /><sodipodi:guide
+   orientation="-0.9486833,-0.31622777"
+   position="16.5,18"
+   id="guide5202" /></sodipodi:namedview>
+<g
+   id="layer1"
+   transform="translate(0,-1028.3622)"
+   inkscape:groupmode="layer"
+   inkscape:label="Layer 1">
+</g>
+
+<g
+   style="display:inline"
+   id="bus-24"
+   transform="translate(-486.5,-741.8622)"
+   inkscape:label="bus-24"
+   inkscape:export-xdpi="89.996864"
+   inkscape:export-ydpi="89.996864"><g
+     id="g21783"><g
+       id="g15936"
+       transform="translate(-1,2)"><g
+         transform="translate(84,139)"
+         style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="g9918" /><g
+         id="g8615-8"
+         style="display:inline"
+         transform="translate(84,139)"><path
+           sodipodi:nodetypes="csscccssssccssssccccssccccccssssssssss"
+           inkscape:connector-curvature="0"
+           id="path5288"
+           d="m 9,1009.3622 c -1,0 -1.3125,0.5 -1.5,1 l -1.5,4 c -0.1875,0.5 -1,1 -1,2 l 0,5 2,0 0,1 c 0,0.5 0.5,1 1,1 l 1,0 c 0.5,0 1,-0.5 1,-1 l 0,-1 7,0 0,1 c 0,0.5 0.5,1 1,1 l 1,0 c 0.5,0 1,-0.5 1,-1 l 0,-1 2,0 0,-5 c 0,-1 -0.738288,-1.3021 -1,-2 l -1.5,-4 c -0.1875,-0.5 -0.5,-1 -1.5,-1 -3.333333,0 -9,0 -9,0 z m 0.5,2 8,0 1,3 -10,0 z m -0.5,6 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 -0.554,0 -1,-0.446 -1,-1 0,-0.554 0.446,-1 1,-1 z m 9,0 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 -0.554,0 -1,-0.446 -1,-1 0,-0.554 0.446,-1 1,-1 z"
+           style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /><path
+           style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           d="m 9,1009.3622 c -1,0 -1.3125,0.5 -1.5,1 l -1.5,4 c -0.1875,0.5 -1,1 -1,2 l 0,5 2,0 0,1 c 0,0.5 0.5,1 1,1 l 1,0 c 0.5,0 1,-0.5 1,-1 l 0,-1 7,0 0,1 c 0,0.5 0.5,1 1,1 l 1,0 c 0.5,0 1,-0.5 1,-1 l 0,-1 2,0 0,-5 c 0,-1 -0.738288,-1.3021 -1,-2 l -1.5,-4 c -0.1875,-0.5 -0.5,-1 -1.5,-1 -3.333333,0 -9,0 -9,0 z m 0.5,2 8,0 1,3 -10,0 z m -0.5,6 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 -0.554,0 -1,-0.446 -1,-1 0,-0.554 0.446,-1 1,-1 z m 9,0 c 0.554,0 1,0.446 1,1 0,0.554 -0.446,1 -1,1 -0.554,0 -1,-0.446 -1,-1 0,-0.554 0.446,-1 1,-1 z"
+           id="path8522-6-8"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="csscccssssccssssccccssccccccssssssssss" /></g></g></g></g></svg>
\ No newline at end of file
diff --git a/data/icons/maki/scalable_places_poi-marker.svg b/data/icons/maki/scalable_places_poi-marker.svg
new file mode 100644
index 0000000..1a9d183
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-marker.svg
@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="marker-stroked-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="-3.6919166"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="56"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       transform="translate(72,-262)"
+       style="display:inline"
+       id="marker-24"
+       inkscape:label="marker-24"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <g
+         inkscape:export-ydpi="90"
+         inkscape:export-xdpi="90"
+         transform="translate(0,33)"
+         id="g15422">
+        <path
+           style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           d="m -53,1266.8622 c 0,3.5 -5,9.5 -6.5,11.5 -1.5,-2 -6.5,-8 -6.5,-11.5 0,-3.5 3.27126,-6.5 6.5,-6.5 3.22874,0 6.5,3 6.5,6.5 z"
+           id="path15235"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="scsss" />
+        <g
+           transform="translate(-173.99314,956.00001)"
+           style="display:inline"
+           id="marker-15-7-6-8-1"
+           inkscape:label="marker-15">
+          <path
+             sodipodi:nodetypes="scsss"
+             inkscape:connector-curvature="0"
+             id="path7962-4-3-5-3"
+             d="m 120.99314,310.86219 c 0,3.5 -5,9.5 -6.5,11.5 -1.5,-2 -6.5,-8 -6.5,-11.5 0,-3.5 3.27126,-6.5 6.5,-6.5 3.22874,0 6.5,3 6.5,6.5 z"
+             style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        </g>
+      </g>
+      <rect
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect22081"
+         width="24"
+         height="24.000017"
+         x="-72"
+         y="1290.3622" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-place-of-worship.svg b/data/icons/maki/scalable_places_poi-place-of-worship.svg
new file mode 100644
index 0000000..4e94f81
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-place-of-worship.svg
@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="cemetery-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="-3.6919166"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="56"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       transform="translate(-6.0000014,-118)"
+       style="display:inline"
+       id="place-of-worship-24"
+       inkscape:label="place-of-worship-24"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <path
+         style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         d="m 18.5,1150.3622 c 0,0 -2.5,1 -2.5,2 0,0.6667 0,1.3958 0,2 0,1 -2,1 -2,2 0,2.3333 0,9 0,9 l 9,0 c 0,0 0,-6.6667 0,-9 0,-1 -2,-1 -2,-2.1875 0,-0.6042 0,-1.2083 0,-1.8125 0,-1 -2.5,-2 -2.5,-2 z m -8.5,8 c 0,2.3333 0,7 0,7 l 2,0 c 0,0 0,-4.6667 0,-7 0,-1 -1,-1 -1,-1 0,0 -1,0 -1,1 z m 15,0 c 0,2.3333 0,7 0,7 l 2,0 c 0,0 0,-4.6667 0,-7 0,-1 -1,-1 -1,-1 0,0 -1,0 -1,1 z"
+         id="path9083"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="csssccssscsccscssccscs" />
+      <g
+         transform="translate(0,24)"
+         id="g8814"
+         inkscape:label="cemetery-24"
+         inkscape:export-xdpi="90"
+         inkscape:export-ydpi="90">
+        <g
+           id="g8816" />
+        <rect
+           style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           id="rect8822"
+           width="24"
+           height="24.000017"
+           x="6.0000014"
+           y="1122.3622" />
+      </g>
+      <path
+         sodipodi:nodetypes="csssccssscsccscssccscs"
+         inkscape:connector-curvature="0"
+         id="path8846"
+         d="m 18.5,1150.3622 c 0,0 -2.5,1 -2.5,2 0,0.6667 0,1.3958 0,2 0,1 -2,1 -2,2 0,2.3333 0,9 0,9 l 9,0 c 0,0 0,-6.6667 0,-9 0,-1 -2,-1 -2,-2.1875 0,-0.6042 0,-1.2083 0,-1.8125 0,-1 -2.5,-2 -2.5,-2 z m -8.5,8 c 0,2.3333 0,7 0,7 l 2,0 c 0,0 0,-4.6667 0,-7 0,-1 -1,-1 -1,-1 0,0 -1,0 -1,1 z m 15,0 c 0,2.3333 0,7 0,7 l 2,0 c 0,0 0,-4.6667 0,-7 0,-1 -1,-1 -1,-1 0,0 -1,0 -1,1 z"
+         style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-railway-station.svg b/data/icons/maki/scalable_places_poi-railway-station.svg
new file mode 100644
index 0000000..b4a7ff2
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-railway-station.svg
@@ -0,0 +1,148 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="rail-heavy-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="16"
+     inkscape:cx="13.637834"
+     inkscape:cy="13.441797"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1304"
+     inkscape:window-height="903"
+     inkscape:window-x="217"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="2"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       color="#ff00ff"
+       opacity="0.1254902"
+       empcolor="#ff00ff"
+       empopacity="0.25098039" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="12.5,11.5"
+       id="guide4486" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="3,13.5"
+       id="guide3012" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="6.5,22"
+       id="guide3014" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="22,18"
+       id="guide3016" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="13.5,3"
+       id="guide3018" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <path
+       style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Sans;-inkscape-font-specification:Sans;opacity:0.3"
+       d="M 8.90625 1 C 8.6736869 1.017 8.4482242 1.11845 8.28125 1.28125 L 4.28125 5.28125 C 4.0975571 5.47105 3.9938957 5.736 4 6 L 4 13 L 4 16 C 4 17.0907 4.9092972 18 6 18 L 6.5625 18 L 4.28125 20.28125 C 3.7068834 20.836603 4.2012766 22.018832 5 22 L 9 22 C 9.335757 21.998806 9.6653811 21.815712 9.84375 21.53125 L 11.84375 18.53125 C 11.948219 18.364561 11.986217 18.190284 11.96875 18 L 13.03125 18 C 13.021226 18.190724 13.049585 18.36822 13.15625 18.53125 L 15.15625 21.53125 C 15.334619 21.815712 15.664243 21.998806 16 22 L 20 22 C 20.798723 22.018832 21.293117 20.836603 20.71875 20.28125 L 18.4375 18 L 19 18 C 20.090703 18 21 17.0907 21 16 L 21 13 L 21 6 C 21.0061 5.736 20.90244 5.47105 20.71875 5.28125 L 16.71875 1.28125 C 16.52898 1.09755 16.264063 0.9939 16 1 L 9 1 L 8.90625 1 z M 8 8 L 17 8 L 17 10 L 8 10 L 8 8 z "
+       transform="translate(0,1028.3622)"
+       id="path4598" />
+    <path
+       style="fill:#444444;fill-opacity:1;stroke:none"
+       d="M 9 2 L 5 6 L 5 13 L 5 16 C 5 16.554 5.446 17 6 17 L 19 17 C 19.554 17 20 16.554 20 16 L 20 13 L 20 6 L 16 2 L 9 2 z M 10 4 L 15 4 L 15 6 L 10 6 L 10 4 z M 7 7 L 18 7 L 18 11 L 7 11 L 7 7 z M 8 13 C 8.5522847 13 9 13.447715 9 14 C 9 14.552285 8.5522847 15 8 15 C 7.4477153 15 7 14.552285 7 14 C 7 13.447715 7.4477153 13 8 13 z M 17 13 C 17.552285 13 18 13.447715 18 14 C 18 14.552285 17.552285 15 17 15 C 16.447715 15 16 14.552285 16 14 C 16 13.447715 16.447715 13 17 13 z "
+       transform="translate(0,1028.3622)"
+       id="rect3226" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path3047"
+       d="m 11,1046.3622 -3,0 -3,3 4,0 z"
+       style="fill:#444444;fill-opacity:1;stroke:none" />
+    <path
+       style="fill:#444444;fill-opacity:1;stroke:none"
+       d="m 14,1046.3622 3,0 3,3 -4,0 z"
+       id="path3049"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-restaurant.svg b/data/icons/maki/scalable_places_poi-restaurant.svg
new file mode 100644
index 0000000..ea572f3
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-restaurant.svg
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="cafe-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="6.9146856"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="25"
+     inkscape:window-y="195"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-nodes="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="1px"
+       spacingy="1px" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="13,16"
+       id="guide4486" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       style="display:inline"
+       id="restaurant-24"
+       inkscape:label="restaurant-24"
+       transform="translate(-318,-21.999983)"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <g
+         transform="translate(0,-1)"
+         id="g16702">
+        <path
+           sodipodi:nodetypes="scsscccsscssscsccsccsccsccscsssscsssc"
+           inkscape:connector-curvature="0"
+           id="path5418"
+           transform="translate(-198,1027.3622)"
+           d="m 523.5,26 c -0.5,0 -0.5,0.5 -0.5,0.5 l 0,6 c 0,0.505147 0.5,1 1,1.5 0.5,0.5 0.52601,1.00584 0.5,1.5 l 0,1.5 -0.5,6.5 c -0.0383,0.4985 0.5,1.5 1.5,1.5 1,0 1.53846,-1 1.5,-1.5 l -0.5,-6.5 0,-1.5 c 0,-0.478617 0,-1 0.5,-1.5 0.46054,-0.460539 1,-0.978617 1,-1.5 l 0,-6 c 0,0 0,-0.5 -0.5,-0.5 -0.5,0 -0.5,0.5 -0.5,0.5 l 0,4.5 c 0,0 0,0.5 -0.5,0.5 C 526,31.5 526,31 526,31 l 0,-4.5 c 0,0 0,-0.5 -0.5,-0.5 -0.5,0 -0.5,0.5 -0.5,0.5 l 0,4.5 c 0,0 0,0.5 -0.5,0.5 C 524,31.5 524,31 524,31 l 0,-4.5 c 0,0 0,-0.5 -0.5,-0.5 z m 10.5,0 c -1,0 -2.86754,0.2351 -3.5,1.5 -0.5,1 -0.5,3.5 -0.5,4.5 l 0,5 c 0,0.5 0.5,1 1,1 l 1,0 0,6 c 0,0.5 0.5,1 1,1 0.5,0 1,-0.5 1,-1 z"
+           style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+        <path
+           style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           d="m 523.5,26 c -0.5,0 -0.5,0.5 -0.5,0.5 l 0,6 c 0,0.5 0.5,1 1,1.5 0.5,0.5 0.5,1 0.5,1.5 0,0 0,1 0,1.5 0,0.5 -0.5,6.5 -0.5,6.5 -0.0383,0.4985 0.5,1.5 1.5,1.5 1,0 1.53846,-1 1.5,-1.5 0,0 -0.5,-6 -0.5,-6.5 0,-0.5 0,-1.5 0,-1.5 0,-0.5 0,-1 0.5,-1.5 0.46054,-0.460539 1,-1 1,-1.5 l 0,-6 c 0,0 0,-0.5 -0.5,-0.5 -0.5,0 -0.5,0.5 -0.5,0.5 l 0,4.5 c 0,0 0,0.5 -0.5,0.5 C 526,31.5 526,31 526,31 l 0,-4.5 c 0,0 0,-0.5 -0.5,-0.5 -0.5,0 -0.5,0.5 -0.5,0.5 l 0,4.5 c 0,0 0,0.5 -0.5,0.5 C 524,31.5 524,31 524,31 l 0,-4.5 c 0,0 0,-0.5 -0.5,-0.5 z m 10.5,0 c -1,0 -2.86754,0.2351 -3.5,1.5 -0.5,1 -0.5,3.5 -0.5,4.5 l 0,5 c 0,0.5 0.5,1 1,1 l 1,0 0,6 c 0,0.5 0.5,1 1,1 0.5,0 1,-0.5 1,-1 z"
+           transform="translate(-198,1027.3622)"
+           id="path5304"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="scsscccssccsscsccsccsccsccscsssscsssc" />
+      </g>
+      <rect
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect22282-0"
+         width="24"
+         height="24.000017"
+         x="318"
+         y="1050.3622" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-school.svg b/data/icons/maki/scalable_places_poi-school.svg
new file mode 100644
index 0000000..2445ffe
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-school.svg
@@ -0,0 +1,142 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="college-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="6.9146856"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="56"
+     inkscape:window-y="20"
+     inkscape:window-maximized="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="13,16"
+       id="guide4486" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       style="display:inline"
+       id="school-24"
+       inkscape:label="school-24"
+       transform="translate(-240,-22)"
+       inkscape:export-xdpi="89.996864"
+       inkscape:export-ydpi="89.996864">
+      <g
+         id="g21618">
+        <path
+           sodipodi:nodetypes="ssssssssssscccccccscccscscscccccsscssccssscsssssss"
+           inkscape:connector-curvature="0"
+           style="opacity:0.3;color:#000000;fill:none;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+           d="m 254.75,1053.3622 c -0.9695,0 -1.75,0.7805 -1.75,1.75 0,0.9695 0.7805,1.75 1.75,1.75 0.9695,0 1.75,-0.7805 1.75,-1.75 0,-0.9695 -0.7805,-1.75 -1.75,-1.75 z m -8,2 c -0.9695,0 -1.75,0.7805 -1.75,1.75 0,0.9695 0.7805,1.75 1.75,1.75 0.9695,0 1.75,-0.7805 1.75,-1.75 0,-0.9695 -0.7805,-1.75 -1.75,-1.75 z m 9.25,2 c -0.37268,0 -0.98641,0.1345 -1.5,0.5 l -3.25,2.3125 c -0.8818,0.6275 -0.0727,1.7318 0.75,1.1875 l 2.125,-1.4062 c 0,0 1.40104,3.0042 0.875,4.4062 -0.0176,0.047 -0.0325,0.089 -0.0312,0.125 l -2.1875,5.8125 c -0.25094,0.6691 0.23179,1.0692 0.71875,1.0625 0.31932,0 0.62478,-0.193 0.78125,-0.5625 L 257,1064.3622 c 0,0 0.5,2.9998 2.5,3 1.20185,10e-5 2.08333,0 2.75,0 0.75,0 0.75,-0.75 0.75,-0.75 0,0 0,-0.75 -0.75,-0.75 -0.5,0 -1.75,-2e-4 -2.25,0 -1.06719,4e-4 -1,-1.6025 -1,-2.5 0,-1.5002 -1,-4 -1,-4 l 3,2 c 0.90639,0.6043 1.69152,-0.4657 0.8125,-1.125 l -3.3125,-2.375 c -0.60352,-0.4299 -0.79682,-0.4999 -1.5,-0.5 0,0 -0.5,0 -1,0 z m -10.5,2 c -0.5,0 -0.73648,0.2365 -1,0.5 l -2.125,2.125 c -0.2736,0.2736 -0.375,0.5185 -0.375,0.875 0,0.5 0.76433,0.7356 1.1875,0.3125 L 245,1061.3622 c 1,0 1.375,2.5 1,3.5 l -1.5,4 c -0.41546,1.1079 1.14426,1.4486 1.5,0.5 l 1.5,-4 c 0,0 0.5,1 1.5,1 l 3,0 c 1,0 1,-1.5 0,-1.5 l -2.5,0 c -0.5,0 -0.5,-1 -0.5,-1.5 0,-2 -1,-4 -2,-4 z"
+           id="path17460" />
+        <g
+           id="g16644"
+           transform="translate(0,-1)">
+          <g
+             id="g6646-2"
+             style="display:inline"
+             transform="translate(240,46)">
+            <path
+               id="rect6848-8"
+               d="M 86.75,51 C 85.7805,51 85,51.7805 85,52.75 c 0,0.9695 0.7805,1.75 1.75,1.75 0.9695,0 1.75,-0.7805 1.75,-1.75 C 88.5,51.7805 87.7195,51 86.75,51 z m -8,2 C 77.7805,53 77,53.7805 77,54.75 c 0,0.9695 0.7805,1.75 1.75,1.75 0.9695,0 1.75,-0.7805 1.75,-1.75 C 80.5,53.7805 79.7195,53 78.75,53 z M 88,55 c -0.372678,0 -0.986408,0.1345 -1.5,0.5 l -3.25,2.3125 C 82.368196,58.44 83.17732,59.5443 84,59 l 2.125,-1.40625 c 0,0 1.401043,3.00425 0.875,4.40625 -0.01757,0.04683 -0.03251,0.08933 -0.03125,0.125 l -2.1875,5.8125 C 84.530309,68.606628 85.013036,69.006672 85.5,69 c 0.31932,-0.0044 0.624779,-0.193035 0.78125,-0.5625 L 89,62 c 0,0 0.5,2.9998 2.5,3 1.20185,1e-4 2.083333,0 2.75,0 C 95,65 95,64.25 95,64.25 c 0,0 0,-0.75 -0.75,-0.75 -0.5,0 -1.75,-2e-4 -2.25,0 -1.067187,4e-4 -1,-1.6025 -1,-2.5 0,-1.5002 -1,-4 -1,-4 l 3,2 c 0.906394,0.6043 1.691522,-0.4657 0.8125,-1.125 L 90.5,55.5 C 89.896477,55.0701 89.703177,55.0001 89,55 c 0,0 -0.5,0 -1,0 z m -10.5,2 c -0.5,0 -0.736476,0.2365 -1,0.5 l -2.125,2.125 C 74.1014,59.8986 74,60.1435 74,60.5 c 0,0.5 0.764327,0.7356 1.1875,0.3125 L 77,59 c 1,0 1.375,2.5 1,3.5 l -1.5,4 c -0.415461,1.1079 1.144264,1.4486 1.5,0.5 l 1.5,-4 c 0,0 0.5,1 1.5,1 l 3,0 c 1,0 1,-1.5 0,-1.5 l -2.5,0 C 81,62.5 81,61.5 81,61 81,59 80,57 79,57 z"
+               style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+               inkscape:connector-curvature="0"
+               transform="translate(-72,957.3622)"
+               sodipodi:nodetypes="ssssssssssscccccccscccscscscccccsscssccssscsssssss" />
+          </g>
+        </g>
+      </g>
+      <rect
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect22282-3"
+         width="24"
+         height="24.000017"
+         x="240"
+         y="1050.3622" />
+    </g>
+  </g>
+</svg>
diff --git a/data/icons/maki/scalable_places_poi-town.svg b/data/icons/maki/scalable_places_poi-town.svg
new file mode 100644
index 0000000..acc92ae
--- /dev/null
+++ b/data/icons/maki/scalable_places_poi-town.svg
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="24"
+   height="24"
+   id="svg4460"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="village-24.svg">
+  <defs
+     id="defs4462" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="11.313708"
+     inkscape:cx="15.622727"
+     inkscape:cy="6.9146856"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     showguides="true"
+     inkscape:guide-bbox="true"
+     inkscape:window-width="1220"
+     inkscape:window-height="833"
+     inkscape:window-x="38"
+     inkscape:window-y="82"
+     inkscape:window-maximized="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-nodes="false">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4468"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="1px"
+       spacingy="1px" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="0,20"
+       id="guide4470" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="4,24"
+       id="guide4472" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="24,13"
+       id="guide4474" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="15,0"
+       id="guide4476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="23,20"
+       id="guide4478" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="20,23"
+       id="guide4480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="2,5"
+       id="guide4482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="7,2"
+       id="guide4484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="13,16"
+       id="guide4486" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="16,13"
+       id="guide4490" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata4465">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1"
+     transform="translate(0,-1028.3622)">
+    <g
+       transform="translate(-630,-262)"
+       style="display:inline"
+       id="town-24"
+       inkscape:label="#g9604">
+      <path
+         id="path9470"
+         d="m 638,1296.3622 -3,1.5 c -0.51116,0.2556 -1,1 -1,1.5 l 0,8 3,0 0,-3 2,0 0,3 3,0 0,-8 c 0,-0.5 -0.50201,-1.251 -1,-1.5 l -3,-1.5 z m 9,2 -3,1.5 c -0.51116,0.2556 -1,1 -1,1.5 l 0,8 3,0 0,-3 2,0 0,3 3,0 0,-8 c 0,-0.5 -0.50201,-1.251 -1,-1.5 l -3,-1.5 z m -12,2 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z m -4,2 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z m 5,0 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z m -4,2 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z"
+         style="opacity:0.3;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#ffffff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         inkscape:connector-curvature="0" />
+      <path
+         style="color:#000000;fill:#444444;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.46545455;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         d="m 638,1296.3622 -3,1.5 c -0.51116,0.2556 -1,1 -1,1.5 l 0,8 3,0 0,-3 2,0 0,3 3,0 0,-8 c 0,-0.5 -0.50201,-1.251 -1,-1.5 l -3,-1.5 z m 9,2 -3,1.5 c -0.51116,0.2556 -1,1 -1,1.5 l 0,8 3,0 0,-3 2,0 0,3 3,0 0,-8 c 0,-0.5 -0.50201,-1.251 -1,-1.5 l -3,-1.5 z m -12,2 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z m -4,2 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z m 5,0 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z m -4,2 2,0 0,1 -2,0 0,-1 z m 4,0 2,0 0,1 -2,0 0,-1 z"
+         id="path9357"
+         inkscape:connector-curvature="0" />
+      <rect
+         y="1290.3622"
+         x="630"
+         height="24.000017"
+         width="24"
+         id="rect7325-2-7-0"
+         style="opacity:0.5;color:#000000;fill:none;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </g>
+  </g>
+</svg>
diff --git a/src/geoMath.js b/src/geoMath.js
new file mode 100644
index 0000000..fa99a95
--- /dev/null
+++ b/src/geoMath.js
@@ -0,0 +1,60 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Jonas Danielsson <jonas@threetimestwo.org>
+ */
+
+const Champlain = imports.gi.Champlain;
+
+Math.sinH = function(arg) {
+    return (Math.exp(arg) - Math.exp(-arg)) / 2.0;
+}
+
+Math.sec = function(arg) {
+	return (1.0 / Math.cos(arg));
+}
+
+function tileToLatitude(zoom, y) {
+    let n = (1 << zoom) * 1.0;
+    let latRad = Math.atan(Math.sinH(Math.PI * (1 - 2 * y / n)));
+    return latRad * 180.0 / Math.PI;
+}
+
+function tileToLongitude(zoom, x) {
+    let n = (1 << zoom) * 1.0;
+    return x / n * 360.0 - 180.0;
+}
+
+function longitudeToTile(longitude, zoom) {
+	let n = (1 << zoom) * 1.0;
+	return Math.floor( (longitude + 180.0) / 360.0 * n);
+}
+
+function latitudeToTile(latitude, zoom) {
+	let n = (1 << zoom) * 1.0;
+	let latRad = latitude * Math.PI / 180.0;
+	return Math.floor( ( 1 - Math.log( Math.tan(latRad) + Math.sec(latRad) ) / Math.PI ) * 0.5 * n);
+}
+
+function bboxFromTile(tile) {
+	return new Champlain.BoundingBox({
+		top: tileToLatitude(tile.zoom_level, tile.y),
+		left: tileToLongitude(tile.zoom_level, tile.x),
+		bottom: tileToLatitude(tile.zoom_level, tile.y + 1),
+		right: tileToLongitude(tile.zoom_level, tile.x + 1)
+	});
+}
\ No newline at end of file
diff --git a/src/gnome-maps.js.gresource.xml b/src/gnome-maps.js.gresource.xml
index 37366f2..6dcaf70 100644
--- a/src/gnome-maps.js.gresource.xml
+++ b/src/gnome-maps.js.gresource.xml
@@ -5,15 +5,22 @@
     <file>config.js</file>
     <file>contextMenu.js</file>
     <file>geoclue.js</file>
+    <file>geoMath.js</file>
     <file>layersPopover.js</file>
     <file>main.js</file>
     <file>mainWindow.js</file>
     <file>mapLocation.js</file>
+    <file>mapOverlaySource.js</file>
     <file>mapView.js</file>
     <file>notification.js</file>
+    <file>overpass.js</file>
     <file>notificationManager.js</file>
     <file>path.js</file>
+    <file>place.js</file>
     <file>placeStore.js</file>
+    <file>poi.js</file>
+    <file>poiMapSource.js</file>
+    <file>poiRenderer.js</file>
     <file>searchPopup.js</file>
     <file>settings.js</file>
     <file>sidebar.js</file>
diff --git a/src/mapOverlaySource.js b/src/mapOverlaySource.js
new file mode 100644
index 0000000..2f164ec
--- /dev/null
+++ b/src/mapOverlaySource.js
@@ -0,0 +1,73 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Jonas Danielsson <jonas@threetimestwo.org>
+ */
+
+const Lang = imports.lang;
+
+const Champlain = imports.gi.Champlain;
+
+const _TILE_SIZE = 256;
+const _MAX_ZOOM_LEVEL = 0;
+const _MIN_ZOOM_LEVEL = 17;
+const _ID = 'maps-overlay';
+const _NAME = 'GNOME Maps Overlay';
+const _LICENSE = 'tbd';
+const _LICENSE_URI = 'tbd';
+
+const MapOverlaySource = new Lang.Class({
+	Name: 'MapOverlaySource',
+	Extends: Champlain.TileSource,
+	Abstract: true,
+
+	_init: function() {
+		this.parent();
+	},
+
+	vfunc_fill_tile: function(tile) {
+		tile.set_state(Champlain.State.DONE);
+	},
+
+	vfunc_get_tile_size: function() {
+		return _TILE_SIZE;
+	},
+
+	vfunc_get_max_zoom_level: function() {
+		return _MAX_ZOOM_LEVEL;
+	},
+
+	vfunc_get_min_zoom_level: function() {
+		return _MIN_ZOOM_LEVEL;
+	},
+
+	vfunc_get_id: function() {
+		return _ID;
+	},
+
+	vfunc_get_name: function() {
+		return _NAME;
+	},
+
+	vfunc_get_license: function() {
+		return _LICENSE;
+	},
+
+	vfunc_get_license_uri: function() {
+		return _LICENSE_URI;
+	}
+});
\ No newline at end of file
diff --git a/src/mapView.js b/src/mapView.js
index 3ca3a50..2dc1cdc 100644
--- a/src/mapView.js
+++ b/src/mapView.js
@@ -40,6 +40,7 @@ const Path = imports.path;
 const MapLocation = imports.mapLocation;
 const UserLocation = imports.userLocation;
 const Geoclue = imports.geoclue;
+const POIMapSource = imports.poiMapSource;
 const _ = imports.gettext.gettext;
 
 const MapType = {
@@ -80,6 +81,8 @@ const MapView = new Lang.Class({
         this._userLocationLayer.set_selection_mode(Champlain.SelectionMode.SINGLE);
         this.view.add_layer(this._userLocationLayer);
 
+        this._poiSource = POIMapSource.createCachedSource();
+
         // switching map type will set view min-zoom-level from map source
         this.view.connect('notify::min-zoom-level', (function() {
             if (this.view.min_zoom_level < MapMinZoom) {
@@ -90,7 +93,6 @@ const MapView = new Lang.Class({
         this._factory = Champlain.MapSourceFactory.dup_default();
         this.setMapType(MapType.STREET);
 
-
         this.geoclue = new Geoclue.Geoclue();
         this._updateUserLocation();
         this.geoclue.connect("location-changed",
@@ -103,6 +105,8 @@ const MapView = new Lang.Class({
 
         let source = this._factory.create_cached_source(mapType);
         this.view.set_map_source(source);
+
+        this.view.add_overlay_source(this._poiSource, 255);
     },
 
     geocodeSearch: function(searchString, searchCompleteCallback) {
diff --git a/src/org.gnome.Maps.service b/src/org.gnome.Maps.service
new file mode 100644
index 0000000..c73533a
--- /dev/null
+++ b/src/org.gnome.Maps.service
@@ -0,0 +1,3 @@
+[D-BUS Service]
+Name=org.gnome.Maps
+Exec=/opt/gnome/bin/gnome-maps --gapplication-service
diff --git a/src/overpass.js b/src/overpass.js
new file mode 100644
index 0000000..df8a633
--- /dev/null
+++ b/src/overpass.js
@@ -0,0 +1,173 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Rishi Raj Singh Jhelumi <rishiraj.devel@gmail.com>
+ */
+
+const Lang = imports.lang;
+
+const Signals = imports.signals;
+const Soup = imports.gi.Soup;
+const Format = imports.format;
+const Geocode = imports.gi.GeocodeGlib;
+
+const _DEFAULT_TIMEOUT = 180;
+const _DEFAULT_MAXSIZE = 536870912;
+const _DEFAULT_OUTPUT_FORMAT = 'json';
+const _DEFAULT_OUTPUT_COUNT = 1e6;
+const _DEFAULT_OUTPUT_INFO = 'body';
+const _DEFAULT_OUTPUT_SORT_ORDER = 'qt';
+
+const _UNKNOWN = 'Unknown';
+const BASE_URL = 'http://overpass-api.de/api/interpreter';
+
+const Overpass = new Lang.Class({
+    Name: 'Overpass',
+
+    _init: function(params) {
+
+        // maximum allowed runtime for the query in seconds
+        this.timeout = params.timeout || _DEFAULT_TIMEOUT;
+
+        //  maximum allowed memory for the query in bytes RAM on the server
+        this.maxsize = params.maxsize || _DEFAULT_MAXSIZE;
+
+        // output format : json or xml
+        this.outputFormat = params.outputFormat || _DEFAULT_OUTPUT_FORMAT;
+
+        // maximum number of results the output must contain
+        this.outputCount = params.outputCount || _DEFAULT_OUTPUT_COUNT;
+
+        // data output info must contain : ids, skel, body, meta
+        this.outputInfo = params.outputInfo || _DEFAULT_OUTPUT_INFO;
+
+        // data sort order : qt(fastest based on geography), ids, asc
+        this.outputSortOrder = params.outputSortOrder || _DEFAULT_OUTPUT_SORT_ORDER;
+
+        // Types of Tags we want to search : pub, school, hospital etc
+        this.searchTags = [];
+
+        // Area of Search
+        this.bbox = null;
+
+        // HTTP Session Variables
+        this._session = new Soup.Session();
+        this._session.use_thread_context = true;
+        Soup.Session.prototype.add_feature.call(this._session, new Soup.ProxyResolverDefault());
+    },
+
+    addSearchTag: function(key, value){
+
+        // The special phrase supported by OSM can be found at:
+        // http://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases/EN
+
+        this.searchTags.push({
+            'key': key,
+            'value': value
+        });
+    },
+
+    send: function(bbox, callback) {
+
+        let url = this.getQueryUrl(bbox);
+        let uri = new Soup.URI(url);
+        let request = new Soup.Message({method:'GET', uri:uri});
+
+        this._session.queue_message(request, (function(obj, message) {
+
+            if(message.status_code !== Soup.KnownStatusCode.OK){
+                callback([]);
+                return;
+            }
+
+            let pois = [];
+            try{
+                pois = JSON.parse(message.response_body.data)['elements'];
+            } catch(e) {
+                pois = [];
+            }
+
+            // for (var i = 0; i < pois.length; i++) {
+            //     pois[i] = convertJSONPlaceToGeocodePlace(pois[i]);
+            // }
+            callback(pois);
+        }).bind(this));
+
+    },
+
+    getQueryUrl: function(bbox) {
+        return Format.vprintf('%s?data=%s',
+            [
+                BASE_URL,
+                this._generateOverpassQuery(bbox)
+            ]);
+    },
+
+    _generateOverpassQuery: function(bbox) {
+        return Format.vprintf('%s%s%s%s;(%s);%s;',
+            [
+                this._getBoundingBoxString(bbox),
+                this._getKeyValueString('timeout', this.timeout),
+                this._getKeyValueString('out', this.outputFormat),
+                this._getKeyValueString('maxsize', this.maxsize),
+                this._getTagString(),
+                this._getOutputString()
+            ]);
+    },
+
+    _getBoundingBoxString: function(bbox) {
+        return Format.vprintf('[bbox:%s,%s,%s,%s]',
+            [
+                bbox.bottom,
+                bbox.left,
+                bbox.top,
+                bbox.right
+            ]);
+    },
+
+    _getKeyValueString: function(key, value) {
+        return Format.vprintf('[%s:%s]',
+            [
+                key,
+                value
+            ]);
+    },
+
+    _getTagString: function() {
+
+        let tagString = '';
+        this.searchTags.forEach(function(tag){
+            tagString += Format.vprintf('node[%s=%s];',
+                [
+                    tag.key,
+                    tag.value
+                ]);
+        });
+        return tagString;
+    },
+
+    _getOutputString: function() {
+        return Format.vprintf('out %s %s %s',
+            [
+                this.outputInfo,
+                this.outputSortOrder,
+                this.outputCount,
+            ]);
+    }
+
+});
+Signals.addSignalMethods(Overpass.prototype);
\ No newline at end of file
diff --git a/src/place.js b/src/place.js
new file mode 100644
index 0000000..20c8726
--- /dev/null
+++ b/src/place.js
@@ -0,0 +1,41 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Jonas Danielsson <jonas@threetimestwo.org>
+ */
+
+const Lang = imports.lang;
+
+const Signals = imports.signals;
+const Champlain = imports.gi.Champlain;
+const Geocode = imports.gi.GeocodeGlib;
+
+const Place = new Lang.Class({
+	Name: 'Place',
+	Extends: Geocode.Place,
+
+	_init: function(params) {
+		this.parent(params);
+	},
+
+	get_icon: function() {
+		let icon = this.parent();
+		return icon;
+	}
+	
+});
+Signals.addSignalMethods(Place.prototype);
\ No newline at end of file
diff --git a/src/poi.js b/src/poi.js
new file mode 100644
index 0000000..5754300
--- /dev/null
+++ b/src/poi.js
@@ -0,0 +1,156 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Jonas Danielsson <jonas@threetimestwo.org>
+ */
+
+const Lang = imports.lang;
+
+const Signals = imports.signals;
+const Champlain = imports.gi.Champlain;
+const Geocode = imports.gi.GeocodeGlib;
+const Gio = imports.gi.Gio;
+
+const Place = imports.place;
+
+const _UNKNOWN = 'Unknown';
+
+const _POI_DEFAULT_ICON = 'poi-marker';
+const poiTypes = {
+
+	'building' : {
+
+	},
+	'shop' : {
+
+	},
+	'amenity' : {
+		'school' : 'poi-school',
+		'place_of_worship' : 'poi-place-of-worship',
+		'bar' : 'poi-bar',
+		'pub' : 'poi-bar',
+		'restaurant' : 'poi-restaurant',
+	},
+	'natural' : {
+
+	},
+	'man_made' : {
+
+	},
+	'leisure' : {
+
+	},
+	'historic' : {
+
+	},
+	'aeroway' : {
+		'aerodrome' : 'poi-airport',
+	},
+	'place' : {
+		'house' : 'poi-building',
+		'building' : 'poi-building',
+		'residential' : 'poi-building',
+		'plaza' : 'poi-building',
+		'office' : 'poi-building',
+	},
+	'railway' : {
+		'station' : 'poi-railway-station',
+	},
+	'landuse' : {
+
+	},
+	'tourism' : {
+
+	},
+	'waterway' : {
+
+	},
+	'highway' : {
+		'bus_stop' : 'poi-bus-stop',
+	}
+};
+
+function getPOIIconFromTag(key, value) {
+	return poiTypes[key][value] || _POI_DEFAULT_ICON;
+}
+
+function getPOITypeFromPlaceJSON(place) {
+
+	let key = null;
+    let value = null;
+
+    let k = null;
+	for(k in poiTypes) {
+		if(k in place.tags)
+			key = k;
+	}
+    value = place.tags[key];
+
+    return getPOIIconFromTag(key, value);
+}
+
+function convertJSONPlaceToPOI(place) {
+
+    let name = _UNKNOWN;
+    if(place.tags)
+        name = place.tags.name || _UNKNOWN;
+
+    let location = new Geocode.Location({
+        latitude:    place.lat,
+        longitude:   place.lon,
+        accuracy:    0,
+        description: name
+    });
+
+    let poi = new POI({
+        name: name,
+        place_type: Geocode.PlaceType.POINT_OF_INTEREST,
+        location: location,
+        osm_id: place.id.toString(),
+        type: getPOITypeFromPlaceJSON(place)
+    });
+
+    return poi;
+}
+
+const POI = new Lang.Class({
+	Name: 'POI',
+	Extends: Place.Place,
+
+	_init: function(params) {
+
+		this._type = params.type;
+		delete params.type;
+
+		this.parent(params);
+	},
+
+	get_icon: function() {
+		
+		let icon = Gio.ThemedIcon.new(this._type);
+		return icon;
+	},
+
+	get place_type() {
+		return this._place_type;
+	},
+
+	set place_type(value) {
+		this._place_type = value;
+	}
+});
+Signals.addSignalMethods(POI.prototype);
\ No newline at end of file
diff --git a/src/poiMapSource.js b/src/poiMapSource.js
new file mode 100644
index 0000000..a56765b
--- /dev/null
+++ b/src/poiMapSource.js
@@ -0,0 +1,136 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Jonas Danielsson <jonas@threetimestwo.org>
+ */
+
+const Lang = imports.lang;
+
+const Signals = imports.signals;
+const Champlain = imports.gi.Champlain;
+
+const MapOverlaySource = imports.mapOverlaySource;
+const Utils = imports.utils;
+const Overpass = imports.overpass;
+const GeoMath = imports.geoMath;
+const POIRenderer = imports.poiRenderer;
+
+const _FILE_CACHE_NUM = 1e9;
+const _MEMORY_CACHE_NUM = 200;
+const _MIN_POI_DISPLAY_ZOOM_LEVEL = 16;
+
+function createCachedSource(){
+
+    let sourceChain = new Champlain.MapSourceChain();
+
+    let renderer = new POIRenderer.POIRenderer();
+    let fileCacheSource = Champlain.FileCache.new_full(_FILE_CACHE_NUM, null, renderer);
+    let memoryCacheSource = Champlain.MemoryCache.new_full(_MEMORY_CACHE_NUM, renderer);
+
+    let poiMapSource = new POIMapSource(renderer);
+
+    sourceChain.push(poiMapSource);
+    sourceChain.push(fileCacheSource);
+    sourceChain.push(memoryCacheSource);
+
+    return sourceChain;
+}
+
+const POIMapSource = new Lang.Class({
+    Name: 'POIMapSource',
+    Extends: MapOverlaySource.MapOverlaySource,
+
+    _init: function(renderer) {
+        this.parent();
+
+        this.renderer = renderer;
+
+        this.overpassQuery = new Overpass.Overpass({});
+        this.overpassQuery.addSearchTag("aeroway", "aerodrome");
+        this.overpassQuery.addSearchTag("railway", "junction");
+        this.overpassQuery.addSearchTag("railway", "switch");
+        this.overpassQuery.addSearchTag("railway", "spur");
+        this.overpassQuery.addSearchTag("railway", "station");
+        this.overpassQuery.addSearchTag("railway", "yard");
+        this.overpassQuery.addSearchTag("amenity", "atm");
+        this.overpassQuery.addSearchTag("amenity", "bank");
+        this.overpassQuery.addSearchTag("amenity", "pub");
+        this.overpassQuery.addSearchTag("amenity", "doctors");
+        this.overpassQuery.addSearchTag("amenity", "dormitory");
+        this.overpassQuery.addSearchTag("amenity", "embassy");
+        this.overpassQuery.addSearchTag("amenity", "emergency_phone");
+        this.overpassQuery.addSearchTag("amenity", "fast_food");
+        this.overpassQuery.addSearchTag("amenity", "restaurant");
+        this.overpassQuery.addSearchTag("amenity", "library");
+        this.overpassQuery.addSearchTag("amenity", "market");
+        this.overpassQuery.addSearchTag("amenity", "marketplace");
+        this.overpassQuery.addSearchTag("amenity", "police");
+        this.overpassQuery.addSearchTag("amenity", "post_box");
+        this.overpassQuery.addSearchTag("amenity", "post_office");
+        this.overpassQuery.addSearchTag("amenity", "public_market");
+        this.overpassQuery.addSearchTag("amenity", "sauna");
+        this.overpassQuery.addSearchTag("amenity", "school");
+        this.overpassQuery.addSearchTag("amenity", "shelter");
+        this.overpassQuery.addSearchTag("amenity", "shop");
+        this.overpassQuery.addSearchTag("amenity", "shopping");
+        this.overpassQuery.addSearchTag("amenity", "social_club");
+        this.overpassQuery.addSearchTag("amenity", "supermarket");
+        this.overpassQuery.addSearchTag("amenity", "swingerclub");
+        this.overpassQuery.addSearchTag("amenity", "taxi");
+        this.overpassQuery.addSearchTag("amenity", "telephone");
+        this.overpassQuery.addSearchTag("amenity", "theatre");
+        this.overpassQuery.addSearchTag("amenity", "toilets");
+        this.overpassQuery.addSearchTag("amenity", "townhall");
+    },
+
+    vfunc_fill_tile: function(tile) {
+
+        if (tile.get_state() === Champlain.State.DONE)
+            return;
+
+        if (tile.zoom_level < _MIN_POI_DISPLAY_ZOOM_LEVEL) {
+            tile.set_state(Champlain.State.DONE);
+            return;
+        }
+
+        let bbox = GeoMath.bboxFromTile(tile);
+        this.overpassQuery.send(bbox, (function(pois){
+            log("num :: " + pois.length);
+
+            let data = escape(JSON.stringify(pois));
+            this.renderer.set_data(data, data.length);
+            this.renderer.render(tile);
+
+        }).bind(this));
+
+        tile.connect('render-complete', (function(tile, data, size, error){
+
+            if(!error){
+                if(this.cache && tile.data){
+                   this.cache.store_tile(tile, tile.data, tile.data.length);
+                }
+                tile.display_content();
+                tile.set_state(Champlain.State.DONE);
+            }
+            else if(this.next_source){
+                this.next_source.fill_tile(tile);
+            }
+
+        }).bind(this));
+    }
+});
+Signals.addSignalMethods(POIMapSource.prototype);
\ No newline at end of file
diff --git a/src/poiRenderer.js b/src/poiRenderer.js
new file mode 100644
index 0000000..39e4ece
--- /dev/null
+++ b/src/poiRenderer.js
@@ -0,0 +1,109 @@
+/* -*- Mode: JS2; indent-tabs-mode: nil; js2-basic-offset: 4 -*- */
+/* vim: set et ts=4 sw=4: */
+/*
+ * GNOME Maps is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by the
+ * Free Software Foundation; either version 2 of the License, or (at your
+ * option) any later version.
+ *
+ * GNOME Maps is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ * for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with GNOME Maps; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Author: Jonas Danielsson <jonas@threetimestwo.org>
+ */
+
+const Lang = imports.lang;
+
+const Signals = imports.signals;
+const Champlain = imports.gi.Champlain;
+const Geocode = imports.gi.GeocodeGlib;
+const Clutter = imports.gi.Clutter;
+const Cogl = imports.gi.Cogl;
+const GLib = imports.gi.GLib;
+
+const Utils = imports.utils;
+const GeoMath = imports.geoMath;
+const Overpass = imports.overpass;
+const POI = imports.poi;
+const MapOverlaySource = imports.mapOverlaySource;
+
+const _POI_ICON_SIZE = 20;
+
+const POIRenderer = new Lang.Class({
+	Name: 'POIRenderer',
+    Extends: Champlain.Renderer,
+
+    _init: function() {
+    	this.parent();
+    	this._mapOverlaySource = new MapOverlaySource.MapOverlaySource();
+
+    	this._poiSelectedCallback = function(place) {
+            log(place.name);
+        };
+    },
+
+    vfunc_set_data: function(data, size) {
+    	this.data = data;
+    	this.size = size;
+    },
+
+    vfunc_render: function(tile) {
+
+    	tile.set_state(Champlain.State.LOADING);
+
+    	if (!this.data){
+    		tile.emit('render-complete', null, 0, true);
+            return;
+    	}
+
+        let places = JSON.parse(unescape(this.data));
+        places = places.map(POI.convertJSONPlaceToPOI);
+
+        let actor = new Clutter.Actor();
+
+        places.forEach((function(place) {
+            if (!place.icon)
+                return;
+
+            Utils.load_icon(place.get_icon(), _POI_ICON_SIZE, (function(pixbuf) {
+                let image = new Clutter.Image();
+                image.set_data(pixbuf.get_pixels(),
+                               Cogl.PixelFormat.RGBA_8888,
+                               pixbuf.get_width(),
+                               pixbuf.get_height(),
+                               pixbuf.get_rowstride());
+
+                let iconMarker = new Champlain.Marker();
+                iconMarker.connect('notify::selected', (function() {
+                    this._poiSelectedCallback(place);
+                }).bind(this));
+                iconMarker.set_content(image);
+                iconMarker.set_size(pixbuf.get_width(), pixbuf.get_height());
+                let tileLat = GeoMath.tileToLatitude(tile.zoom_level, tile.y);
+                let tileLon = GeoMath.tileToLongitude(tile.zoom_level, tile.x);
+                let location = place.location;
+                let x =
+                    this._mapOverlaySource.get_x(tile.zoom_level, location.longitude) -
+                    this._mapOverlaySource.get_x(tile.zoom_level, tileLon);
+                let y =
+                    this._mapOverlaySource.get_y(tile.zoom_level, location.latitude) -
+                    this._mapOverlaySource.get_y(tile.zoom_level, tileLat);
+                iconMarker.set_position(x, y);
+                actor.add_child(iconMarker);
+            }).bind(this));
+        }).bind(this));
+
+        tile.set_content(actor);
+        tile.set_fade_in(true);
+
+        tile.data = this.data; // Hack
+        tile.emit('render-complete', null, this.data.length, false);
+    }
+});
+Signals.addSignalMethods(POIRenderer.prototype);
\ No newline at end of file
