MCPcopy Index your code
hub / github.com/MapServer/MapServer / msOGRFileGetItems

Function msOGRFileGetItems

mapogr.cpp:1744–1814  ·  view source on GitHub ↗

* msOGRFileGetItems() * * Returns a list of field names in a NULL terminated list of strings. **********************************************************************/

Source from the content-addressed store, hash-verified

1742 * Returns a list of field names in a NULL terminated list of strings.
1743 **********************************************************************/
1744static char **msOGRFileGetItems(layerObj *layer, msOGRFileInfo *psInfo )
1745{
1746 OGRFeatureDefnH hDefn;
1747 int i, numitems,totalnumitems;
1748 int numStyleItems = MSOGR_LABELNUMITEMS;
1749 char **items;
1750 const char *getShapeStyleItems, *value;
1751
1752 if((hDefn = OGR_L_GetLayerDefn( psInfo->hLayer )) == NULL)
1753 {
1754 msSetError(MS_OGRERR,
1755 "OGR Connection for layer `%s' contains no field definition.",
1756 "msOGRFileGetItems()",
1757 layer->name?layer->name:"(null)" );
1758 return NULL;
1759 }
1760
1761 totalnumitems = numitems = OGR_FD_GetFieldCount( hDefn );
1762
1763 getShapeStyleItems = msLayerGetProcessingKey( layer, "GETSHAPE_STYLE_ITEMS" );
1764 if (getShapeStyleItems && EQUAL(getShapeStyleItems, "all"))
1765 totalnumitems += numStyleItems;
1766
1767 if((items = (char**)malloc(sizeof(char *)*(totalnumitems+1))) == NULL)
1768 {
1769 msSetError(MS_MEMERR, NULL, "msOGRFileGetItems()");
1770 return NULL;
1771 }
1772
1773 for(i=0;i<numitems;i++)
1774 {
1775 OGRFieldDefnH hField = OGR_FD_GetFieldDefn( hDefn, i );
1776 items[i] = msStrdup( OGR_Fld_GetNameRef( hField ));
1777 }
1778
1779 if (getShapeStyleItems && EQUAL(getShapeStyleItems, "all"))
1780 {
1781 assert(numStyleItems == 21);
1782 items[i++] = msStrdup( MSOGR_LABELFONTNAMENAME );
1783 items[i++] = msStrdup( MSOGR_LABELSIZENAME );
1784 items[i++] = msStrdup( MSOGR_LABELTEXTNAME );
1785 items[i++] = msStrdup( MSOGR_LABELANGLENAME );
1786 items[i++] = msStrdup( MSOGR_LABELFCOLORNAME );
1787 items[i++] = msStrdup( MSOGR_LABELBCOLORNAME );
1788 items[i++] = msStrdup( MSOGR_LABELPLACEMENTNAME );
1789 items[i++] = msStrdup( MSOGR_LABELANCHORNAME );
1790 items[i++] = msStrdup( MSOGR_LABELDXNAME );
1791 items[i++] = msStrdup( MSOGR_LABELDYNAME );
1792 items[i++] = msStrdup( MSOGR_LABELPERPNAME );
1793 items[i++] = msStrdup( MSOGR_LABELBOLDNAME );
1794 items[i++] = msStrdup( MSOGR_LABELITALICNAME );
1795 items[i++] = msStrdup( MSOGR_LABELUNDERLINENAME );
1796 items[i++] = msStrdup( MSOGR_LABELPRIORITYNAME );
1797 items[i++] = msStrdup( MSOGR_LABELSTRIKEOUTNAME );
1798 items[i++] = msStrdup( MSOGR_LABELSTRETCHNAME );
1799 items[i++] = msStrdup( MSOGR_LABELADJHORNAME );
1800 items[i++] = msStrdup( MSOGR_LABELADJVERTNAME );
1801 items[i++] = msStrdup( MSOGR_LABELHCOLORNAME );

Callers 1

msOGRLayerGetItemsFunction · 0.85

Calls 6

msSetErrorFunction · 0.85
msLayerGetProcessingKeyFunction · 0.85
msStrdupFunction · 0.85
msOWSLookupMetadataFunction · 0.85
strcasecmpFunction · 0.85

Tested by

no test coverage detected