public bool addPath(int stationA, int stationB) { if (!_busData.Stations.ContainsKey(stationA) || !_busData.Stations.ContainsKey(stationB)) { return(false); } Vertex vertA = checkAndAddVertex(stationA); Vertex vertB = checkAndAddVertex(stationB); string pathId = BUtils.generatePathId(stationA, stationB); Edge edge = checkAndAddEdge(pathId); StationPath path = _busData.getStationPath(pathId); edge.Target = vertB; edge.Weight = path.Distance; addEdgeToVertex(edge, vertA); return(true); }
private void drawStationPath(List <int> stationIds, Color color, GMapOverlay overlay) { List <PointLatLng> list = new List <PointLatLng>(); int preStation = 0; for (int i = 0; i < stationIds.Count; i++) { int station = stationIds[i]; if (preStation == 0) { preStation = station; } else { string key = BUtils.generatePathId(preStation, station); if (!StationPaths.ContainsKey(key)) { preStation = station; continue; } StationPath path = StationPaths[key]; List <LatLong> points = path.Path; for (int j = 0; j < points.Count; j++) { LatLong point = points[j]; PointLatLng pont1 = new PointLatLng(point.Latitude, point.Longitude); list.Add(pont1); } preStation = station; } } GMapRoute routers = new GMapRoute(list, "polygon"); routers.Stroke = new Pen(color); routers.Stroke.Width = 5; overlay.Routes.Add(routers); }