26 #ifndef __TERRALIB_SRS_INTERNAL_SPATIALREFERENCESYSTEMMANAGER_H 
   27 #define __TERRALIB_SRS_INTERNAL_SPATIALREFERENCESYSTEMMANAGER_H 
   30 #include "../common/Singleton.h" 
   31 #include "../common/UnitOfMeasure.h" 
   42 #include <boost/lexical_cast.hpp> 
   43 #include <boost/multi_index_container.hpp> 
   44 #include <boost/multi_index/member.hpp> 
   45 #include <boost/multi_index/mem_fun.hpp> 
   46 #include <boost/multi_index/ordered_index.hpp> 
   78         srs_desc(
const std::string& name, 
unsigned int auth_id, 
const std::string& auth_name, 
const std::string& p4txt, 
const std::string& wkt);
 
   80         std::string srid() 
const;
 
   96       typedef boost::multi_index_container<
 
   98       boost::multi_index::indexed_by<
 
   99       boost::multi_index::ordered_unique<BOOST_MULTI_INDEX_CONST_MEM_FUN(srs_desc,std::string,srid)>,
 
  100       boost::multi_index::ordered_non_unique<BOOST_MULTI_INDEX_MEMBER(srs_desc,std::string,m_name)>,
 
  101       boost::multi_index::ordered_non_unique<BOOST_MULTI_INDEX_MEMBER(srs_desc,std::string,m_p4txt)>,
 
  102       boost::multi_index::ordered_non_unique<BOOST_MULTI_INDEX_MEMBER(srs_desc,std::string,m_wkt)>,
 
  103       boost::multi_index::ordered_non_unique<BOOST_MULTI_INDEX_MEMBER(srs_desc,std::string,m_auth_name)>
 
  114       typedef boost::multi_index::nth_index<srs_set,0>::type::iterator 
iterator;
 
  133       void init(
const std::string& fileName);
 
  144       void add(
const std::string& name, 
const std::string& p4Txt, 
const std::string& wkt, 
unsigned int id, 
const std::string& authName=
"EPSG");
 
  152       bool recognizes(
unsigned int id, 
const std::string& authName=
"EPSG") 
const;
 
  160       std::string getName (
unsigned int id, 
const std::string& authName=
"EPSG") 
const;
 
  168       std::string getP4Txt(
unsigned int id, 
const std::string& authName=
"EPSG") 
const;
 
  176       std::string getWkt  (
unsigned int id, 
const std::string& authName=
"EPSG") 
const;
 
  184       std::pair<std::string,unsigned int> getIdFromName (
const std::string& name) 
const;
 
  192       std::pair<std::string,unsigned int> getIdFromP4Txt(
const std::string& p4Txt) 
const;
 
  200       std::pair<std::string,unsigned int> getIdFromWkt  (
const std::string& wkt) 
const;
 
  215       void remove (
unsigned int id, 
const std::string& authName=
"EPSG");
 
  230       std::pair<te::srs::SpatialReferenceSystemManager::iterator,te::srs::SpatialReferenceSystemManager::iterator> getIterators() 
const;
 
  242       bool isGeographic(
unsigned int id, 
const std::string& authName=
"EPSG");
 
  247       bool isInitialized();   
 
  253       std::string getNewUserDefinedSRID();
 
  281 #endif // __TERRALIB_SRS_INTERNAL_SPATIALREFERENCESYSTEMMANAGER_H 
boost::multi_index_container< srs_desc, boost::multi_index::indexed_by< boost::multi_index::ordered_unique< BOOST_MULTI_INDEX_CONST_MEM_FUN(srs_desc, std::string, srid)>, boost::multi_index::ordered_non_unique< BOOST_MULTI_INDEX_MEMBER(srs_desc, std::string, m_name)>, boost::multi_index::ordered_non_unique< BOOST_MULTI_INDEX_MEMBER(srs_desc, std::string, m_p4txt)>, boost::multi_index::ordered_non_unique< BOOST_MULTI_INDEX_MEMBER(srs_desc, std::string, m_wkt)>, boost::multi_index::ordered_non_unique< BOOST_MULTI_INDEX_MEMBER(srs_desc, std::string, m_auth_name)> > > srs_set
boost::multi_index::nth_index< srs_set, 0 >::type::iterator iterator
An iterator by SRS  
std::auto_ptr< SpatialReferenceSystem > SpatialReferenceSystemPtr
This file contains the structs necessary to represent a Spatial Reference System. ...
A class to manage Coordinate Systems representations within TerraLib environment. ...
boost::shared_ptr< UnitOfMeasure > UnitOfMeasurePtr
#define TESRSEXPORT
You can use this macro in order to export/import classes and functions from this module. 
Template support for singleton pattern.