Example #1
0
        public static CompleteWay[] Generate(string from, string to, NetTopologySuite.Geometries.Geometry scope = null)
        {
            var osm = FileSerializer.ReadXmlCacheOrSource(to,
                                                          () => TranslateAndDisolve(from, scope));

            JOSM.MarkAsNeverUpload(to);
            return(osm.GetElements().ToComplete().OfType <CompleteWay>().ToArray());
        }
Example #2
0
        private static void Go(string scopeName, long relationId)
        {
            if (!Directory.Exists(scopeName))
            {
                Directory.CreateDirectory(scopeName);
            }
            //NetTopologySuite.Algorithm.Match.HausdorffSimilarityMeasure
            //Geometry.DistanceMeters(
            //	new NetTopologySuite.Geometries.Coordinate(scope.MinLongitude.Value, scope.MinLatitude.Value),
            //	new NetTopologySuite.Geometries.Coordinate(scope.MaxLongitude.Value, scope.MaxLatitude.Value));

            var scope     = scopeName == null ? null : LoadBounds(scopeName, relationId);
            var reference = Reference.Generate("ReferenceRawSimplified.osm", $"{scopeName}\\Reference.osm", scope);
            Osm subject;

            using (var stream = File.OpenRead("Subject.pbf"))
            {
                subject = new PBFOsmStreamSource(stream).AsOsm();
            }

            var missingPublic = Conflate.FindMissingRoads(subject, reference.Where(w => !w.Tags.Contains("ownership", "private")).ToArray());

            FileSerializer.WriteXml($"{scopeName}\\MissingPublic.osm", missingPublic);
            JOSM.MarkAsNeverUpload($"{scopeName}\\MissingPublic.osm");

            var missingPrivate = Conflate.FindMissingRoads(subject, reference.Where(w => w.Tags.Contains("ownership", "private")).ToArray());

            FileSerializer.WriteXml($"{scopeName}\\MissingPrivate.osm", missingPrivate);
            JOSM.MarkAsNeverUpload($"{scopeName}\\MissingPrivate.osm");

            //int i = 0;
            //var referenceSlices = BoundsExtentions.SliceRecusive(reference, 200);

            //foreach (var referenceSlice in referenceSlices)
            //{
            //	var directory = i.ToString("0000");
            //	Directory.CreateDirectory(directory);
            //	FileSerializer.WriteXml($"{directory}\\Reference.osm", referenceSlice.Value.AsOsm());
            //	JOSM.MarkAsNeverUpload($"{directory}\\Reference.osm");

            //	//var subjectSlice = subject.FilterBox(bounds.MinLongitude.Value, bounds.MaxLatitude.Value,
            //	//		bounds.MaxLongitude.Value, bounds.MinLatitude.Value, true)
            //	//	.AsOsm();
            //	//FileSerializer.WriteXml($"{i}\\Subject.osm", subjectSlice);
            //	//var missing = Conflate.FindMissingPublicRoads(subjectSlice, referenceSlice);
            //	//FileSerializer.WriteXml($"{i}\\MissingPublicRoads.osm", missing);
            //	//var session = File.ReadAllText("Session.jos");
            //	// Transform session
            //	//File.WriteAllText($"{i}\\Session.jos", session);
            //	i++;
            //}
        }