From 1d946113580f92bc869340663b718d682eb525e7 Mon Sep 17 00:00:00 2001 From: Ilya Zverev Date: Tue, 11 Oct 2016 13:28:24 +0300 Subject: [PATCH 1/3] [feature_list] Add website column --- feature_list/feature_list.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/feature_list/feature_list.cpp b/feature_list/feature_list.cpp index e6d56f100f..898fc9f5d6 100644 --- a/feature_list/feature_list.cpp +++ b/feature_list/feature_list.cpp @@ -177,11 +177,12 @@ public: ? addr.GetStreetName() + ", " + addr.GetHouseNumber() : ""; string phone = f.GetMetadata().Get(feature::Metadata::FMD_PHONE_NUMBER); + string website = f.GetMetadata().Get(feature::Metadata::FMD_WEBSITE); string cuisine = strings::JoinStrings(obj.GetLocalizedCuisines(), ", "); string opening_hours = f.GetMetadata().Get(feature::Metadata::FMD_OPEN_HOURS); - vector columns = {uid, lat, lon, mwmName, category, name, - city, address, phone, cuisine, opening_hours}; + vector columns = {uid, lat, lon, mwmName, category, name, + city, address, phone, website, cuisine, opening_hours}; AppendNames(f, columns); PrintAsCSV(columns, cout, ';'); } @@ -189,8 +190,8 @@ public: void PrintHeader() { - vector columns = {"id", "lat", "lon", "mwm", "category", "name", - "city", "address", "phone", "cuisine", "opening_hours"}; + vector columns = {"id", "lat", "lon", "mwm", "category", "name", + "city", "address", "phone", "website", "cuisine", "opening_hours"}; // Append all supported name languages in order. for (uint8_t idx = 1; idx < kLangCount; idx++) columns.push_back("name_" + string(StringUtf8Multilang::GetLangByCode(idx))); From c93d2394e38a3b5eda76a866f5579a5820704f90 Mon Sep 17 00:00:00 2001 From: Ilya Zverev Date: Tue, 11 Oct 2016 13:39:29 +0300 Subject: [PATCH 2/3] [feature_list] Add const modifier everywhere --- feature_list/feature_list.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/feature_list/feature_list.cpp b/feature_list/feature_list.cpp index 898fc9f5d6..9d9b82c518 100644 --- a/feature_list/feature_list.cpp +++ b/feature_list/feature_list.cpp @@ -155,31 +155,31 @@ public: void Process(FeatureType const & f) { f.ParseBeforeStatistic(); - string category = GetReadableType(f); + string const & category = GetReadableType(f); if (!f.HasName() || f.GetFeatureType() == feature::GEOM_LINE || category.empty()) return; - m2::PointD center = FindCenter(f); - ms::LatLon ll = MercatorBounds::ToLatLon(center); + m2::PointD const & center = FindCenter(f); + ms::LatLon const & ll = MercatorBounds::ToLatLon(center); osm::MapObject obj; obj.SetFromFeatureType(f); string city; m_finder.GetLocality(center, city); - string mwmName = f.GetID().GetMwmName(); + string const & mwmName = f.GetID().GetMwmName(); string name, secondary; f.GetPreferredNames(name, secondary); - string uid = BuildUniqueId(ll, name); - string lat = strings::to_string_dac(ll.lat, 6); - string lon = strings::to_string_dac(ll.lon, 6); + string const & uid = BuildUniqueId(ll, name); + string const & lat = strings::to_string_dac(ll.lat, 6); + string const & lon = strings::to_string_dac(ll.lon, 6); search::ReverseGeocoder::Address addr; - string address = m_geocoder.GetExactAddress(f, addr) - ? addr.GetStreetName() + ", " + addr.GetHouseNumber() - : ""; - string phone = f.GetMetadata().Get(feature::Metadata::FMD_PHONE_NUMBER); - string website = f.GetMetadata().Get(feature::Metadata::FMD_WEBSITE); - string cuisine = strings::JoinStrings(obj.GetLocalizedCuisines(), ", "); - string opening_hours = f.GetMetadata().Get(feature::Metadata::FMD_OPEN_HOURS); + string const & address = m_geocoder.GetExactAddress(f, addr) + ? addr.GetStreetName() + ", " + addr.GetHouseNumber() + : ""; + string const & phone = f.GetMetadata().Get(feature::Metadata::FMD_PHONE_NUMBER); + string const & website = f.GetMetadata().Get(feature::Metadata::FMD_WEBSITE); + string const & cuisine = strings::JoinStrings(obj.GetLocalizedCuisines(), ", "); + string const & opening_hours = f.GetMetadata().Get(feature::Metadata::FMD_OPEN_HOURS); vector columns = {uid, lat, lon, mwmName, category, name, city, address, phone, website, cuisine, opening_hours}; From 4d304fb4a45aa166bfcf196b0e7a6f0df313fbad Mon Sep 17 00:00:00 2001 From: Ilya Zverev Date: Tue, 11 Oct 2016 17:26:54 +0300 Subject: [PATCH 3/3] [feature_list] Expand to_string_with_digits_after_comma --- base/string_utils.hpp | 1 + feature_list/feature_list.cpp | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/base/string_utils.hpp b/base/string_utils.hpp index 179a5d560b..0d5a77754f 100644 --- a/base/string_utils.hpp +++ b/base/string_utils.hpp @@ -434,6 +434,7 @@ inline string to_string(uint64_t i) { return impl::to_string_unsigned(i); } /// Use this function to get string with fixed count of /// "Digits after comma". string to_string_dac(double d, int dac); +inline string to_string_with_digits_after_comma(double d, int dac) { return to_string_dac(d, dac); } //@} bool StartsWith(UniString const & s, UniString const & p); diff --git a/feature_list/feature_list.cpp b/feature_list/feature_list.cpp index 9d9b82c518..c8d181e866 100644 --- a/feature_list/feature_list.cpp +++ b/feature_list/feature_list.cpp @@ -86,8 +86,8 @@ string GetReadableType(FeatureType const & f) string BuildUniqueId(ms::LatLon const & coords, string const & name) { ostringstream ss; - ss << strings::to_string_dac(coords.lat, 6) << ',' - << strings::to_string_dac(coords.lon, 6) << ',' + ss << strings::to_string_with_digits_after_comma(coords.lat, 6) << ',' + << strings::to_string_with_digits_after_comma(coords.lon, 6) << ',' << name; uint32_t hash = 0; for (char const c : ss.str()) @@ -170,8 +170,8 @@ public: string name, secondary; f.GetPreferredNames(name, secondary); string const & uid = BuildUniqueId(ll, name); - string const & lat = strings::to_string_dac(ll.lat, 6); - string const & lon = strings::to_string_dac(ll.lon, 6); + string const & lat = strings::to_string_with_digits_after_comma(ll.lat, 6); + string const & lon = strings::to_string_with_digits_after_comma(ll.lon, 6); search::ReverseGeocoder::Address addr; string const & address = m_geocoder.GetExactAddress(f, addr) ? addr.GetStreetName() + ", " + addr.GetHouseNumber()