コード例 #1
0
        public void Item_ReturnsRelationWithSpecificID()
        {
            OsmDatabase <IOsmGeometry, Node, Way, Relation> target = new OsmDatabase <IOsmGeometry, Node, Way, Relation>(_data);
            IOsmGeometry entity = target[_relationData[0].ID, EntityType.Relation];

            Assert.Same(_relationData[0], entity);
        }
コード例 #2
0
        /// <summary>
        /// Initializes a new instance of the RelationMember class with specified Role and Member.
        /// </summary>
        /// <param name="member">The member of this RelationMember.</param>
        /// <param name="role">The Role of this member in the relation.</param>
        public RelationMember(IOsmGeometry member, string role)
            : base()
        {
            if (member == null)
            {
                throw new ArgumentNullException("member");
            }

            this.Member = member;
            this.Role   = role;

            if (member is Node)
            {
                this.MemberType = EntityType.Node;
            }
            else if (member is Way)
            {
                this.MemberType = EntityType.Way;
            }
            else if (member is Relation)
            {
                this.MemberType = EntityType.Relation;
            }
            else
            {
                throw new ArgumentException("Unknown member type.");
            }
        }
コード例 #3
0
        public void Item_ReturnsEntityWitSpecificID()
        {
            EntityCollection <IOsmGeometry> target = new EntityCollection <IOsmGeometry>(_data);
            IOsmGeometry entity = target[1];

            Assert.Equal(1, entity.ID);
        }
コード例 #4
0
        public void Write_IOsmGeometry_ThrowsExceptionIfEntityIsNull()
        {
            MemoryStream stream = new MemoryStream();

            using (OsmXmlWriter target = new OsmXmlWriter(stream, new OsmWriterSettings()
            {
                WriteMetadata = false
            })) {
                IOsmGeometry entity = null;
                Assert.Throws <ArgumentNullException>(() => target.Write(entity));
            }
        }
コード例 #5
0
        public void CopyTo_CopiesEntitiesToArray()
        {
            OsmDatabase <IOsmGeometry, Node, Way, Relation> target = new OsmDatabase <IOsmGeometry, Node, Way, Relation>(_data);

            IOsmGeometry[] array = new IOsmGeometry[_data.Length];

            target.CopyTo(array, 0);

            for (int i = 0; i < _data.Length; i++)
            {
                Assert.Same(_data[i], array[i]);
            }
        }
コード例 #6
0
        public void Write_IOsmGeometry_ThrowsExceptionIfEntityIsNull()
        {
            PbfWriterSettings settings = new PbfWriterSettings()
            {
                UseDenseFormat = false, Compression = CompressionMode.None, WriteMetadata = false
            };
            MemoryStream stream = new MemoryStream();

            using (PbfWriter target = new PbfWriter(stream, settings)) {
                IOsmGeometry entity = null;
                Assert.Throws <ArgumentNullException>(() => target.Write(entity));
            }
        }
コード例 #7
0
		/// <summary>
		/// Writes specified entity object in XML format to the underlaying stream.
		/// </summary>
		/// <param name="entity">Entity to write.</param>
		public void Write(IOsmGeometry entity) {
			if (entity == null) {
				throw new ArgumentNullException("Entity cannot be null", "entity");
			}

			if (_isInsideOsm == false) {
				this.StartDocument();
			}

			switch (entity.EntityType) {
				case EntityType.Node: this.Write(new NodeInfo((Node)entity)); break;
				case EntityType.Way: this.Write(new WayInfo((Way)entity)); break;
				case EntityType.Relation: this.Write(new RelationInfo((Relation)entity)); break;
			}
		}
コード例 #8
0
        /// <summary>
        /// Writes specific IOsmGeometry in PBF format to the underlaying stream.
        /// </summary>
        /// <param name="entity">Entity to write.</param>
        /// <remarks>
        /// PbfWriter uses internal buffers and writes entities to the output stream in blocks. To force PbfWriter to clear internal buffers and write data to the underlaying stream use Flush() function.
        /// </remarks>
        public void Write(IOsmGeometry entity)
        {
            if (entity == null)
            {
                throw new ArgumentNullException("Entity cannot be null", "entity");
            }

            switch (entity.EntityType)
            {
            case EntityType.Node: this.Write(new NodeInfo((Geometries.Node)entity)); break;

            case EntityType.Way: this.Write(new WayInfo((Geometries.Way)entity)); break;

            case EntityType.Relation: this.Write(new RelationInfo((Geometries.Relation)entity)); break;
            }
        }
コード例 #9
0
        /// <summary>
        /// Initializes a new instance of the RelationMember class with specified Role and Member.
        /// </summary>
        /// <param name="member">The member of this RelationMember.</param>
        /// <param name="role">The Role of this member in the relation.</param>
        public RelationMember(IOsmGeometry member, string role)
            : base()
        {
            if (member == null) {
                throw new ArgumentNullException("member");
            }

            this.Member = member;
            this.Role = role;

            if (member is Node) {
                this.MemberType = EntityType.Node;
            }
            else if (member is Way) {
                this.MemberType = EntityType.Way;
            }
            else if (member is Relation) {
                this.MemberType = EntityType.Relation;
            }
            else {
                throw new ArgumentException("Unknown member type.");
            }
        }
コード例 #10
0
ファイル: PbfWriter.cs プロジェクト: najira/spatiallite-net
        /// <summary>
        /// Writes specific IOsmGeometry in PBF format to the underlaying stream.
        /// </summary>
        /// <param name="entity">Entity to write.</param>
        /// <remarks>
        /// PbfWriter uses internal buffers and writes entities to the output stream in blocks. To force PbfWriter to clear internal buffers and write data to the underlaying stream use Flush() function.
        /// </remarks>
        public void Write(IOsmGeometry entity)
        {
            if (entity == null) {
                throw new ArgumentNullException("Entity cannot be null", "entity");
            }

            switch (entity.EntityType) {
                case EntityType.Node: this.Write(new NodeInfo((Geometries.Node)entity)); break;
                case EntityType.Way: this.Write(new WayInfo((Geometries.Way)entity)); break;
                case EntityType.Relation: this.Write(new RelationInfo((Geometries.Relation)entity)); break;
            }
        }
コード例 #11
0
        public void CopyTo_CopiesEntitiesToArray()
        {
            OsmDatabase<IOsmGeometry, Node, Way, Relation> target = new OsmDatabase<IOsmGeometry, Node, Way, Relation>(_data);
            IOsmGeometry[] array = new IOsmGeometry[_data.Length];

            target.CopyTo(array, 0);

            for (int i = 0; i < _data.Length; i++) {
                Assert.Same(_data[i], array[i]);
            }
        }
コード例 #12
0
 /// <summary>
 /// Initializes a new instance of the RelationMember class with empty Role and specified Member.
 /// </summary>
 /// <param name="member">The member of this RelatioinMember.</param>
 public RelationMember(IOsmGeometry member)
     : this(member, null)
 {
 }
コード例 #13
0
        /// <summary>
        /// Writes specified entity object in XML format to the underlaying stream.
        /// </summary>
        /// <param name="entity">Entity to write.</param>
        public void Write(IOsmGeometry entity)
        {
            if (entity == null) {
                throw new ArgumentNullException("Entity cannot be null", "entity");
            }

            if (_isInsideOsm == false) {
                this.StartDocument();
            }

            switch (entity.EntityType) {
                case EntityType.Node: this.Write(new NodeInfo((Node)entity)); break;
                case EntityType.Way: this.Write(new WayInfo((Way)entity)); break;
                case EntityType.Relation: this.Write(new RelationInfo((Relation)entity)); break;
            }
        }
コード例 #14
0
 /// <summary>
 /// Initializes a new instance of the RelationMember class with empty Role and specified Member.
 /// </summary>
 /// <param name="member">The member of this RelatioinMember.</param>
 public RelationMember(IOsmGeometry member)
     : this(member, null)
 {
 }