GraphData --------------------------------------------------------------------------------------
| 224 | |
| 225 | // GraphData -------------------------------------------------------------------------------------- |
| 226 | void GraphData::DeserializeFromJson(base::Json const & root, OsmIdToFeatureIdsMap const & mapping) |
| 227 | { |
| 228 | DeserializerFromJson deserializer(root.get(), mapping); |
| 229 | Visit(deserializer); |
| 230 | |
| 231 | // Removes equivalent edges from |m_edges|. If there are several equivalent edges only |
| 232 | // the most lightweight edge is left. |
| 233 | // Note. It's possible that two stops are connected with the same line several times |
| 234 | // in the same direction. It happens in Oslo metro (T-banen): |
| 235 | // https://en.wikipedia.org/wiki/Oslo_Metro#/media/File:Oslo_Metro_Map.svg branch 5. |
| 236 | base::SortUnique(m_edges, [](Edge const & e1, Edge const & e2) |
| 237 | { |
| 238 | if (e1 != e2) |
| 239 | return e1 < e2; |
| 240 | return e1.GetWeight() < e2.GetWeight(); |
| 241 | }, [](Edge const & e1, Edge const & e2) { return e1 == e2; }); |
| 242 | } |
| 243 | |
| 244 | void GraphData::Serialize(Writer & writer) |
| 245 | { |
no test coverage detected