MCPcopy Create free account
hub / github.com/comaps/comaps / SetStreet

Function SetStreet

libs/map/framework.cpp:2872–2915  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2870}
2871
2872void SetStreet(search::ReverseGeocoder const & coder, DataSource const & dataSource, FeatureType & ft,
2873 osm::EditableMapObject & emo)
2874{
2875 // Get exact feature's street address (if any) from mwm,
2876 // together with all nearby streets.
2877 auto const streets = coder.GetNearbyStreets(ft);
2878
2879 string street = coder.GetFeatureStreetName(ft);
2880
2881 auto localizedStreets = TakeSomeStreetsAndLocalize(streets, dataSource);
2882
2883 if (!street.empty())
2884 {
2885 auto it = find_if(begin(streets), end(streets),
2886 [&street](search::ReverseGeocoder::Street const & s) { return s.m_name == street; });
2887
2888 if (it != end(streets))
2889 {
2890 osm::LocalizedStreet ls;
2891 if (!LocalizeStreet(dataSource, it->m_id, ls))
2892 ls.m_defaultName = street;
2893
2894 emo.SetStreet(ls);
2895
2896 // A street that a feature belongs to should always be in the first place in the list.
2897 auto it = find_if(begin(localizedStreets), end(localizedStreets),
2898 [&ls](osm::LocalizedStreet const & rs) { return ls.m_defaultName == rs.m_defaultName; });
2899 if (it != end(localizedStreets))
2900 iter_swap(it, begin(localizedStreets));
2901 else
2902 localizedStreets.insert(begin(localizedStreets), ls);
2903 }
2904 else
2905 {
2906 emo.SetStreet({street, ""});
2907 }
2908 }
2909 else
2910 {
2911 emo.SetStreet({});
2912 }
2913
2914 emo.SetNearbyStreets(std::move(localizedStreets));
2915}
2916
2917void SetHostingBuildingAddress(FeatureID const & hostingBuildingFid, DataSource const & dataSource,
2918 search::ReverseGeocoder const & coder, osm::EditableMapObject & emo)

Callers 1

GetEditableMapObjectMethod · 0.85

Calls 10

LocalizeStreetFunction · 0.85
GetNearbyStreetsMethod · 0.80
GetFeatureStreetNameMethod · 0.80
SetNearbyStreetsMethod · 0.80
beginFunction · 0.50
endFunction · 0.50
emptyMethod · 0.45
SetStreetMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected