コード例 #1
0
ファイル: intermediate_result.cpp プロジェクト: Winlay/omim
string PreResult2::DebugPrint() const
{
  stringstream ss;
  ss << "{ IntermediateResult: " <<
        "Name: " << m_str <<
        "; Type: " << GetBestType() <<
        "; Rank: " << static_cast<int>(m_info.m_rank) <<
        "; Distance: " << m_distance << " }";
  return ss.str();
}
コード例 #2
0
Result PreResult2::GenerateFinalResult(storage::CountryInfoGetter const & infoGetter,
                                       CategoriesHolder const * pCat,
                                       set<uint32_t> const * pTypes, int8_t locale,
                                       ReverseGeocoder const * coder) const
{
  ReverseGeocoder::Address addr;
  bool addrComputed = false;

  string name = m_str;
  if (coder && name.empty())
  {
    // Insert exact address (street and house number) instead of empty result name.
    if (!addrComputed)
    {
      coder->GetNearbyAddress(GetCenter(), addr);
      addrComputed = true;
    }
    if (addr.GetDistance() == 0)
      name = FormatStreetAndHouse(addr);
  }

  uint32_t const type = GetBestType(pTypes);

  // Format full address only for suitable results.
  string address;
  if (coder)
  {
    address = GetRegionName(infoGetter, type);
    if (ftypes::IsAddressObjectChecker::Instance()(m_types))
    {
      if (!addrComputed)
      {
        coder->GetNearbyAddress(GetCenter(), addr);
        addrComputed = true;
      }
      address = FormatFullAddress(addr, address);
    }
  }

  switch (m_resultType)
  {
  case RESULT_FEATURE:
  case RESULT_BUILDING:
    return Result(m_id, GetCenter(), name, address, pCat->GetReadableFeatureType(type, locale),
                  type, m_metadata);
  default:
    ASSERT_EQUAL(m_resultType, RESULT_LATLON, ());
    return Result(GetCenter(), name, address);
  }
}
コード例 #3
0
ファイル: intermediate_result.cpp プロジェクト: Winlay/omim
bool PreResult2::IsEqualCommon(PreResult2 const & r) const
{
  return (m_geomType == r.m_geomType &&
          GetBestType() == r.GetBestType() &&
          m_str == r.m_str);
}