Example #1
0
        public void MultiLsToByteArray()
        {
            var rnd = new Random();
            var ls  = new LineString[40];

            for (var ii = 0; ii < 40; ii++)
            {
                var coord = new Coordinate[36];
                for (var i = 0; i < 36; i++)
                {
                    coord[i] = new Coordinate((rnd.NextDouble() * 360) - 180, (rnd.NextDouble() * 180) - 90);
                }
                ls[ii] = new LineString(coord);
            }
            var mls      = new MultiLineString(ls);
            var vals     = mls.ToBinary();
            var wkr      = new WkbReader();
            var g        = wkr.Read(vals);
            var mlscheck = g as MultiLineString;

            if (mlscheck != null)
            {
                for (var ii = 0; ii < mls.Coordinates.Count; ii++)
                {
                    Assert.AreEqual(mls.Coordinates[ii].X, mlscheck.Coordinates[ii].X);
                    Assert.AreEqual(mls.Coordinates[ii].Y, mlscheck.Coordinates[ii].Y);
                }
            }
            else
            {
                Assert.Fail("The test failed bc the check multilinestring was null.");
            }
        }
Example #2
0
        private IEnumerable <trout_stream_section> CreateSection(trout_streams_minnesota asdf, StreamRoute route)
        {
            var routeMultilineString      = route.OriginalGeometry as IMultiLineString;
            var troutStreamSection        = (asdf.OriginalGeometry as IMultiLineString);
            var desiredTroutStreamSection = (asdf.Geometry_4326 as IMultiLineString);
            var TroutStreamSection4236    = (asdf.Geometry_4326 as IMultiLineString);
            var numberOfGeometries        = troutStreamSection.Geometries.Count();

            for (var i = 0; i < numberOfGeometries; i++)
            {
                var s = troutStreamSection.Geometries[i] as ILineString;
                var desiredGeometry = desiredTroutStreamSection.Geometries[i] as ILineString;
                desiredGeometry.SRID = 44326;
                var asdf4236 = TroutStreamSection4236.Geometries[i];

                var trout_section = new trout_stream_section();

                var centroid = asdf4236.Centroid;
                trout_section.centroid_latitude  = Convert.ToDecimal(centroid.X);
                trout_section.centroid_longitude = Convert.ToDecimal(centroid.Y);
                trout_section.length_mi          = Convert.ToDecimal(s.Length) / METERS_IN_MILE;
                trout_section.public_length      = 0;
                trout_section.section_name       = asdf.kittle_nam ?? "Unnamed Stream";
                trout_section.source_id          = asdf.kittle_nbr;

                var multilineString = new MultiLineString(new[] { s });

                var t         = new LinearReference();
                var wktWriter = new WKTWriter();
                wktWriter.EmitSRID   = true;
                wktWriter.HandleSRID = true;
                var desiredMultilineString = new MultiLineString(new[] { desiredGeometry });
                desiredMultilineString.SRID = 4326;
                var text = wktWriter.Write(desiredMultilineString);
//                var superResultLol =
                var writer = new WKBWriter();
//                writer.HandleSRID = true;
//                writer.EmitSRID = true;

                var binResult = writer.Write(desiredMultilineString);
                var bin2      = desiredMultilineString.ToBinary();

                var stringResult = System.Text.Encoding.UTF7.GetString(binResult);
                trout_section.Geom = asdf.Geom_4326;
                var result = t.GetIntersectionOfLine(routeMultilineString.Geometries.First() as ILineString, s).ToList();

                trout_section.start = (decimal)result[0] / METERS_IN_MILE;
                trout_section.stop  = (decimal)result[1] / METERS_IN_MILE;

                yield return(trout_section);
            }
        }
 public void MultiLsToByteArray()
 {
     Random rnd = new Random();
     LineString[] ls = new LineString[40];
     for (int ii = 0; ii < 40; ii++)
     {
         Coordinate[] coord = new Coordinate[36];
         for (int i = 0; i < 36; i++)
         {
             coord[i] = new Coordinate((rnd.NextDouble() * 360) - 180, (rnd.NextDouble() * 180) - 90);
         }
         ls[ii] = new LineString(coord);
     }
     MultiLineString mls = new MultiLineString(ls);
     Byte[] vals = mls.ToBinary();
     WkbReader wkr = new WkbReader();
     IGeometry g = wkr.Read(vals);
     MultiLineString mlscheck = g as MultiLineString;
     if (mlscheck != null)
     {
         for (int ii = 0; ii < mls.Coordinates.Count; ii++)
         {
             Assert.AreEqual(mls.Coordinates[ii].X, mlscheck.Coordinates[ii].X);
             Assert.AreEqual(mls.Coordinates[ii].Y, mlscheck.Coordinates[ii].Y);
         }
     }
     else
     {
         Assert.Fail("The test failed bc the check multilinestring was null.");
     }
 }