// not used oddly enough public OSMInterface(osmBounds bounds, double scale, double tolerance, double curveTolerance, double tiles, string nodesRequestUrl, string waysRequestUrl) { this.tolerance = tolerance; curveError = curveTolerance; Mapping = new RoadMapping(tiles); fc = new FitCurves(); var client = new WebClient(); var nodesResponse = client.DownloadData(nodesRequestUrl); var waysResponse = client.DownloadData(waysRequestUrl); var nodesReader = new StreamReader(new MemoryStream(nodesResponse)); var waysReader = new StreamReader(new MemoryStream(waysResponse)); var serializer = new XmlSerializer(typeof(OsmDataResponse)); var nodesOsm = (OsmDataResponse)serializer.Deserialize(nodesReader); var waysOsm = (OsmDataResponse)serializer.Deserialize(waysReader); nodesOsm.way = waysOsm.way; nodesReader.Dispose(); waysReader.Dispose(); nodesOsm.bounds = bounds; Init(nodesOsm, scale); }
public OSMInterface(string path, double scale, double tolerance, double curveTolerance, double tiles) { this.tolerance = tolerance; this.curveError = curveTolerance; mapping = new RoadMapping(tiles); fc = new FitCurves(); var serializer = new XmlSerializer(typeof(osm)); var reader = new StreamReader(path); var osm = (osm)serializer.Deserialize(reader); reader.Dispose(); Init(osm, scale); }
// used by load osm file public OSMInterface(osmBounds bounds, string path, double scale, double tolerance, double curveTolerance, double tiles) { this.tolerance = tolerance; this.curveError = curveTolerance; Mapping = new RoadMapping(tiles); fc = new FitCurves(); var serializer = new XmlSerializer(typeof(OsmDataResponse)); var reader = new StreamReader(path); var osm = serializer.Deserialize(reader) as OsmDataResponse; reader.Dispose(); if (osm != null) { osm.bounds = bounds; Init(osm, scale); } }
public OSMInterface(osmBounds bounds, double scale, double tolerance, double curveTolerance, double tiles) { this.tolerance = tolerance; this.curveError = curveTolerance; mapping = new RoadMapping(tiles); fc = new FitCurves(); var client = new WebClient(); var response = client.DownloadData("http://www.overpass-api.de/api/xapi?map?bbox=" + string.Format("{0},{1},{2},{3}", bounds.minlon.ToString(), bounds.minlat.ToString(), bounds.maxlon.ToString(), bounds.maxlat.ToString())); var ms = new MemoryStream(response); var reader = new StreamReader(ms); var serializer = new XmlSerializer(typeof(osm)); var osm = (osm)serializer.Deserialize(reader); ms.Dispose(); reader.Dispose(); osm.bounds = bounds; Init(osm, scale); }
internal void Export() { Debug.Log("Beginning export"); mapping = new RoadMapping(4.5); var osm = new OSM(); osm.version = 0.6M; osm.meta = new osmMeta { osm_base = DateTime.Now }; osm.generator = "Cities Skylines Magic Mapper Mod"; osm.note = Singleton <SimulationManager> .instance.m_metaData.m_CityName; osm.bounds = new osmBounds { minlon = 35.753054M, minlat = 34.360353M, maxlon = 35.949310M, maxlat = 34.522050M }; var nm = Singleton <NetManager> .instance; mapping.InitBoundingBox(osm.bounds, 1); nodeCount = 128000; wayCount = 128000; AddNodesAndWays(); AddBuildings(); AddDistricts(); AddCity(); AddCountours(); AddRoutes(); mapping.printDebug(); osm.node = FilterUnusedNodes(); osm.way = ways.ToArray(); var serializer = new XmlSerializer(typeof(OSM)); var ms = new StreamWriter(Singleton <SimulationManager> .instance.m_metaData.m_CityName + ".osm"); serializer.Serialize(ms, osm); ms.Close(); }
public OSMInterface(osmBounds bounds, double scale, double tolerance, double curveTolerance, double tiles) { this.tolerance = tolerance; this.curveError = curveTolerance; mapping = new RoadMapping(tiles); fc = new FitCurves(); var client = new WebClient(); var response = client.DownloadData("http://www.overpass-api.de/api/xapi?map?bbox=" + string.Format("{0},{1},{2},{3}", bounds.minlon.ToString(), bounds.minlat.ToString(), bounds.maxlon.ToString(), bounds.maxlat.ToString())); var ms = new MemoryStream(response); var reader = new StreamReader(ms); var serializer = new XmlSerializer(typeof(OSM)); var osm = (OSM)serializer.Deserialize(reader); ms.Dispose(); reader.Dispose(); osm.bounds = bounds; Init(osm, scale); }
public OSMInterface(osmBounds bounds, double scale, double tolerance, double curveTolerance, double tiles) { this.tolerance = tolerance; curveError = curveTolerance; Mapping = new RoadMapping(tiles); fc = new FitCurves(); var client = new WebClient(); string nodes = "http://overpass-api.de/api/interpreter?data=node(" + string.Format("{0},{1},{2},{3}", bounds.maxlat.ToString(), bounds.minlon.ToString(), bounds.minlat.ToString(), bounds.maxlon.ToString()) + ");out;"; string ways = "http://overpass-api.de/api/interpreter?data=way(" + string.Format("{0},{1},{2},{3}", bounds.maxlat.ToString(), bounds.minlon.ToString(), bounds.minlat.ToString(), bounds.maxlon.ToString()) + ");out;"; var nodesResponse = client.DownloadData(nodes); var waysResponse = client.DownloadData(ways); var nodesMemoryStream = new MemoryStream(nodesResponse); var wayssMemoryStream = new MemoryStream(waysResponse); var nodesReader = new StreamReader(nodesMemoryStream); var waysReader = new StreamReader(wayssMemoryStream); var serializer = new XmlSerializer(typeof(OsmDataResponse)); var nodesOsm = (OsmDataResponse)serializer.Deserialize(nodesReader); var waysOsm = (OsmDataResponse)serializer.Deserialize(waysReader); nodesOsm.way = waysOsm.way; nodesMemoryStream.Dispose(); wayssMemoryStream.Dispose(); nodesReader.Dispose(); waysReader.Dispose(); nodesOsm.bounds = bounds; Init(nodesOsm, scale); }
// used when makeroads is clicked (!) public OSMInterface(osmBounds bounds, byte[] nodesXml, byte[] waysXml, double scale, double tolerance, double curveTolerance, double tiles) { this.tolerance = tolerance; this.curveError = curveTolerance; Mapping = new RoadMapping(tiles); fc = new FitCurves(); var nodesReader = new StreamReader(new MemoryStream(nodesXml)); var waysReader = new StreamReader(new MemoryStream(waysXml)); var serializer = new XmlSerializer(typeof(OsmDataResponse)); var nodesOsm = (OsmDataResponse)serializer.Deserialize(nodesReader); var waysOsm = (OsmDataResponse)serializer.Deserialize(waysReader); nodesOsm.way = waysOsm.way; nodesReader.Dispose(); waysReader.Dispose(); nodesOsm.bounds = bounds; Init(nodesOsm, scale); }
internal void Export() { mapping = new RoadMapping(4.5); var osm = new osm(); osm.version = 0.6M; osm.upload = false; osm.meta = new osmMeta { osm_base = DateTime.Now }; osm.generator = "Cities Skylines Magic Mapper Mod"; osm.note = Singleton<SimulationManager>.instance.m_metaData.m_CityName; osm.bounds = new osmBounds { minlon = 35.753054M, minlat = 34.360353M, maxlon = 35.949310M, maxlat = 34.522050M }; var nm = Singleton<NetManager>.instance; mapping.InitBoundingBox(osm.bounds, 1); nodeCount = 128000; wayCount = 128000; AddNodesAndWays(); AddBuildings(); AddDistricts(); AddCity(); AddCountours(); osm.node = FilterUnusedNodes(); osm.way = ways.ToArray(); var serializer = new XmlSerializer(typeof(osm)); var ms = new StreamWriter(Singleton<SimulationManager>.instance.m_metaData.m_CityName + ".osm"); serializer.Serialize(ms, osm); ms.Close(); }