public void OSMXmlDataReaderCanReadNodeWithTag()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.NodeRead += new OSMNodeReadHandler(ProcessNode);

            //  <node id="1254" lat="50.4" lon="16.2">
            //  	<tag k="name" v="test" />
            //	</node>
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_node_with_tag));

            OSMNode readNode = _readNodes[0];
            Assert.Equal(1, readNode.Tags.Count);
            Assert.True(readNode.Tags.ContainsTag("name"));
            Assert.Equal("test", readNode.Tags["name"].Value);
        }
Esempio n. 2
0
        /// <summary>
        /// Load OSM file, and filters out ways that do not match specific road types
        /// </summary>
        /// <param name="acceptedRoads">Accepted road types</param>
        /// <param name="input">Stream with OSM file</param>
        public void Load(IEnumerable<RoadType> acceptedRoads, Stream input)
        {
            _acceptedRoads = acceptedRoads;

            OSMXmlDataReader reader = new OSMXmlDataReader();

            reader.WayRead += WayRead;
            reader.Read(input);

            reader.WayRead -= WayRead;
            reader.NodeRead += NodeRead;
            input.Seek(0, 0);
            reader.Read(input);
        }
 public void OSMXmlDataReaderReadThrowsExceptionIfFileDoesnotExist()
 {
     OSMXmlDataReader target = new OSMXmlDataReader();
     Assert.Throws<FileNotFoundException>(delegate {target.Read("non-existing-file.osm");});
 }
 public void OSMXmlDataReaderReadThrowsExceptionReadingInvalidRootElement()
 {
     OSMXmlDataReader target = new OSMXmlDataReader();
     Assert.Throws<XmlException>(delegate { target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_invalid_root_element));});
 }
        public void OSMXmlDataReaderCanReadWayWithTags()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.WayRead += new OSMWayReadHandler(ProcessWay);

            //  <way id="1254">
            //  	<nd ref="3" />
            //  	<nd ref="4" />
            //  	<tag k="name" v="test" />
            //  	<tag k="name-2" v="test-2" />
            //	</way>
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_way_with_tags));

            Assert.Equal(1, _readWays.Count);

            OSMWay readWay = _readWays[0];

            Assert.Equal(2, readWay.Nodes.Count);
            Assert.Equal(2, readWay.Tags.Count);
        }
 public void OSMXmlDataReaderReadSkipsUnknownElements()
 {
     OSMXmlDataReader target = new OSMXmlDataReader();
     target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_unknown_inner_element));
 }
        public void OSMXmlDataReaderCanReadSimpleRelation()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.RelationRead += new OSMRelationReadHandler(ProcessRelation);

            //  <relation id="1254">
            //  	<member ref="3" type="node" role="test" />
            //	</relation>
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_simple_relation));

            Assert.Equal(1, _readRelations.Count);
            Assert.Equal(1254, _readRelations[0].ID);

            Assert.Equal(1, _readRelations[0].Members.Count);
        }
        public void OSMXmlDataReaderCanReadSimpleWay()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.WayRead += new OSMWayReadHandler(ProcessWay);

            //  <way id="1254">
            //  	<nd ref="3" />
            //  	<nd ref="4" />
            //	</way>
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_simple_way));

            Assert.Equal(1, _readWays.Count);

            OSMWay readWay = _readWays[0];

            Assert.Equal(1254, readWay.ID);
            Assert.Equal(2, readWay.Nodes.Count);

            Assert.Equal(3, readWay.Nodes[0]);
            Assert.Equal(4, readWay.Nodes[1]);
        }
        public void OSMXmlDataReaderCanReadSimpleNode()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.NodeRead += new OSMNodeReadHandler(ProcessNode);

            // <node id="1254" lat="50.4" lon="16.2" />
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_simple_node));

            Assert.Equal(1, _readNodes.Count);

            OSMNode readNode = _readNodes[0];
            Assert.Equal(1254, readNode.ID);
            Assert.Equal(50.4, readNode.Latitude);
            Assert.Equal(16.2, readNode.Longitude);
        }
        public void OSMXmlDataReaderCanReadRelationWithVariousMemberTypes()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.RelationRead += new OSMRelationReadHandler(ProcessRelation);

            //  <relation id="1254">
            //		<member ref="3" type="node" role="test" />
            //		<member ref="4" type="way" role="test" />
            //		<member ref="5" type="relation" role="test" />
            //	</relation>
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_relation));

            Assert.Equal(1, _readRelations.Count);

            Assert.Equal(3, _readRelations[0].Members.Count);

            Assert.Equal(3, _readRelations[0].Members[0].Reference);
            Assert.Equal("test", _readRelations[0].Members[0].Role);
            Assert.Equal(OSMRelationMemberType.node, _readRelations[0].Members[0].Type);

            Assert.Equal(4, _readRelations[0].Members[1].Reference);
            Assert.Equal("test", _readRelations[0].Members[1].Role);
            Assert.Equal(OSMRelationMemberType.way, _readRelations[0].Members[1].Type);

            Assert.Equal(5, _readRelations[0].Members[2].Reference);
            Assert.Equal("test", _readRelations[0].Members[2].Role);
            Assert.Equal(OSMRelationMemberType.relation, _readRelations[0].Members[2].Type);
        }
        public void OSMXmlDataReaderCanReadRelationWithTags()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.RelationRead += new OSMRelationReadHandler(ProcessRelation);

            //  <relation id="1254">
            //		<member ref="3" type="node" role="test" />
            //		<tag k="name" v="test-relation" />
            //	</relation>
            target.Read(new MemoryStream(OSMUtils.Tests.TestData.osm_relation_with_tag));

            Assert.Equal(1, _readRelations.Count);
            Assert.Equal(1, _readRelations[0].Tags.Count);
        }
        public void OSMXmlDataReaderCanReadRealOSMFile()
        {
            OSMXmlDataReader target = new OSMXmlDataReader();
            target.NodeRead += new OSMNodeReadHandler(ProcessNode);
            target.WayRead += new OSMWayReadHandler(ProcessWay);
            target.RelationRead += new OSMRelationReadHandler(ProcessRelation);

            target.Read(new MemoryStream(OSMUtils.Tests.TestData.real_osm_file));

            Assert.Equal(408, _readNodes.Count);
            Assert.Equal(22, _readWays.Count);
            Assert.Equal(2, _readRelations.Count);
        }
Esempio n. 13
0
        /// <summary>
        /// Loads OSM entities from the specific Stream
        /// </summary>
        /// <param name="stream">Stream with the OSM file</param>
        public virtual void Load(Stream stream)
        {
            OSMXmlDataReader xmlReader = new OSMXmlDataReader();
            xmlReader.NodeRead += new OSMNodeReadHandler(node => _nodes.Add(node));
            xmlReader.WayRead += new OSMWayReadHandler(way => _ways.Add(way));
            xmlReader.RelationRead += new OSMRelationReadHandler(relation => _relations.Add(relation));

            xmlReader.Read(stream);
        }