FWIW, here are the code fragments I added (to my copy of GDAL 1.4.0),
though I have subsequently changed my strategy and don't use it any
longer. This makes it possible to use the styles in a GUI, where you
can list available styles and have the user select one.
The DataSource/Layer/Feature hierarchy would definitely be useful (to
me!) But, long-term, wouldn't a more standards-based system (including
GDAL and OGR) like SLD be a better idea?
regards
Tim
*******************************************************************************************************
In ogrfeaturestyle.cpp:
/*
=
=
======================================================================
*/
/*
OGRStyleMgr
*/
/*
=
=
======================================================================
*/
...
/
****************************************************************************/
/* const char
**OGRStyleMgr::GetStyleCount() */
/
* */
/
****************************************************************************/
int OGRStyleMgr::GetStyleCount()
{
if (m_poDataSetStyleTable)
{
return m_poDataSetStyleTable->Count();
}
return NULL;
}
/
****************************************************************************/
/* const char
**OGRStyleMgr::GetStyleNames() */
/
* */
/
****************************************************************************/
char **OGRStyleMgr::GetStyleNames()
{
if (m_poDataSetStyleTable)
{
return m_poDataSetStyleTable->GetStyleNames();
}
return NULL;
}
...
/*
=
=
======================================================================
*/
/*
OGRStyleTable */
/* Object Used to manage and store a
styletable */
/*
=
=
======================================================================
*/
...
/
****************************************************************************/
/* int
OGRStyleTable::Count() */
/
* */
/* return the number of styles in the table otherwise return
-1 */
/
****************************************************************************/
int OGRStyleTable::Count()
{
return (m_papszStyleTable == NULL) ? -1 :
CSLCount(m_papszStyleTable);
}
/
****************************************************************************/
/* int
OGRStyleTable::GetStyleNames() */
/
* */
/* return a index of the style in the table otherwise return
-1 */
/
****************************************************************************/
char **OGRStyleTable::GetStyleNames()
{
static char **pszNameList = NULL;
const char *pszName = NULL;
const char *pszStyleStringBegin = NULL;
char *pszTmp;
if (pszNameList)
CSLDestroy(pszNameList);
pszNameList = NULL;
for (int i=0; i<Count(); i++)
{
pszStyleStringBegin = strstr(m_papszStyleTable[i],":");
if (pszStyleStringBegin)
{
pszName = CPLStrdup(m_papszStyleTable[i]);
pszTmp = strstr(pszName,":");
if (pszTmp)
{
pszTmp[0] = '\0';
pszNameList = CSLAddString(pszNameList, pszName);
}
}
}
return pszNameList;
}
...
In ogr_featurestyle.h:
class CPL_DLL OGRStyleMgr
{
...
int GetStyleCount();
char **GetStyleNames();
...
};
class CPL_DLL OGRStyleTable
{
...
int Count();
char **GetStyleNames();
...
};
*******************************************************************************************************
On Sep 13, 2008, at 12:14 AM, Mateusz Łoskot wrote:
Daniel Morissette pisze:
Mateusz Łoskot wrote:
Now I've got what's the problem.
Yes, looks like this part of API is missing or for some reasons
not planned. Perhaps Daniel or Frank will explain.
Style tables were part of the initial design, but were never
implemented for any driver as far as I know. That's why the API may
still be incomplete.
Daniel,
Thanks for clarifying it. OGR styling stuff is still a new beast to
me.
OTOH, if you have implemented drivers that support style tables
then you're invited to contribute tickets, patches, or perhaps a
RFC describing what you consider is missing to the API to make it
really useful.
Yes, I think it's reasonable approach.
Best regards,
--
Mateusz Loskot, http://mateusz.loskot.net
Charter Member of OSGeo, http://osgeo.org
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev
_______________________________________________
gdal-dev mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/gdal-dev