Only keep support for the special point geometry 'country:xx'.
|
+- php PHP unit tests
+- python Python unit tests
- +- scenes Geometry test data
+- testdb Base data for generating API test database
+ +- testdata Additional test data used by unit tests
```
## PHP Unit Tests (`test/php`)
context.nominatim.setup_api_db()
elif 'UNKNOWNDB' in context.tags:
context.nominatim.setup_unknown_db()
- context.scene = None
def after_scenario(context, scenario):
if 'DB' in context.tags:
from pathlib import Path
import os
+from steps.geometry_alias import ALIASES
+
class GeometryFactory:
- """ Provides functions to create geometries from scenes and data grids.
+ """ Provides functions to create geometries from coordinates and data grids.
"""
def __init__(self):
- defpath = Path(__file__) / '..' / '..' / '..' / 'scenes' / 'data'
- self.scene_path = os.environ.get('SCENE_PATH', defpath.resolve())
- self.scene_cache = {}
self.grid = {}
- def parse_geometry(self, geom, scene):
+ def parse_geometry(self, geom):
""" Create a WKT SQL term for the given geometry.
The function understands the following formats:
- [<scene>]:<name>
- Geometry from a scene. If the scene is omitted, use the
- default scene.
+ country:<country code>
+ Point geoemtry guaranteed to be in the given country
<P>
Point geometry
<P>,...,<P>
number. In the latter case it must refer to a point in
a previously defined grid.
"""
- if geom.find(':') >= 0:
- return "ST_SetSRID({}, 4326)".format(self.get_scene_geometry(scene, geom))
+ if geom.startswith('country:'):
+ ccode = geom[8:].upper()
+ assert ccode in ALIASES, "Geometry error: unknown country " + ccode
+ return "ST_SetSRID('POINT({} {})'::geometry, 4326)".format(*ALIASES[ccode])
if geom.find(',') < 0:
out = "POINT({})".format(self.mk_wkt_point(geom))
return "ST_SetSRID('{}'::geometry, 4326)".format(out)
+
def mk_wkt_point(self, point):
""" Parse a point description.
The point may either consist of 'x y' cooordinates or a number
assert pt is not None, "Scenario error: Point '{}' not found in grid".format(geom)
return "{} {}".format(*pt)
+
def mk_wkt_points(self, geom):
""" Parse a list of points.
The list must be a comma-separated list of points. Points
"""
return ','.join([self.mk_wkt_point(x) for x in geom.split(',')])
- def get_scene_geometry(self, default_scene, name):
- """ Load the geometry from a scene.
- """
- geoms = []
- for obj in name.split('+'):
- oname = obj.strip()
- if oname.startswith(':'):
- assert default_scene is not None, "Scenario error: You need to set a scene"
- defscene = self.load_scene(default_scene)
- wkt = defscene[oname[1:]]
- else:
- scene, obj = oname.split(':', 2)
- scene_geoms = self.load_scene(scene)
- wkt = scene_geoms[obj]
-
- geoms.append("'{}'::geometry".format(wkt))
-
- if len(geoms) == 1:
- return geoms[0]
-
- return 'ST_LineMerge(ST_Collect(ARRAY[{}]))'.format(','.join(geoms))
-
- def load_scene(self, name):
- """ Load a scene from a file.
- """
- if name in self.scene_cache:
- return self.scene_cache[name]
-
- scene = {}
- with open(Path(self.scene_path) / "{}.wkt".format(name), 'r') as fd:
- for line in fd:
- if line.strip():
- obj, wkt = line.split('|', 2)
- scene[obj.strip()] = wkt.strip()
- self.scene_cache[name] = scene
-
- return scene
def set_grid(self, lines, grid_step, origin=(0.0, 0.0)):
""" Replace the grid with one from the given lines.
x += grid_step
y += grid_step
+
def grid_node(self, nodeid):
""" Get the coordinates for the given grid node.
"""
self._add_hstore('address', 'country', value)
def _set_key_geometry(self, value):
- self.geometry = self.context.osm.parse_geometry(value, self.context.scene)
+ self.geometry = self.context.osm.parse_geometry(value)
assert self.geometry is not None, "Bad geometry: {}".format(value)
def _add_hstore(self, column, key, value):
return Almost(float(x)) == self.db_row['cx'] and Almost(float(y)) == self.db_row['cy']
def _has_geometry(self, expected):
- geom = self.context.osm.parse_geometry(expected, self.context.scene)
+ geom = self.context.osm.parse_geometry(expected)
with self.context.db.cursor() as cur:
cur.execute("""SELECT ST_Equals(ST_SnapToGrid({}, 0.00001, 0.00001),
ST_SnapToGrid(ST_SetSRID('{}'::geometry, 4326), 0.00001, 0.00001))""".format(
+++ /dev/null
-CXXFLAGS += -O3
-#CXXFLAGS += -g
-CXXFLAGS += -std=c++11 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
-CXXFLAGS += -I../../../../libosmium/include
-
-OS:=$(shell uname -s)
-ifeq ($(OS),Darwin)
-CXXFLAGS += -stdlib=libc++
-LDFLAGS += -stdlib=libc++
-endif
-
-CXXFLAGS_WARNINGS := -Wall -Wextra -pedantic -Wredundant-decls -Wdisabled-optimization -Wctor-dtor-privacy -Wnon-virtual-dtor -Woverloaded-virtual -Wsign-promo -Wold-style-cast
-
-LIB_EXPAT := -lexpat
-LIB_PBF := -pthread -lz -lprotobuf-lite -losmpbf
-LIB_GZIP := -lz
-LIB_BZIP2 := -lbz2
-
-LIB_IO := $(LIB_EXPAT) $(LIB_PBF) $(LIB_GZIP) $(LIB_BZIP2)
-
-all:
-
-osm2wkt: osm2wkt.cc
- $(CXX) $(CXXFLAGS) $(CXXFLAGS_WARNINGS) -o $@ $< $(LDFLAGS) $(LIB_IO)
-
-scenarios: osm2wkt
- ./make_scenes.sh
+++ /dev/null
-#!/bin/bash -e
-#
-# Regenerates wkts for scenarios.
-#
-
-datadir="$( cd "$( dirname "$0" )" && cd ../data && pwd )"
-
-if [ ! -d "$datadir" ]; then
- echo "Cannot find data dir.";
- exit -1;
-fi
-
-echo "Using datadir $datadir"
-cd $datadir
-
-# remove old wkts
-rm -f $datadir/*.wkt
-
-# create wkts from SQL scripts
-for fl in *.sql; do
- echo "Processing $fl.."
- cat $fl | psql -d nominatim -t -o ${fl/.sql/.wkt}
-done
-
-# create wkts from .osm files
-for fl in *.osm; do
- echo "Processing $fl.."
- ../bin/osm2wkt $fl
-done
+++ /dev/null
-
-// The code in this file is released into the Public Domain.
-
-#include <iostream>
-#include <fstream>
-#include <string>
-#include <unordered_map>
-
-#include <osmium/area/assembler.hpp>
-#include <osmium/area/multipolygon_manager.hpp>
-
-#include <osmium/geom/wkt.hpp>
-#include <osmium/handler.hpp>
-#include <osmium/handler/node_locations_for_ways.hpp>
-#include <osmium/io/any_input.hpp>
-#include <osmium/visitor.hpp>
-#include <osmium/object_pointer_collection.hpp>
-#include <osmium/index/map/sparse_mem_array.hpp>
-#include <osmium/osm/object_comparisons.hpp>
-
-typedef osmium::index::map::SparseMemArray<osmium::unsigned_object_id_type, osmium::Location> index_type;
-
-typedef osmium::handler::NodeLocationsForWays<index_type, index_type> location_handler_type;
-
-struct AbsoluteIdHandler : public osmium::handler::Handler {
-
- enum { BASE = 100000000 };
-
- void node(osmium::Node& o) {
- if (o.id() < 0)
- o.set_id(BASE-o.id());
- }
-
- void way(osmium::Way& o) {
- if (o.id() < 0)
- o.set_id(BASE-o.id());
-
- for (osmium::NodeRef &n: o.nodes())
- if (n.ref() < 0)
- n.set_ref(BASE-n.ref());
- }
-
- void relation(osmium::Relation& o) {
- if (o.id() < 0)
- o.set_id(BASE-o.id());
-
- for (auto &m : o.members())
- if (m.ref() < 0)
- m.set_ref(BASE-m.ref());
- }
-};
-
-
-class ExportToWKTHandler : public osmium::handler::Handler {
-
- osmium::geom::WKTFactory<> m_factory;
- std::unordered_map<std::string, std::ofstream> m_files;
-
-public:
-
- void node(const osmium::Node& node) {
- print_geometry(node.tags(), m_factory.create_point(node));
- }
-
- void way(const osmium::Way& way) {
- if (!way.nodes().empty()
- && (!way.is_closed() || !way.tags().get_value_by_key("area")))
- print_geometry(way.tags(), m_factory.create_linestring(way));
- }
-
- void area(const osmium::Area& area) {
- if (!area.from_way() || area.tags().get_value_by_key("area"))
- print_geometry(area.tags(), m_factory.create_multipolygon(area));
- }
-
- void close() {
- for (auto& fd : m_files)
- fd.second.close();
- }
-
-private:
- void print_geometry(const osmium::TagList& tags, const std::string& wkt) {
- const char* scenario = tags.get_value_by_key("test:section");
- const char* id = tags.get_value_by_key("test:id");
- if (scenario && id) {
- auto& fd = m_files[std::string(scenario)];
- if (!fd.is_open())
- fd.open(std::string(scenario) + ".wkt");
- fd << id << " | " << wkt << "\n";
- }
- }
-
-}; // class ExportToWKTHandler
-
-int main(int argc, char* argv[]) {
- if (argc != 2) {
- std::cerr << "Usage: " << argv[0] << " OSMFILE\n";
- exit(1);
- }
-
- osmium::io::File input_file{argv[1]};
-
- // need to sort the data first and make ids absolute
- std::cerr << "Read file...\n";
- osmium::io::Reader reader{input_file};
- std::vector<osmium::memory::Buffer> changes;
- osmium::ObjectPointerCollection objects;
- AbsoluteIdHandler abshandler;
- while (osmium::memory::Buffer buffer = reader.read()) {
- osmium::apply(buffer, abshandler, objects);
- changes.push_back(std::move(buffer));
- }
- reader.close();
-
- std::cerr << "Sort file...\n";
- objects.sort(osmium::object_order_type_id_version());
-
- osmium::area::Assembler::config_type assembler_config;
- osmium::area::MultipolygonManager<osmium::area::Assembler> mp_manager{assembler_config};
-
- std::cerr << "Pass 1...\n";
- index_type index_pos;
- index_type index_neg;
- location_handler_type location_handler(index_pos, index_neg);
- ExportToWKTHandler export_handler;
- osmium::apply(objects.begin(), objects.end(), location_handler,
- export_handler, mp_manager);
- mp_manager.prepare_for_lookup();
- std::cerr << "Pass 1 done\n";
-
-
- std::cerr << "Pass 2...\n";
- osmium::apply(objects.cbegin(), objects.cend(), mp_manager.handler([&export_handler](osmium::memory::Buffer&& buffer) {
- osmium::apply(buffer, export_handler);
- }));
-
- export_handler.close();
- std::cerr << "Pass 2 done\n";
-}
-
-
+++ /dev/null
-c1:N | POINT(73.8419358 60.0763887)
-c1:E | POINT(73.8393798 60.0488584)
-c0 | POINT(73.8679209 60.0588527)
-c2:N | POINT(73.896249 60.0631047)
-c2:S | POINT(73.8932671 60.0434346)
-c2:E | POINT(73.9162704 60.0471569)
-c1:W | POINT(73.8990179 60.055876)
-c2:W | POINT(73.8568453 60.0597032)
-w2N | LINESTRING(73.8836825 60.0612977,73.8880489 60.0598094,73.8953972 60.0601283,73.9033844 60.058959)
-w1W:2W | LINESTRING(73.8523722 60.0497092,73.85791 60.0520485,73.8617439 60.0573645,73.8706896 60.0554508)
-building:w2N | LINESTRING(73.8963618 60.0604955,73.8961463 60.0602249,73.8967091 60.0601132,73.8969246 60.0603838,73.8963618 60.0604955)
-b0 | MULTIPOLYGON(((73.8012539 60.0573645,73.8225532 60.0371591,73.8493903 60.035457,73.8843212 60.0356698,73.9049815 60.0358825,73.9192521 60.0356698,73.9260679 60.0514105,73.9216633 60.0591056,73.9141402 60.0722448,73.8804873 60.070332,73.8719676 60.0917916,73.8255351 60.0875433,73.8084956 60.0758576,73.8012539 60.0573645)))
-b1:N | MULTIPOLYGON(((73.8012539 60.0573645,73.8447045 60.0611915,73.8692843 60.0674706,73.8804873 60.070332,73.8719676 60.0917916,73.8255351 60.0875433,73.8084956 60.0758576,73.8012539 60.0573645)))
-b2:S | MULTIPOLYGON(((73.8694117 60.0507725,73.8843212 60.0356698,73.9049815 60.0358825,73.9075368 60.0523758,73.8830432 60.0517295,73.8694117 60.0507725)))
-b1:W | MULTIPOLYGON(((73.8012539 60.0573645,73.8225532 60.0371591,73.8493903 60.035457,73.8843212 60.0356698,73.8694117 60.0507725,73.8447045 60.0611915,73.8012539 60.0573645)))
-b1:E | MULTIPOLYGON(((73.8447045 60.0611915,73.8694117 60.0507725,73.8843212 60.0356698,73.9049815 60.0358825,73.9192521 60.0356698,73.9260679 60.0514105,73.9216633 60.0591056,73.9141402 60.0722448,73.8804873 60.070332,73.8692843 60.0674706,73.8447045 60.0611915)))
-b2:E | MULTIPOLYGON(((73.9049815 60.0358825,73.9192521 60.0356698,73.9260679 60.0514105,73.9216633 60.0591056,73.9075368 60.0523758,73.9049815 60.0358825)))
-b2:N | MULTIPOLYGON(((73.8692843 60.0674706,73.8830432 60.0517295,73.9075368 60.0523758,73.9216633 60.0591056,73.9141402 60.0722448,73.8804873 60.070332,73.8692843 60.0674706)))
-b2:W | MULTIPOLYGON(((73.8447045 60.0611915,73.8694117 60.0507725,73.8830432 60.0517295,73.8692843 60.0674706,73.8447045 60.0611915)))
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8'?>
-<osm version='0.6' upload='false' generator='JOSM'>
- <node id='-30473' action='modify' lat='60.07585759191' lon='73.80849562007' />
- <node id='-30475' action='modify' lat='60.05736451143' lon='73.80125385169' />
- <node id='-30477' action='modify' lat='60.0371590755' lon='73.82255317047' />
- <node id='-30479' action='modify' lat='60.03545700058' lon='73.84939031213' />
- <node id='-30481' action='modify' lat='60.03566976474' lon='73.88432119493' />
- <node id='-30483' action='modify' lat='60.03566976474' lon='73.91925207773' />
- <node id='-30485' action='modify' lat='60.05141051018' lon='73.92606785974' />
- <node id='-30487' action='modify' lat='60.07224481634' lon='73.91414024122' />
- <node id='-30489' action='modify' lat='60.07033201023' lon='73.88048731755' />
- <node id='-30491' action='modify' lat='60.09179158393' lon='73.87196759004' />
- <node id='-30493' action='modify' lat='60.08754327238' lon='73.8255350751' />
- <node id='-30495' action='modify' lat='60.06119151655' lon='73.844704462' />
- <node id='-30497' action='modify' lat='60.05077251777' lon='73.86941167178' />
- <node id='-30499' action='modify' lat='60.05172950176' lon='73.8830432358' />
- <node id='-30501' action='modify' lat='60.06747055357' lon='73.86928433032' />
- <node id='-30503' action='modify' lat='60.05910557298' lon='73.92166332136' />
- <node id='-30505' action='modify' lat='60.05237575233' lon='73.90753676249' />
- <node id='-30507' action='modify' lat='60.03588252753' lon='73.90498153415' />
- <node id='-30509' action='modify' lat='60.07638874281' lon='73.84193576355'>
- <tag k='test:id' v='c1:N' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30511' action='modify' lat='60.04885836023' lon='73.8393798453'>
- <tag k='test:id' v='c1:E' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30513' action='modify' lat='60.05885273763' lon='73.86792093246'>
- <tag k='test:id' v='c0' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30515' action='modify' lat='60.06310474639' lon='73.89624902644'>
- <tag k='test:id' v='c2:N' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30517' action='modify' lat='60.04343461246' lon='73.89326712181'>
- <tag k='test:id' v='c2:S' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30519' action='modify' lat='60.04715688821' lon='73.91627038609'>
- <tag k='test:id' v='c2:E' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30521' action='modify' lat='60.05587600549' lon='73.89901793788'>
- <tag k='test:id' v='c1:W' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30523' action='modify' lat='60.05970318321' lon='73.8568452867'>
- <tag k='test:id' v='c2:W' />
- <tag k='test:section' v='admin-areas' />
- </node>
- <node id='-30525' action='modify' lat='60.06129765646' lon='73.88368253486' />
- <node id='-30527' action='modify' lat='60.05980943422' lon='73.88804889521' />
- <node id='-30529' action='modify' lat='60.06012834464' lon='73.89539716019' />
- <node id='-30531' action='modify' lat='60.05895899137' lon='73.90338440473' />
- <node id='-30533' action='modify' lat='60.04970916969' lon='73.85237221676' />
- <node id='-30535' action='modify' lat='60.05204849025' lon='73.85791003964' />
- <node id='-30537' action='modify' lat='60.05736451143' lon='73.86174391702' />
- <node id='-30539' action='modify' lat='60.05545084244' lon='73.87068963091' />
- <node id='-30541' action='modify' lat='60.06049547301' lon='73.89636177639' />
- <node id='-30543' action='modify' lat='60.06022493568' lon='73.89614625694' />
- <node id='-30545' action='modify' lat='60.06011324975' lon='73.89670909505' />
- <node id='-30547' action='modify' lat='60.060383788' lon='73.89692461449' />
- <node id='100000' action='delete' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' version='1' changeset='1' lat='3.0' lon='2.0' />
- <node id='100001' action='delete' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' version='1' changeset='1' lat='3.5' lon='2.0' />
- <node id='100002' action='delete' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' version='1' changeset='1' lat='3.5' lon='2.5' />
- <node id='100003' action='delete' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' version='1' changeset='1' lat='3.0' lon='2.5' />
- <way id='-30553' action='modify'>
- <nd ref='-30489' />
- <nd ref='-30491' />
- <nd ref='-30493' />
- <nd ref='-30473' />
- <nd ref='-30475' />
- </way>
- <way id='-30555' action='modify'>
- <nd ref='-30495' />
- <nd ref='-30501' />
- </way>
- <way id='-30557' action='modify'>
- <nd ref='-30495' />
- <nd ref='-30497' />
- </way>
- <way id='-30559' action='modify'>
- <nd ref='-30497' />
- <nd ref='-30499' />
- </way>
- <way id='-30561' action='modify'>
- <nd ref='-30499' />
- <nd ref='-30505' />
- </way>
- <way id='-30563' action='modify'>
- <nd ref='-30505' />
- <nd ref='-30507' />
- </way>
- <way id='-30565' action='modify'>
- <nd ref='-30503' />
- <nd ref='-30487' />
- <nd ref='-30489' />
- </way>
- <way id='-30567' action='modify'>
- <nd ref='-30507' />
- <nd ref='-30483' />
- <nd ref='-30485' />
- <nd ref='-30503' />
- </way>
- <way id='-30569' action='modify'>
- <nd ref='-30481' />
- <nd ref='-30507' />
- </way>
- <way id='-30571' action='modify'>
- <nd ref='-30475' />
- <nd ref='-30477' />
- <nd ref='-30479' />
- <nd ref='-30481' />
- </way>
- <way id='-30573' action='modify'>
- <nd ref='-30475' />
- <nd ref='-30495' />
- </way>
- <way id='-30575' action='modify'>
- <nd ref='-30501' />
- <nd ref='-30489' />
- </way>
- <way id='-30577' action='modify'>
- <nd ref='-30497' />
- <nd ref='-30481' />
- </way>
- <way id='-30579' action='modify'>
- <nd ref='-30505' />
- <nd ref='-30503' />
- </way>
- <way id='-30581' action='modify'>
- <nd ref='-30499' />
- <nd ref='-30501' />
- </way>
- <way id='-30583' action='modify'>
- <nd ref='-30525' />
- <nd ref='-30527' />
- <nd ref='-30529' />
- <nd ref='-30531' />
- <tag k='test:id' v='w2N' />
- <tag k='test:section' v='admin-areas' />
- </way>
- <way id='-30585' action='modify'>
- <nd ref='-30533' />
- <nd ref='-30535' />
- <nd ref='-30537' />
- <nd ref='-30539' />
- <tag k='test:id' v='w1W:2W' />
- <tag k='test:section' v='admin-areas' />
- </way>
- <way id='-30587' action='modify'>
- <nd ref='-30541' />
- <nd ref='-30543' />
- <nd ref='-30545' />
- <nd ref='-30547' />
- <nd ref='-30541' />
- <tag k='test:id' v='building:w2N' />
- <tag k='test:section' v='admin-areas' />
- </way>
- <way id='100000' action='delete' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' version='1' changeset='1'>
- <tag k='note' v='test area, do not leave' />
- </way>
- <relation id='-30590' action='modify'>
- <member type='way' ref='-30553' role='' />
- <member type='way' ref='-30571' role='' />
- <member type='way' ref='-30569' role='' />
- <member type='way' ref='-30567' role='' />
- <member type='way' ref='-30565' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b0' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30592' action='modify'>
- <member type='way' ref='-30553' role='' />
- <member type='way' ref='-30573' role='' />
- <member type='way' ref='-30555' role='' />
- <member type='way' ref='-30575' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b1:N' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30594' action='modify'>
- <member type='way' ref='-30571' role='' />
- <member type='way' ref='-30573' role='' />
- <member type='way' ref='-30557' role='' />
- <member type='way' ref='-30577' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b1:W' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30596' action='modify'>
- <member type='way' ref='-30565' role='' />
- <member type='way' ref='-30567' role='' />
- <member type='way' ref='-30569' role='' />
- <member type='way' ref='-30577' role='' />
- <member type='way' ref='-30557' role='' />
- <member type='way' ref='-30555' role='' />
- <member type='way' ref='-30575' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b1:E' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30598' action='modify'>
- <member type='way' ref='-30565' role='' />
- <member type='way' ref='-30579' role='' />
- <member type='way' ref='-30561' role='' />
- <member type='way' ref='-30581' role='' />
- <member type='way' ref='-30575' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b2:N' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30600' action='modify'>
- <member type='way' ref='-30555' role='' />
- <member type='way' ref='-30557' role='' />
- <member type='way' ref='-30559' role='' />
- <member type='way' ref='-30581' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b2:W' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30602' action='modify'>
- <member type='way' ref='-30577' role='' />
- <member type='way' ref='-30559' role='' />
- <member type='way' ref='-30561' role='' />
- <member type='way' ref='-30563' role='' />
- <member type='way' ref='-30569' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b2:S' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
- <relation id='-30604' action='modify'>
- <member type='way' ref='-30579' role='' />
- <member type='way' ref='-30567' role='' />
- <member type='way' ref='-30563' role='' />
- <tag k='boundary' v='administrative' />
- <tag k='test:id' v='b2:E' />
- <tag k='test:section' v='admin-areas' />
- <tag k='type' v='multipolygon' />
- </relation>
-</osm>
+++ /dev/null
-n-edge-NS | POINT(1.0040019 2.000324)
-n-inner | POINT(1.0039385 2.0003548)
-n-outer | POINT(1.0039478 2.0004676)
-n-edge-WE | POINT(1.0039599 2.0002345)
-w-WE | LINESTRING(1.0031759 2.0002316,1.0040361 2.0002211,1.0042735 2.0002264)
-w-NS | LINESTRING(1.0040414 2.0001051,1.0040361 2.0002211,1.0040364 2.0006377)
-w-building | MULTIPOLYGON(((1.0039037 2.0002347,1.0039599 2.0002345,1.0040016 2.0002344,1.0040019 2.000324,1.0040023 2.0004386,1.0039043 2.0004389,1.0039037 2.0002347)))
+++ /dev/null
-n-south-w | POINT(1.0031633 2.001023)
-n-south-e | POINT(1.0043359 2.0010068)
-n-north-w | POINT(1.0031511 2.0012655)
-n-north-e | POINT(1.0043238 2.0012493)
-w-south | LINESTRING(1.0031633 2.001023,1.0036943 2.0010149,1.0040717 2.0010203,1.0043359 2.0010068)
-w-north | LINESTRING(1.0031511 2.0012655,1.0036822 2.0012574,1.0040596 2.0012628,1.0043238 2.0012493)
-w-building | LINESTRING(1.0036157 2.0011891,1.0036166 2.0010787,1.0038457 2.0010805,1.0038448 2.001191,1.0036157 2.0011891)
+++ /dev/null
-select country_code, st_astext(st_pointonsurface(st_collect(geometry))) from country_osm_grid group by country_code order by country_code
+++ /dev/null
- ad | POINT(1.58972361752509 42.54241545)
- ae | POINT(54.6158905029297 24.8243131637573)
- af | POINT(65.9026412963867 34.8470859527588)
- ag | POINT(-61.7243069800293 17.069)
- ai | POINT(-63.1057155298182 18.2546197)
- al | POINT(19.8494176864624 40.2123275624912)
- am | POINT(44.6422958374023 40.3782157897949)
- ao | POINT(16.2192406654358 -12.7701482772827)
- aq | POINT(44.999999975 -75.6569557189941)
- ar | POINT(-61.1075973510742 -34.3761558532715)
- as | POINT(-170.684700024275 -14.2930755)
- at | POINT(14.2574706077576 47.3654232025146)
- au | POINT(138.231559753418 -23.7206888198853)
- aw | POINT(-69.98255055 12.555)
- ax | POINT(19.9183956313477 59.81682435)
- az | POINT(48.385555267334 40.6163997650146)
- ba | POINT(17.1851491928101 44.2558269500732)
- bb | POINT(-59.53342165 13.19)
- bd | POINT(89.759895324707 24.3420524597168)
- be | POINT(4.90078139305115 50.3468225048828)
- bf | POINT(-0.567435041069984 11.9047117233276)
- bg | POINT(24.8061628341675 43.0985908508301)
- bh | POINT(50.5203291219829 25.94685735)
- bi | POINT(29.5456137866089 -2.99057915)
- bj | POINT(2.70062518119812 10.0279288291931)
- bl | POINT(-62.7934947763772 17.907)
- bm | POINT(-64.7740692745195 32.30199165)
- bn | POINT(114.521968608887 4.2863885)
- bo | POINT(-62.0247344970703 -17.7772369384766)
- bq | POINT(-63.1432235610045 17.566)
- br | POINT(-45.7706508636475 -9.5868501663208)
- bs | POINT(-77.6091675884277 23.8745)
- bt | POINT(90.0135078430176 27.281379699707)
- bv | POINT(3.35744155625 -54.4215)
- bw | POINT(23.5150556564331 -23.4839134216309)
- by | POINT(26.7725925445557 53.1588516235352)
- bz | POINT(-88.6348991394043 16.3395160487277)
- ca | POINT(-107.74817276001 67.1261215209961)
- cc | POINT(96.8442066294247 -12.0173443)
- cd | POINT(24.0954418182373 -1.67713665962219)
- cf | POINT(22.5870132446289 5.98438787460327)
- cg | POINT(15.7887516021729 0.403886616230011)
- ch | POINT(7.65705513954163 46.5744686126709)
- ci | POINT(-6.31190967559814 6.6278383731842)
- ck | POINT(-159.778351359569 -21.23349585)
- cl | POINT(-70.4179039001465 -53.7718944549561)
- cm | POINT(13.260226726532 5.94519567489624)
- cn | POINT(96.4428558349609 38.0426063537598)
- co | POINT(-72.5295104980469 2.45174860954285)
- cr | POINT(-83.8331413269043 9.935142993927)
- cu | POINT(-80.8167381286621 21.8885278701782)
- cv | POINT(-24.508106575 14.929)
- cw | POINT(-68.9640918594077 12.1845)
- cx | POINT(105.624119513558 -10.48417)
- cy | POINT(32.959223486499 35.37010195)
- cz | POINT(16.3209805488586 49.5069274902344)
- de | POINT(9.30716800689697 50.2128944396973)
- dj | POINT(42.969040422876 11.41542855)
- dk | POINT(9.18490123748779 55.9891662597656)
- dm | POINT(-61.0035801928854 15.6547055)
- do | POINT(-69.6285591125488 18.5884169089722)
- dz | POINT(4.24749487638474 25.797215461731)
- ec | POINT(-77.4583168029785 -0.982844322919846)
- ee | POINT(23.9428863525391 58.439525604248)
- eg | POINT(28.952935218811 28.1771860122681)
- eh | POINT(-13.6903142929077 25.0124177932739)
- er | POINT(39.0122375488281 14.960337638855)
- es | POINT(-2.59110307693481 38.7935485839844)
- et | POINT(38.6169757843018 7.71399855613708)
- fi | POINT(26.8979873657227 63.5619449615479)
- fj | POINT(177.918533325195 -17.7423753738403)
- fk | POINT(-58.9904479980469 -51.3450936007813)
- fm | POINT(151.9535889125 8.5045)
- fo | POINT(-6.60483694084778 62.10000995)
- fr | POINT(0.284105718135834 47.5104522705078)
- ga | POINT(10.8107047080994 -0.0742915570735931)
- gb | POINT(-0.928231082856655 52.0161876678467)
- gd | POINT(-61.6452430375 12.191)
- ge | POINT(44.1666488647461 42.0038585662842)
- gf | POINT(-53.4652481079102 3.56188893318176)
- gg | POINT(-2.50580395030125 49.5854381)
- gh | POINT(-0.463488027453423 7.16051578521729)
- gi | POINT(-5.32053155848457 36.1106663)
- gl | POINT(-33.8551120758057 74.6635551452637)
- gm | POINT(-16.4096023535368 13.25)
- gn | POINT(-13.839409828186 10.9629158973694)
- gp | POINT(-61.6871265247053 16.23049055)
- gq | POINT(10.2397356033325 1.43119311332703)
- gr | POINT(23.1785039901733 39.0620670318604)
- gs | POINT(-36.4943086948773 -54.4306784)
- gt | POINT(-90.7436828613281 15.2042865753174)
- gu | POINT(144.733626445767 13.444138)
- gw | POINT(-14.8352527618408 11.9248690605164)
- gy | POINT(-58.4516773223877 5.73698806762695)
- hk | POINT(114.18577775 22.3492361)
- hm | POINT(73.6823082266602 -53.22105985)
- hn | POINT(-86.9541435241699 15.2382001876831)
- hr | POINT(17.499662399292 45.5268955230713)
- ht | POINT(-73.5192565917969 18.3249206691162)
- hu | POINT(20.3536291122437 47.5172100067139)
- id | POINT(123.345050811768 -0.837919592857361)
- ie | POINT(-9.00520038604736 52.8772506713867)
- il | POINT(35.4631499949707 32.86165655)
- im | POINT(-4.86740773691101 54.023)
- in | POINT(88.6762087020508 27.86155515)
- io | POINT(71.4274391359073 -6.14349685)
- iq | POINT(42.5810985565186 34.2610359191895)
- ir | POINT(56.0935573577881 30.4675178527832)
- is | POINT(-17.5178508758545 64.7168769836426)
- it | POINT(10.4263944625854 44.8790493011475)
- je | POINT(-2.19261599848299 49.1245833)
- jm | POINT(-76.8402003547852 18.3935)
- jo | POINT(36.5555210113525 30.7574186325073)
- jp | POINT(138.725311279297 35.9209995269775)
- ke | POINT(36.9060287475586 1.08512867614627)
- kg | POINT(76.1557197570801 41.6649742126465)
- kh | POINT(104.319019317627 12.9555516242981)
- ki | POINT(173.633537933333 0.139)
- km | POINT(44.3147485207764 -12.241)
- kn | POINT(-62.6937987175 17.2555)
- kp | POINT(126.655757904053 39.6457576751709)
- kr | POINT(127.277404785156 36.4138870239258)
- kw | POINT(47.3068407840576 29.6918055)
- ky | POINT(-81.0745526670982 19.2994923579778)
- kz | POINT(72.008113861084 49.8885555267334)
- la | POINT(102.443916320801 19.8160953521729)
- lb | POINT(35.4846443715483 33.4176673878926)
- lc | POINT(-60.978944125 13.891)
- li | POINT(9.54693948514429 47.15934115)
- lk | POINT(80.3852043151855 8.41649961471558)
- lr | POINT(-11.169605255127 4.04122126102448)
- ls | POINT(28.6698419546997 -29.9453849)
- lt | POINT(24.5173501968384 55.4929389953613)
- lu | POINT(6.08649672997471 49.81533445)
- lv | POINT(23.5103368759155 56.6714401245117)
- ly | POINT(15.3684158325195 28.1217727661133)
- ma | POINT(-4.0306156873703 33.2169628143311)
- mc | POINT(7.47743150426578 43.62917385)
- md | POINT(29.6172503477783 46.6651745)
- me | POINT(19.7229134314941 43.02441345)
- mf | POINT(-63.0666651534257 18.0810209)
- mg | POINT(45.8637886047363 -20.5024528503418)
- mh | POINT(171.949820566667 5.983)
- mk | POINT(21.421085357666 41.0898007597656)
- ml | POINT(-1.93310506641865 16.4699301719666)
- mm | POINT(95.5462455749512 21.0962018966675)
- mn | POINT(99.8113822937012 48.1861572265625)
- mo | POINT(113.564416766761 22.16209625)
- mp | POINT(145.213452483189 14.1490205)
- mq | POINT(-60.8112834227783 14.43706925)
- mr | POINT(-9.42324566841125 22.5925149917603)
- ms | POINT(-62.1945521583333 16.745)
- mt | POINT(14.3836306158583 35.9446731)
- mu | POINT(57.551211475 -20.41)
- mv | POINT(73.3929214477539 4.19375014305115)
- mw | POINT(33.9572296142578 -12.2821822166443)
- mx | POINT(-105.892219543457 25.8682699203491)
- my | POINT(112.711540222168 2.10098683834076)
- mz | POINT(37.5868968963623 -13.7268223762512)
- na | POINT(16.6856970787048 -21.4657220840454)
- nc | POINT(164.953224182129 -20.3888988494873)
- ne | POINT(10.060417175293 19.0827360153198)
- nf | POINT(167.95718166875 -29.0645)
- ng | POINT(10.1778125762939 10.1780409812927)
- ni | POINT(-85.8797492980957 13.2171587944031)
- nl | POINT(-68.5706209441406 12.041)
- no | POINT(23.1155624389648 70.0993499755859)
- np | POINT(83.3625984191895 28.1310758590698)
- nr | POINT(166.934792270833 -0.5275)
- nu | POINT(-169.848737911905 -19.05305275)
- nz | POINT(167.972099304199 -45.1305675506592)
- om | POINT(56.8605518341064 20.4741315841675)
- pa | POINT(-79.4016036987305 8.80656003952026)
- pe | POINT(-78.6654052734375 -7.54711985588074)
- pf | POINT(-145.057191213086 -16.7086236)
- pg | POINT(146.646003723145 -7.37427568435669)
- ph | POINT(121.483592987061 15.0996527671814)
- pk | POINT(72.1134796142578 31.1462965011597)
- pl | POINT(17.8813629150391 52.771821975708)
- pm | POINT(-56.1951589074841 46.7832469)
- pn | POINT(-130.106425528029 -25.0695595)
- pr | POINT(-65.8875553967285 18.3716905)
- ps | POINT(35.3980153741943 32.24773475)
- pt | POINT(-8.45743942260742 40.1115436553955)
- pw | POINT(134.496454875 7.3245)
- py | POINT(-59.5178718566895 -22.4128150939941)
- qa | POINT(51.4990362304443 24.9981677)
- re | POINT(55.7734550547607 -21.3638828)
- ro | POINT(26.3763284683228 45.3612003326416)
- rs | POINT(20.4037199020386 44.5641384124756)
- ru | POINT(116.440608978271 59.0678024291992)
- rw | POINT(29.5788261333252 -1.6240443)
- sa | POINT(47.7316932678223 22.4379062652588)
- sb | POINT(164.638946533203 -10.2360653877258)
- sc | POINT(46.3656697 -9.454)
- sd | POINT(28.1472072601318 14.5642309188843)
- se | POINT(15.6866798400879 60.3556804656982)
- sg | POINT(103.84187219299 1.304)
- sh | POINT(-12.2815573611979 -37.11546755)
- si | POINT(14.0473856628607 46.390855)
- sj | POINT(15.2755260467529 79.2336540222168)
- sk | POINT(20.416033744812 48.869701385498)
- sl | POINT(-11.4777312278748 8.78156280517578)
- sm | POINT(12.4606268797657 43.9427969)
- sn | POINT(-15.3711128234863 14.9947791099548)
- so | POINT(46.9338359832764 9.34094429016113)
- sr | POINT(-55.4286479949951 4.5698549747467)
- ss | POINT(28.1357345581055 8.50933408737183)
- st | POINT(6.61025854583333 0.2215)
- sv | POINT(-89.3666543301004 13.4307287)
- sx | POINT(-63.1539330807882 17.9345)
- sy | POINT(38.1551322937012 35.3422107696533)
- sz | POINT(31.782634398523 -26.14244365)
- tc | POINT(-71.325541342334 21.35)
- td | POINT(17.4209251403809 13.4622311592102)
- tf | POINT(137.5 -67.5)
- tg | POINT(1.0698350071907 7.87677597999573)
- th | POINT(102.008777618408 16.4231028556824)
- tj | POINT(71.9134941101074 39.0152739312988)
- tk | POINT(-171.826039878679 -9.209903)
- tl | POINT(126.225208282471 -8.72636747360229)
- tm | POINT(57.7160358428955 39.9253444671631)
- tn | POINT(9.04958724975586 34.8419933319092)
- to | POINT(-176.993202209473 -23.1110429763794)
- tr | POINT(32.8200283050537 39.8635063171387)
- tt | POINT(-60.70793924375 11.1385)
- tv | POINT(178.774993896484 -9.41685771942139)
- tw | POINT(120.300746917725 23.1700229644775)
- tz | POINT(33.5389289855957 -5.01840615272522)
- ua | POINT(33.4433536529541 49.3061904907227)
- ug | POINT(32.9652328491211 2.08584922552109)
- um | POINT(-169.509930872296 16.74605815)
- us | POINT(-116.395355224609 40.7137908935547)
- uy | POINT(-56.4650554656982 -33.6265888214111)
- uz | POINT(61.3552989959717 42.9610729217529)
- va | POINT(12.3319785703086 42.0493197)
- vc | POINT(-61.0990541737305 13.316)
- ve | POINT(-64.8832321166992 7.69849991798401)
- vg | POINT(-64.6247911940199 18.419)
- vi | POINT(-64.8895090795187 18.3226325)
- vn | POINT(104.201791331787 10.27644235)
- vu | POINT(167.319198608398 -15.8868751525879)
- wf | POINT(-176.207816222208 -13.28535775)
- ws | POINT(-172.109667323427 -13.850938)
- ye | POINT(45.945629119873 16.1633830070496)
- yt | POINT(44.9377459760742 -12.6088246)
- za | POINT(23.1948881149292 -30.4327602386475)
- zm | POINT(26.3861808776855 -14.3996663093567)
- zw | POINT(30.1241998672485 -19.8690795898438)
-
+++ /dev/null
-n-middle-w | POINT(1.0065316 2.0003381)
-n-middle-e | POINT(1.007236 2.0003408)
-w-south | LINESTRING(1.0065324 2.0001892,1.006676 2.0002786,1.0068195 2.0002786,1.0069171 2.0002515,1.0070417 2.0001892,1.0072422 2.000173)
-w-middle | LINESTRING(1.0065316 2.0003381,1.006686 2.0004248,1.0069 2.0004167,1.007236 2.0003408)
-w-north | LINESTRING(1.0065397 2.000418,1.0066833 2.0005074,1.0068269 2.0005074,1.0069244 2.0004803,1.007049 2.000418,1.0072495 2.0004018)
+++ /dev/null
-n-N-unglued | POINT(1.004922 2.0005155)
-n-S-unglued | POINT(1.0046259 2.0002949)
-n-NE | POINT(1.0050661 2.0006118)
-n-SE | POINT(1.0051339 2.0003349)
-n-NW | POINT(1.0047583 2.0004087)
-n-SW | POINT(1.0047275 2.0003564)
-w-north | LINESTRING(1.0044996 2.0004302,1.0046259 2.0003841,1.0047583 2.0004087,1.004922 2.0005155,1.0050661 2.0006118,1.0053155 2.0006241)
-w-south | LINESTRING(1.0045243 2.0002241,1.0046259 2.0002949,1.0047275 2.0003564,1.004826 2.0002918,1.0049368 2.0002641,1.0051339 2.0003349,1.0053278 2.0003687)
+++ /dev/null
-0.0001 | MULTIPOLYGON(((0 0,0.001 0,0.001 0.1,0 0.1,0 0)))
-0.0005 | MULTIPOLYGON(((0 0,0.005 0,0.005 0.1,0 0.1,0 0)))
-0.001 | MULTIPOLYGON(((0 0,0.01 0,0.01 0.1,0 0.1,0 0)))
-0.005 | MULTIPOLYGON(((0 0,0.05 0,0.05 0.1,0 0.1,0 0)))
-0.01 | MULTIPOLYGON(((0 0,0.1 0,0.1 0.1,0 0.1,0 0)))
-0.05 | MULTIPOLYGON(((0 0,0.5 0,0.5 0.1,0 0.1,0 0)))
-0.1 | MULTIPOLYGON(((0 0,0.1 0,0.1 1,0 1,0 0)))
-0.5 | MULTIPOLYGON(((0 0,0.5 0,0.5 1,0 1,0 0)))
-1.0 | MULTIPOLYGON(((0 0,1 0,1 1,0 1,0 0)))
-2.0 | MULTIPOLYGON(((0 0,2 0,2 1,0 1,0 0)))
-5.0 | MULTIPOLYGON(((0 0,5 0,5 1,0 1,0 0)))
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8'?>
-<osm version='0.6' upload='true' generator='JOSM'>
- <node id='-238' action='modify' visible='true' lat='-0.00661880152' lon='0.00356249245'>
- <tag k='test:id' v='inner-C' />
- <tag k='test:section' v='way-area-with-center' />
- </node>
- <node id='-231' action='modify' visible='true' lat='-0.00600066098' lon='0.0041244384'>
- <tag k='test:id' v='outer-C' />
- <tag k='test:section' v='way-area-with-center' />
- </node>
- <node id='-225' action='modify' visible='true' lat='-0.00236518426' lon='0.00188464186'>
- <tag k='test:id' v='inner-N' />
- <tag k='test:section' v='way-area-with-center' />
- </node>
- <node id='-166' action='modify' visible='true' lat='-0.00951758843' lon='0.00485156509'>
- <tag k='test:id' v='inner-S' />
- <tag k='test:section' v='way-area-with-center' />
- </node>
- <node id='-137' action='modify' visible='true' lat='-0.00215326117' lon='0.00501050741' />
- <node id='-135' action='modify' visible='true' lat='-0.00257710735' lon='0.00644098825' />
- <node id='-133' action='modify' visible='true' lat='-0.00400758819' lon='0.00750060369' />
- <node id='-131' action='modify' visible='true' lat='-0.00591489597' lon='0.00336810348' />
- <node id='-129' action='modify' visible='true' lat='-0.00766326144' lon='0.00516944972' />
- <node id='-127' action='modify' visible='true' lat='-0.00649768446' lon='0.00612310362' />
- <node id='-125' action='modify' visible='true' lat='-0.00496124208' lon='0.00686483443' />
- <node id='-123' action='modify' visible='true' lat='-0.00665662678' lon='0.00771252678' />
- <node id='-121' action='modify' visible='true' lat='-0.0099414346' lon='0.0065469498' />
- <node id='-119' action='modify' visible='true' lat='-0.01094806925' lon='0.0038979112' />
- <node id='-117' action='modify' visible='true' lat='-0.01057720386' lon='0.00267935344' />
- <node id='-115' action='modify' visible='true' lat='-0.00999441537' lon='0.00220252649' />
- <node id='-113' action='modify' visible='true' lat='-0.00919970381' lon='0.00262637267' />
- <node id='-111' action='modify' visible='true' lat='-0.00803412684' lon='0.00262637267' />
- <node id='-109' action='modify' visible='true' lat='-0.00655066523' lon='0.00193762263' />
- <node id='-107' action='modify' visible='true' lat='-0.00729239604' lon='0.00103694951' />
- <node id='-105' action='modify' visible='true' lat='-0.00607383829' lon='0.00050714179' />
- <node id='-103' action='modify' visible='true' lat='-0.00564999211' lon='0.00177868032' />
- <node id='-101' action='modify' visible='true' lat='-0.00421951128' lon='0.00050714179' />
- <node id='-99' action='modify' visible='true' lat='-0.00257710735' lon='0.00056012256' />
- <node id='-98' action='modify' visible='true' lat='-0.00151749191' lon='0.00130185337' />
- <node id='100' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='101' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.0' />
- <node id='102' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.001' />
- <node id='103' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.001' />
- <node id='200' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='201' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.0' />
- <node id='202' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.005' />
- <node id='203' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.005' />
- <node id='300' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='301' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.0' />
- <node id='302' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.01' />
- <node id='303' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.01' />
- <node id='400' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='401' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.0' />
- <node id='402' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.05' />
- <node id='403' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.05' />
- <node id='500' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='501' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.0' />
- <node id='502' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.1' />
- <node id='503' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.1' />
- <node id='600' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='601' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.0' />
- <node id='602' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.1' lon='0.5' />
- <node id='603' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.5' />
- <node id='700' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='701' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.0' />
- <node id='702' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.1' />
- <node id='703' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.1' />
- <node id='800' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='801' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.0' />
- <node id='802' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.5' />
- <node id='803' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.5' />
- <node id='900' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='901' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.0' />
- <node id='902' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='1.0' />
- <node id='903' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='1.0' />
- <node id='1000' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='1001' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.0' />
- <node id='1002' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='2.0' />
- <node id='1003' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='2.0' />
- <node id='1100' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='0.0' />
- <node id='1101' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='0.0' />
- <node id='1102' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='1.0' lon='5.0' />
- <node id='1103' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='0.0' lon='5.0' />
- <way id='-100' action='modify' visible='true'>
- <nd ref='-98' />
- <nd ref='-99' />
- <nd ref='-101' />
- <nd ref='-103' />
- <nd ref='-105' />
- <nd ref='-107' />
- <nd ref='-109' />
- <nd ref='-111' />
- <nd ref='-113' />
- <nd ref='-115' />
- <nd ref='-117' />
- <nd ref='-119' />
- <nd ref='-121' />
- <nd ref='-123' />
- <nd ref='-125' />
- <nd ref='-127' />
- <nd ref='-129' />
- <nd ref='-131' />
- <nd ref='-133' />
- <nd ref='-135' />
- <nd ref='-137' />
- <nd ref='-98' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='area' />
- <tag k='test:section' v='way-area-with-center' />
- </way>
- <way id='100' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='100' />
- <nd ref='101' />
- <nd ref='102' />
- <nd ref='103' />
- <nd ref='100' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.0001' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='200' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='200' />
- <nd ref='201' />
- <nd ref='202' />
- <nd ref='203' />
- <nd ref='200' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.0005' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='300' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='300' />
- <nd ref='301' />
- <nd ref='302' />
- <nd ref='303' />
- <nd ref='300' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.001' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='400' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='400' />
- <nd ref='401' />
- <nd ref='402' />
- <nd ref='403' />
- <nd ref='400' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.005' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='500' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='500' />
- <nd ref='501' />
- <nd ref='502' />
- <nd ref='503' />
- <nd ref='500' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.01' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='600' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='600' />
- <nd ref='601' />
- <nd ref='602' />
- <nd ref='603' />
- <nd ref='600' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.05' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='700' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='700' />
- <nd ref='701' />
- <nd ref='702' />
- <nd ref='703' />
- <nd ref='700' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.1' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='800' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='800' />
- <nd ref='801' />
- <nd ref='802' />
- <nd ref='803' />
- <nd ref='800' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='0.5' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='900' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='900' />
- <nd ref='901' />
- <nd ref='902' />
- <nd ref='903' />
- <nd ref='900' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='1.0' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='1000' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='1000' />
- <nd ref='1001' />
- <nd ref='1002' />
- <nd ref='1003' />
- <nd ref='1000' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='2.0' />
- <tag k='test:section' v='poly-area' />
- </way>
- <way id='1100' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='1100' />
- <nd ref='1101' />
- <nd ref='1102' />
- <nd ref='1103' />
- <nd ref='1100' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='5.0' />
- <tag k='test:section' v='poly-area' />
- </way>
-</osm>
+++ /dev/null
-n-main-east | POINT(1.0024481 2.0003542)
-n-main-west | POINT(1.001552 2.0002662)
-n-alley | POINT(1.0019235 2.0005463)
-n-corner | POINT(1.0019235 2.0003542)
-w-alley | LINESTRING(1.0019594 2.0003086,1.0019594 2.0005756)
-w-main | LINESTRING(1.0013435 2.0003118,1.0016759 2.0003053,1.0019594 2.0003086,1.0021255 2.0003151,1.0023699 2.0003118,1.0026078 2.0002988)
+++ /dev/null
-p-N2 | POINT(1.0003904 2.0003399)
-p-S1 | POINT(1.0008104 2.0002927)
-p-N1 | POINT(1.0005321 2.0005288)
-p-S2 | POINT(1.0006398 2.0001064)
-w-north | LINESTRING(1.0001174 2.0004055,1.0004298 2.0003976,1.0006608 2.0004579,1.0010624 2.0005419)
-w-south | LINESTRING(1.0001384 2.0001903,1.0007212 2.0001982,1.0010677 2.0002192)
+++ /dev/null
-<?xml version='1.0' encoding='UTF-8'?>
-<osm version='0.6' upload='false' generator='JOSM'>
- <node id='-11' action='modify' visible='true' lat='2.0006515863' lon='1.0057464449'>
- <tag k='name' v='split-road' />
- </node>
- <node id='-13' action='modify' visible='true' lat='2.00053508276' lon='1.00574909433' />
- <node id='-15' action='modify' visible='true' lat='2.00054302619' lon='1.00589746199' />
- <node id='-17' action='modify' visible='true' lat='2.00054302619' lon='1.0060511285' />
- <node id='-19' action='modify' visible='true' lat='2.00053243496' lon='1.00613061118' />
- <node id='-21' action='modify' visible='true' lat='2.00052449153' lon='1.00551064629' />
- <node id='-23' action='modify' visible='true' lat='2.00056685646' lon='1.00560867493' />
- <node id='-25' action='modify' visible='true' lat='2.00056156084' lon='1.00568550818' />
- <node id='-27' action='modify' visible='true' lat='2.00050066126' lon='1.00573584721' />
- <node id='-29' action='modify' visible='true' lat='2.00050595688' lon='1.0059107091' />
- <node id='-31' action='modify' visible='true' lat='2.00051125249' lon='1.00605377792' />
- <node id='-33' action='modify' visible='true' lat='2.00049536565' lon='1.00613591002' />
- <node id='-35' action='modify' visible='true' lat='2.0005139003' lon='1.00628427769' />
- <node id='-37' action='modify' visible='true' lat='2.00047153538' lon='1.00637170863' />
- <node id='-39' action='modify' visible='true' lat='2.00029678005' lon='1.00635846152' />
- <node id='-41' action='modify' visible='true' lat='2.00026235854' lon='1.00628162826' />
- <node id='-43' action='modify' visible='true' lat='2.00033914498' lon='1.00619949616' />
- <node id='-45' action='modify' visible='true' lat='2.00035767963' lon='1.00610411695' />
- <node id='-47' action='modify' visible='true' lat='2.00034973621' lon='1.00600343889' />
- <node id='-49' action='modify' visible='true' lat='2.00032590594' lon='1.0058868643' />
- <node id='-51' action='modify' visible='true' lat='2.0002808932' lon='1.00579413451' />
- <node id='-53' action='modify' visible='true' lat='2.00027824539' lon='1.00563516915' />
- <node id='-55' action='modify' visible='true' lat='2.00036032744' lon='1.00547090495' />
- <node id='-57' action='modify' visible='true' lat='2.00072654218' lon='1.00470543134'>
- <tag k='name' v='points-on-road' />
- </node>
- <node id='-59' action='modify' visible='true' lat='2.00051552538' lon='1.00492201384' />
- <node id='-61' action='modify' visible='true' lat='2.00051552538' lon='1.00492201384'>
- <tag k='test:id' v='n-N-unglued' />
- <tag k='test:section' v='points-on-roads' />
- </node>
- <node id='-63' action='modify' visible='true' lat='2.00029485534' lon='1.00462587591'>
- <tag k='test:id' v='n-S-unglued' />
- <tag k='test:section' v='points-on-roads' />
- </node>
- <node id='-65' action='modify' visible='true' lat='2.00029485534' lon='1.00462587591' />
- <node id='-67' action='modify' visible='true' lat='2.00061177404' lon='1.00506613814'>
- <tag k='test:id' v='n-NE' />
- <tag k='test:section' v='points-on-roads' />
- </node>
- <node id='-69' action='modify' visible='true' lat='2.00033485479' lon='1.00513387079'>
- <tag k='test:id' v='n-SE' />
- <tag k='test:section' v='points-on-roads' />
- </node>
- <node id='-71' action='modify' visible='true' lat='2.00062408156' lon='1.00531551745' />
- <node id='-73' action='modify' visible='true' lat='2.00040869993' lon='1.00475826245'>
- <tag k='test:id' v='n-NW' />
- <tag k='test:section' v='points-on-roads' />
- </node>
- <node id='-75' action='modify' visible='true' lat='2.00038408489' lon='1.00462587591' />
- <node id='-77' action='modify' visible='true' lat='2.00043023809' lon='1.00449964688' />
- <node id='-79' action='modify' visible='true' lat='2.00036870048' lon='1.00532783248' />
- <node id='-81' action='modify' visible='true' lat='2.00026408654' lon='1.00493683035' />
- <node id='-83' action='modify' visible='true' lat='2.00029177846' lon='1.00482599511' />
- <node id='-85' action='modify' visible='true' lat='2.00035639296' lon='1.00472747489'>
- <tag k='test:id' v='n-SW' />
- <tag k='test:section' v='points-on-roads' />
- </node>
- <node id='-87' action='modify' visible='true' lat='2.00022408708' lon='1.00452427693' />
- <node id='-89' action='modify' visible='true' lat='2.00071561841' lon='1.00183227343'>
- <tag k='name' v='road-with-alley' />
- </node>
- <node id='-91' action='modify' visible='true' lat='2.00072864414' lon='1.00046699629'>
- <tag k='name' v='roads-with-pois' />
- </node>
- <node id='-93' action='modify' visible='true' lat='2.00035415446' lon='1.00244811443'>
- <tag k='test:id' v='n-main-east' />
- <tag k='test:section' v='road-with-alley' />
- </node>
- <node id='-95' action='modify' visible='true' lat='2.00026623078' lon='1.00155204948'>
- <tag k='test:id' v='n-main-west' />
- <tag k='test:section' v='road-with-alley' />
- </node>
- <node id='-97' action='modify' visible='true' lat='2.00054628396' lon='1.00192350914'>
- <tag k='test:id' v='n-alley' />
- <tag k='test:section' v='road-with-alley' />
- </node>
- <node id='-99' action='modify' visible='true' lat='2.00035415446' lon='1.00192350914'>
- <tag k='test:id' v='n-corner' />
- <tag k='test:section' v='road-with-alley' />
- </node>
- <node id='-101' action='modify' visible='true' lat='2.00057559185' lon='1.00195935173' />
- <node id='-103' action='modify' visible='true' lat='2.00029879511' lon='1.00260777692' />
- <node id='-105' action='modify' visible='true' lat='2.00031182084' lon='1.0023699124' />
- <node id='-107' action='modify' visible='true' lat='2.00031507727' lon='1.00212553105' />
- <node id='-109' action='modify' visible='true' lat='2.00030856441' lon='1.00195935173' />
- <node id='-111' action='modify' visible='true' lat='2.00030530797' lon='1.00167586937' />
- <node id='-113' action='modify' visible='true' lat='2.00031182084' lon='1.00134351073' />
- <node id='-115' action='modify' visible='true' lat='2.00040546963' lon='1.00011736285'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-117' action='modify' visible='true' lat='2.00039759893' lon='1.00042975784'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-119' action='modify' visible='true' lat='2.000457941' lon='1.00066077263'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-121' action='modify' visible='true' lat='2.00054189517' lon='1.00106242333'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-123' action='modify' visible='true' lat='2.00019033703' lon='1.00013836419'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-125' action='modify' visible='true' lat='2.00019820773' lon='1.00072115149'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-127' action='modify' visible='true' lat='2.00021919628' lon='1.00106767367'>
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-129' action='modify' visible='true' lat='2.00033988043' lon='1.00039038032'>
- <tag k='test:id' v='p-N2' />
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-131' action='modify' visible='true' lat='2.0002926562' lon='1.0008104072'>
- <tag k='test:id' v='p-S1' />
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-133' action='modify' visible='true' lat='2.00052877733' lon='1.0005321394'>
- <tag k='test:id' v='p-N1' />
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-135' action='modify' visible='true' lat='2.00010638283' lon='1.00063977128'>
- <tag k='test:id' v='p-S2' />
- <tag k='test:section' v='roads-with-pois' />
- </node>
- <node id='-137' action='modify' visible='true' lat='2.00072116924' lon='1.00358286582'>
- <tag k='name' v='building-on-street-corner' />
- </node>
- <node id='-139' action='modify' visible='true' lat='2.00023163534' lon='1.00317592051' />
- <node id='-141' action='modify' visible='true' lat='2.00022108767' lon='1.00403607904' />
- <node id='-143' action='modify' visible='true' lat='2.0002263615' lon='1.00427354612' />
- <node id='-145' action='modify' visible='true' lat='2.00010506339' lon='1.00404135609' />
- <node id='-147' action='modify' visible='true' lat='2.00063772026' lon='1.00403639915' />
- <node id='-149' action='modify' visible='true' lat='2.00043885695' lon='1.0039042871' />
- <node id='-151' action='modify' visible='true' lat='2.00043855477' lon='1.00400225362' />
- <node id='-153' action='modify' visible='true' lat='2.0002343878' lon='1.00400162309' />
- <node id='-155' action='modify' visible='true' lat='2.00023468998' lon='1.00390365657' />
- <node id='-157' action='modify' visible='true' lat='2.00032403886' lon='1.00400189996'>
- <tag k='test:id' v='n-edge-NS' />
- <tag k='test:section' v='building-on-street-corner' />
- </node>
- <node id='-159' action='modify' visible='true' lat='2.00035479802' lon='1.00393848586'>
- <tag k='test:id' v='n-inner' />
- <tag k='test:section' v='building-on-street-corner' />
- </node>
- <node id='-161' action='modify' visible='true' lat='2.00046760515' lon='1.00394781445'>
- <tag k='test:id' v='n-outer' />
- <tag k='test:section' v='building-on-street-corner' />
- </node>
- <node id='-163' action='modify' visible='true' lat='2.00023451637' lon='1.00395994156'>
- <tag k='test:id' v='n-edge-WE' />
- <tag k='test:section' v='building-on-street-corner' />
- </node>
- <node id='-165' action='modify' visible='true' lat='2.0001892102' lon='1.00653236169' />
- <node id='-167' action='modify' visible='true' lat='2.00027856164' lon='1.00667595302' />
- <node id='-169' action='modify' visible='true' lat='2.00027856164' lon='1.00681954435' />
- <node id='-171' action='modify' visible='true' lat='2.00025148545' lon='1.00691707809' />
- <node id='-173' action='modify' visible='true' lat='2.0001892102' lon='1.00704170453' />
- <node id='-175' action='modify' visible='true' lat='2.00017296448' lon='1.00724219054' />
- <node id='-177' action='modify' visible='true' lat='2.00062243814' lon='1.00685396461'>
- <tag k='name' v='parallel-road' />
- </node>
- <node id='-179' action='modify' visible='true' lat='2.00033813812' lon='1.00653156143'>
- <tag k='test:id' v='n-middle-w' />
- <tag k='test:section' v='parallel-road' />
- </node>
- <node id='-181' action='modify' visible='true' lat='2.00042478194' lon='1.00668598984' />
- <node id='-183' action='modify' visible='true' lat='2.00041665908' lon='1.00690002221' />
- <node id='-185' action='modify' visible='true' lat='2.00034084574' lon='1.00723597174'>
- <tag k='test:id' v='n-middle-e' />
- <tag k='test:section' v='parallel-road' />
- </node>
- <node id='-187' action='modify' visible='true' lat='2.00041801289' lon='1.00653968924' />
- <node id='-189' action='modify' visible='true' lat='2.00050736432' lon='1.00668328057' />
- <node id='-191' action='modify' visible='true' lat='2.00050736432' lon='1.00682687191' />
- <node id='-193' action='modify' visible='true' lat='2.00048028813' lon='1.00692440564' />
- <node id='-195' action='modify' visible='true' lat='2.00041801289' lon='1.00704903208' />
- <node id='-197' action='modify' visible='true' lat='2.00040176717' lon='1.00724951809' />
- <node id='-199' action='modify' visible='true' lat='2.00102300625' lon='1.00316327416'>
- <tag k='test:id' v='n-south-w' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </node>
- <node id='-201' action='modify' visible='true' lat='2.00101492424' lon='1.00369431688' />
- <node id='-203' action='modify' visible='true' lat='2.00102031225' lon='1.00407170765' />
- <node id='-205' action='modify' visible='true' lat='2.00100684223' lon='1.00433588118'>
- <tag k='test:id' v='n-south-e' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </node>
- <node id='-207' action='modify' visible='true' lat='2.00148637497' lon='1.00362153438'>
- <tag k='name' v='building-with-parallel-streets' />
- </node>
- <node id='-209' action='modify' visible='true' lat='2.00126546664' lon='1.00315114374'>
- <tag k='test:id' v='n-north-w' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </node>
- <node id='-211' action='modify' visible='true' lat='2.00125738463' lon='1.00368218646' />
- <node id='-213' action='modify' visible='true' lat='2.00126277264' lon='1.00405957723' />
- <node id='-215' action='modify' visible='true' lat='2.00124930262' lon='1.00432375077'>
- <tag k='test:id' v='n-north-e' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </node>
- <node id='-217' action='modify' visible='true' lat='2.00118914388' lon='1.00361572227' />
- <node id='-219' action='modify' visible='true' lat='2.0010786539' lon='1.00361659971' />
- <node id='-221' action='modify' visible='true' lat='2.001080471' lon='1.003845694' />
- <node id='-223' action='modify' visible='true' lat='2.00119096098' lon='1.00384481656' />
- <node id='100000' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='2.0' lon='1.0' />
- <node id='100001' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='3.0' lon='1.0' />
- <node id='100002' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='3.0' lon='2.0' />
- <node id='100003' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1' lat='2.0' lon='2.0' />
- <way id='-229' action='modify' visible='true'>
- <nd ref='-25' />
- <nd ref='-23' />
- <nd ref='-21' />
- <tag k='test:id' v='w-5' />
- <tag k='test:section' v='split-road' />
- </way>
- <way id='-231' action='modify' visible='true'>
- <nd ref='-35' />
- <nd ref='-33' />
- <nd ref='-31' />
- <nd ref='-29' />
- <nd ref='-27' />
- <nd ref='-25' />
- <tag k='test:id' v='w-4a' />
- <tag k='test:section' v='split-road' />
- </way>
- <way id='-233' action='modify' visible='true'>
- <nd ref='-43' />
- <nd ref='-41' />
- <nd ref='-39' />
- <nd ref='-37' />
- <nd ref='-35' />
- <tag k='test:id' v='w-3' />
- <tag k='test:section' v='split-road' />
- </way>
- <way id='-235' action='modify' visible='true'>
- <nd ref='-51' />
- <nd ref='-49' />
- <nd ref='-47' />
- <nd ref='-45' />
- <nd ref='-43' />
- <tag k='test:id' v='w-2' />
- <tag k='test:section' v='split-road' />
- </way>
- <way id='-237' action='modify' visible='true'>
- <nd ref='-35' />
- <nd ref='-19' />
- <nd ref='-17' />
- <nd ref='-15' />
- <nd ref='-13' />
- <nd ref='-25' />
- <tag k='test:id' v='w-4b' />
- <tag k='test:section' v='split-road' />
- </way>
- <way id='-239' action='modify' visible='true'>
- <nd ref='-55' />
- <nd ref='-53' />
- <nd ref='-51' />
- <tag k='test:id' v='w-1' />
- <tag k='test:section' v='split-road' />
- </way>
- <way id='-241' action='modify' visible='true'>
- <nd ref='-77' />
- <nd ref='-75' />
- <nd ref='-73' />
- <nd ref='-59' />
- <nd ref='-67' />
- <nd ref='-71' />
- <tag k='test:id' v='w-north' />
- <tag k='test:section' v='points-on-roads' />
- </way>
- <way id='-243' action='modify' visible='true'>
- <nd ref='-87' />
- <nd ref='-65' />
- <nd ref='-85' />
- <nd ref='-83' />
- <nd ref='-81' />
- <nd ref='-69' />
- <nd ref='-79' />
- <tag k='test:id' v='w-south' />
- <tag k='test:section' v='points-on-roads' />
- </way>
- <way id='-245' action='modify' visible='true'>
- <nd ref='-109' />
- <nd ref='-101' />
- <tag k='test:id' v='w-alley' />
- <tag k='test:section' v='road-with-alley' />
- </way>
- <way id='-247' action='modify' visible='true'>
- <nd ref='-113' />
- <nd ref='-111' />
- <nd ref='-109' />
- <nd ref='-107' />
- <nd ref='-105' />
- <nd ref='-103' />
- <tag k='test:id' v='w-main' />
- <tag k='test:section' v='road-with-alley' />
- </way>
- <way id='-249' action='modify' visible='true'>
- <nd ref='-115' />
- <nd ref='-117' />
- <nd ref='-119' />
- <nd ref='-121' />
- <tag k='test:id' v='w-north' />
- <tag k='test:section' v='roads-with-pois' />
- </way>
- <way id='-251' action='modify' visible='true'>
- <nd ref='-123' />
- <nd ref='-125' />
- <nd ref='-127' />
- <tag k='test:id' v='w-south' />
- <tag k='test:section' v='roads-with-pois' />
- </way>
- <way id='-253' action='modify' visible='true'>
- <nd ref='-139' />
- <nd ref='-141' />
- <nd ref='-143' />
- <tag k='test:id' v='w-WE' />
- <tag k='test:section' v='building-on-street-corner' />
- </way>
- <way id='-255' action='modify' visible='true'>
- <nd ref='-145' />
- <nd ref='-141' />
- <nd ref='-147' />
- <tag k='test:id' v='w-NS' />
- <tag k='test:section' v='building-on-street-corner' />
- </way>
- <way id='-257' action='modify' visible='true'>
- <nd ref='-149' />
- <nd ref='-151' />
- <nd ref='-157' />
- <nd ref='-153' />
- <nd ref='-163' />
- <nd ref='-155' />
- <nd ref='-149' />
- <tag k='area' v='yes' />
- <tag k='test:id' v='w-building' />
- <tag k='test:section' v='building-on-street-corner' />
- </way>
- <way id='-259' action='modify' visible='true'>
- <nd ref='-165' />
- <nd ref='-167' />
- <nd ref='-169' />
- <nd ref='-171' />
- <nd ref='-173' />
- <nd ref='-175' />
- <tag k='test:id' v='w-south' />
- <tag k='test:section' v='parallel-road' />
- </way>
- <way id='-261' action='modify' visible='true'>
- <nd ref='-179' />
- <nd ref='-181' />
- <nd ref='-183' />
- <nd ref='-185' />
- <tag k='test:id' v='w-middle' />
- <tag k='test:section' v='parallel-road' />
- </way>
- <way id='-263' action='modify' visible='true'>
- <nd ref='-187' />
- <nd ref='-189' />
- <nd ref='-191' />
- <nd ref='-193' />
- <nd ref='-195' />
- <nd ref='-197' />
- <tag k='test:id' v='w-north' />
- <tag k='test:section' v='parallel-road' />
- </way>
- <way id='-265' action='modify' visible='true'>
- <nd ref='-199' />
- <nd ref='-201' />
- <nd ref='-203' />
- <nd ref='-205' />
- <tag k='test:id' v='w-south' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </way>
- <way id='-267' action='modify' visible='true'>
- <nd ref='-209' />
- <nd ref='-211' />
- <nd ref='-213' />
- <nd ref='-215' />
- <tag k='test:id' v='w-north' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </way>
- <way id='-269' action='modify' visible='true'>
- <nd ref='-217' />
- <nd ref='-219' />
- <nd ref='-221' />
- <nd ref='-223' />
- <nd ref='-217' />
- <tag k='test:id' v='w-building' />
- <tag k='test:section' v='building-with-parallel-streets' />
- </way>
- <way id='100000' timestamp='2014-01-01T00:00:00Z' uid='1' user='test' visible='true' version='1' changeset='1'>
- <nd ref='100000' />
- <nd ref='100001' />
- <nd ref='100002' />
- <nd ref='100003' />
- <nd ref='100000' />
- <tag k='note' v='test area, do not leave' />
- </way>
-</osm>
+++ /dev/null
-w-5 | LINESTRING(1.0056855 2.0005616,1.0056087 2.0005669,1.0055106 2.0005245)
-w-4a | LINESTRING(1.0062843 2.0005139,1.0061359 2.0004954,1.0060538 2.0005113,1.0059107 2.000506,1.0057358 2.0005007,1.0056855 2.0005616)
-w-3 | LINESTRING(1.0061995 2.0003391,1.0062816 2.0002624,1.0063585 2.0002968,1.0063717 2.0004715,1.0062843 2.0005139)
-w-2 | LINESTRING(1.0057941 2.0002809,1.0058869 2.0003259,1.0060034 2.0003497,1.0061041 2.0003577,1.0061995 2.0003391)
-w-4b | LINESTRING(1.0062843 2.0005139,1.0061306 2.0005324,1.0060511 2.000543,1.0058975 2.000543,1.0057491 2.0005351,1.0056855 2.0005616)
-w-1 | LINESTRING(1.0054709 2.0003603,1.0056352 2.0002782,1.0057941 2.0002809)
+++ /dev/null
-inner-S | POINT(0.0048516 -0.0095176)
-inner-N | POINT(0.0018846 -0.0023652)
-outer-C | POINT(0.0041244 -0.0060007)
-inner-C | POINT(0.0035625 -0.0066188)
-area | MULTIPOLYGON(((0.0005071 -0.0060738,0.0010369 -0.0072924,0.0019376 -0.0065507,0.0026264 -0.0080341,0.0026264 -0.0091997,0.0022025 -0.0099944,0.0026794 -0.0105772,0.0038979 -0.0109481,0.0065469 -0.0099414,0.0077125 -0.0066566,0.0068648 -0.0049612,0.0061231 -0.0064977,0.0051694 -0.0076633,0.0033681 -0.0059149,0.0075006 -0.0040076,0.006441 -0.0025771,0.0050105 -0.0021533,0.0013019 -0.0015175,0.0005601 -0.0025771,0.0005071 -0.0042195,0.0017787 -0.00565,0.0005071 -0.0060738)))