Global Mapper SDK 19 中文开发文档(六)

GM_InitLidarQueryFilter

Initializes a Lidar query filter. Call this before specifying your own query members. 

A value of FALSE on aEmptyClassFilter indicates that all classes will be enabled by default. A value of TRUE indicates that all classes will be disabled by default. Update the member mClassFilter[aFilterClass] after initialization to set enable(1)/disable(0) status manually.

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_InitLidarQueryFilter
(
    GM_LidarQueryFilter_t*  aFilter,
    boolean                 aEmptyClassFilter   // IN: should the class filter have all types disabled to start?
)

GM_IsFeatureDeleted

在图层中,查询给定索引处的区域、线或点要素的删除状态。使用 GM_DeleteFeature 函数来改变要素的删除状态。

GM_Error_t32 __stdcall GM_IsFeatureDeleted
(
    GM_LayerHandle_t32      aLayer,             // IN: Layer the point is in
    GM_FeatureClassType_t8  aFeatureClassType,  // IN: Type of feature class (area, point, line)
    uint32                  aFeatureIndex,      // IN: Index of feature in layer
    boolean*                aIsDeleted          // OUT: Returns TRUE if marked as deleted, FALSE if not
)

GM_IsRegistered

如果当前用户已注册或正在使用演示许可证,则返回TRUE。

GM_DLL_EXPORTED boolean __stdcall GM_IsRegistered
(
    void
);

GM_LidarClassFilter_IsClassEnabled 

Checks a Lidar class filter to see is a class is enabled in the filter. Returns TRUE if class in filter, FALSE otherwise. 

GM_DLL_EXPORTED boolean __stdcall GM_LidarClassFilter_IsClassEnabled
(
    const GM_LidarClassFilter_t*    aClassFilter,       // IN: Class filter to modify
    GM_LidarClass_t8                aClass              // IN: Class to check
)

GM_LidarClassFilter_SetClassEnabled 

Enables or disables a Lidar class in a Lidar class filter. 

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_LidarClassFilter_SetClassEnabled
(
    GM_LidarClassFilter_t*  aClassFilter,       // IN: Class filter to modify
    GM_LidarClass_t8        aClass,             // IN: Class to enable/disable
    boolean                 aEnable             // IN: Enable the class?
)

GM_LoadGenericAsciiTextLayer

加载给定的ASCII文本文件,并将图层的句柄填入aLayer参数。图层句柄可以在对库进行其他调用时使用。当调用者使用完毕后,必须通过调用GM_CloseLayer关闭图层。

要加载的ASCII文本文件的格式由提供的aFormatInfo结构定义。如果将该结构传递为NULL,则会出现一个对话框,提示用户输入布局信息。

GM_Error_t32 GM_LoadGenericAsciiTextLayer
( 
    const char*                 aFilename,  // IN: filename of ASCII file to load
    GM_LayerHandle_t32*         aLayer,     // OUT: layer handle for loaded layer
    GM_LoadFlags_t32            aLoadFlags, // IN: load flags
    const GM_AsciiFormatInfo_t* aFormatInfo,// IN: optional format info (use NULL to prompt user)
    const GM_Projection_t*      aProj       // IN: optional projection to use for file (use NULL to prompt user)
);

GM_LoadLayer (不推荐) 

加载给定的文件,并将图层的句柄填入aLayer参数。图层句柄可以在对库进行其他调用时使用。当调用者使用完毕后,必须通过调用GM_CloseLayer关闭图层。

此函数已被弃用。您应该使用GM_LoadLayerList,因为它支持从单个文件中加载多个图层(这在像.zip和.tar.gz这样的存档文件以及多地图格式(如CADRG)中很常见)。

GM_Error_t32 GM_LoadLayer
( 
    const char*         aFilename,
    GM_LayerHandle_t32* aLayer,
    GM_LoadFlags_t32    aLoadFlags
);

GM_LoadLayerList

加载给定的文件,并将图层句柄列表的指针填入aLayerList参数。加载的图层数将存储在aNumLoadedLayers中。

图层句柄可以在对库进行其他调用时使用。每个图层句柄在调用者使用完毕后必须通过调用GM_CloseLayer进行关闭。

请注意,在aLayerList中返回的指针是一个临时指针,在下一次调用GM_LoadLayerList时将被使无效。图层句柄应该从返回的图层列表中复制到某种本地存储中。

GM_Error_t32 GM_LoadLayerList
( 
    const char*             aFilename,
    GM_LayerHandle_t32**    aLayerList,
    uint32*                 aNumLoadedLayers,
    GM_LoadFlags_t32        aLoadFlags
);

GM_LoadLayerListEx

加载给定的文件,并使用指向图层句柄列表的指针填充aLayerList。列表中返回的图层数量将存储在aNumLoadedLayers中。

可以在对库进行其他调用时使用图层句柄。每个图层句柄在使用完毕后必须通过调用GM_CloseLayer进行关闭。

请注意,aLayerList中返回的指针是一个临时指针,在下一次调用GM_LoadLayerList时将被使无效。应该将图层句柄从返回的图层列表中复制到某种本地存储中。

aExtraLoadOptions值允许您提供一个包含附加类型特定加载选项的字符串,用于加载操作。不同导入类型支持的格式如下所示。

支持的附加加载选项

  • Any Format - Format Specification - 可以手动指定图层的类型,而不是使用自动检测机制。通过为aExtraLoadFlags参数提供包含文本"LAYER_TYPE=类型名称"的字符串来实现,比如对于一个BIL格式的文件,可以使用"LAYER_TYPE=BIL"。请参阅Global Mapper脚本语言中IMPORT命令的TYPE参数的文档以获取有效类型名称的列表。如果要为文件类型使用非标准扩展名,这将非常有用。
  • DBDB-v5 HDF5 Data - 指定用于加载DBDB-v5水深数据集的标志,格式如下:geo,。其中是可选的。如果设置为1,那么当指定分辨率找不到数据时,将不会使用低分辨率层的数据。
  • VPF Data (VMAP, DNC, etc.) - 您可以指定一个逗号分隔的带引号的覆盖列表以及要加载的库名称,如果您正在加载的dht文件引用了多个库。例如,要仅加载图层中的边界和交通覆盖范围,请指定COVERAGES="Boundaries,Transportation"的加载标志。请注意,这也会导致不显示覆盖范围/瓦片选择对话框。您还可以在附加加载字符串中提供要加载的FACC代码列表。格式如下:FACC_LIST=",...,"。最后,如果只想加载区域、线条和/或点要素,可以通过添加格式为FEATURE_TYPE="AREAS,LINES,POINTS"的子字符串来指定忽略其他类型。只需省略不想加载的类型,例如,要仅加载线条,可以使用FEATURE_TYPE="LINES"。如果要隐藏显示并加载所有内容的对话框,请使用COVERAGES="*"。这是因为覆盖范围名称支持通配符(*和?)字符。
  • Spatial Database - 您可以指定空间数据库表名和要加载数据的边界框。格式如下:,这些值由逗号分隔。 是要加载的表的名称。 是边界框左下角的经度和纬度。 是边界框右上角的经度和纬度。假设边界框与加载的表具有相同的投影。如果投影具有角度单位,则值必须是十进制度数。例如,要加载一个名为ROADS的表,其中数据是在地理投影(例如WGS84)下的,可以使用以下内容:ROADS,-70.5,0.0,-65.0,45.0。如果您想读取表的全部内容,只需将表的名称单独指定,不需要边界,如下所示:ROADS。
GM_Error_t32 GM_LoadLayerListEx
( 
    const char*             aFilename,
    GM_LayerHandle_t32**    aLayerList,
    uint32*                 aNumLoadedLayers,
    GM_LoadFlags_t32        aLoadFlags,
    const char*             aExtraLoadOptions
);

GM_LoadMapLayoutFile 

从文件中载入地图布局。地图布局文本文件设置了高程图例、距离尺度、矢量要素图例和北箭头的显示。如果在绘制时提供了标志GM_DrawFlags_DrawMapLayoutLayers,则会显示任何配置的地图布局层。

地图布局文件是一个简单的文本文件。虽然没有关于其格式的文档,但您可以在Global Mapper应用程序的地图布局对话框中设置地图布局并将其保存到文件中,然后在文本编辑器中查看和编辑以确定其格式。

GM_Error_t32 GM_LoadMapLayoutFile
(
    const char* aFilename,  // in: name of map layout filename
    void*       aReserved   // reserved for later use, must be NULL
)

GM_LoadOnlineLayer

从在线源(如WMS、OSM、TMS或谷歌地图瓦片)加载数据。这包括为整个世界提供地形、影像和街道地图的数据源。如果aSourceName的值为NULL,则会显示一个对话框,询问用户要加载哪个在线数据源和范围。如果aSourceName是包含新源定义的本地文件的完整路径和名称,而不是加载一个新的图层,那么这些源将被添加到源列表中。然后,您可以调用GM_LoadOnlineLayer来从新添加的源加载图层。 

有效的主题名称是在使用NULL主题名称调用此方法时在对话框中出现的任何名称,例如以下示例(任何匹配都可以):

  • "OpenStreetMap.org Global Street Maps"
  • "World Imagery"
  • "United States Elevation Data (NED) (10m Resolution)"
  • "ASTER GDEM v2 Worldwide Elevation Data"
  • "SRTM Worldwide Elevation Data (3-arc-second Resolution) [Use http://srtm.csi.cgiar.org/ if fails]"
  • "Landsat7 Global Imagery Mosaic (Natural Color, Pan-Sharpened)"
  • "Landsat7 Global Imagery Mosaic (Psuedo-Color, Pan-Sharpened)"

在使用完后,必须通过调用GM_CloseLayer释放aLayer中返回的图层句柄。

aLatLonRect可用于提供要加载的边界框。如果提供了边界框,则边界框应为使用当前投影的基准的纬度/经度范围。如果当前视图/导出投影不可用,则WGS84将是纬度/经度值的基准。如果您希望提供其他投影中的边界框,则可以使用aExtraLoadOptions中的BOUNDS_PROJ值指定投影(请参见下文)。

aExtraLoadOptions字符串可以包含额外的选项,作为以空格分隔的字符串。目前支持以下选项:

  • BOUNDS_PROJ - 指定aLatLonBounds参数中的坐标投影。请参考脚本参考文档以了解允许的值的描述。例如,您可以通过在aExtraLoadOptions中传递"BOUNDS_PROJ=EPSG:4326"来指定边界框为纬度/经度WGS84投影的EPSG代码。
  • CLAMP_TO_BOUNDS - 指定图层边界是否应被限制在指定的边界框内,或者是否允许在整个数据集上进行平移。默认情况下,将限制在边界框内。使用CLAMP_TO_BOUNDS=NO来禁用限制行为。
  • ZOOM_OFFSET - 指定要应用于计算的最佳缩放级别的偏移量,用于特定的绘制或导出。例如,添加ZOOM_OFFSET=-1会导致每次绘制/导出使用比绘制/导出分辨率低一个缩放级别(即半分辨率)。
  • INC_LAYER - 指定要包含的图层/组的名称。可以包含通配符。允许多个值。如果存在INC_LAYER值匹配的图层将被添加。您还可以在名称之前包含组名,用'-->'或''分隔。例如,要仅添加“*** POPULAR SOURCES ***”或“TERRAIN DATA”组中的源,请使用“\”INC_LAYER=*POPULAR SOURCES*-->*\" \"INC_LAYER=TERRAIN DATA --> * \”\"(转义序列与C/C++代码使用的一致)。要仅添加NAIP图像,请使用“\”INC_LAYER=NAIP Color Imagery* \””。
  • EXC_LAYER - 指定要排除的图层/组的名称。有关格式的信息,请参阅上面的INC_LAYER定义。如果存在任何与EXC_LAYER值匹配的图层,将不会添加它们。
  • FLUSH_CACHE[=source_type] - 指定要清除本地缓存文件而不是加载新源。如果您提供了一个数字类型的源(来自GM_OnlineSourceType_t枚举),那么只有该类型的本地文件会被清除。例如,FLUSH_CACHE=0只清除来自GM_SourceType_WMS源的文件。如果您还提供了一个被识别的源名称给函数,那么只会清除该源的缓存文件。
GM_Error_t32 __stdcall GM_LoadOnlineLayer
(
    const char*             aSourceName,        // in: source to load or NULL to ask user
    const GM_Rectangle_t*   aLatLonRect,        // in: lat/lon rect to import (NULL to ask user)
    GM_LayerHandle_t32*     aLayer,             // out: handle to loaded layer
    const char*             aExtraLoadOptions   // in: string of extra load options
)

GM_LoadPackage

加载一个新的Global Mapper包(.gmp)文件。如果您不需要对整个包进行操作,也可以使用GM_LoadLayerList命令加载包文件。

包的句柄将在aPackage中返回。此包句柄可以在特定于包的例程中使用,如GM_DrawPackageList。每个包句柄在调用者使用完毕后必须通过调用GM_ClosePackage进行关闭。

GM_Error_t32 GM_LoadPackage
( 
    const char*             aFilename,
    GM_PackageHandle_t32*   aPackage,
    GM_LoadFlags_t32        aLoadFlags
);

GM_LoadProjectionFile

从投影(PRJ,Ozi .map等)文件中初始化一个GM_Projection_t结构体。

GM_Error_t32 __stdcall GM_LoadProjectionFile
(
    const char*             aFilename,  // filename of projection file to load
    GM_Projection_t*        aProj       // buffer in which to place decoded projection.
);

GM_LoadProjectionFromEPSGCode

根据EPSG投影代码,初始化一个GM_Projection_t结构。

GM_Error_t32 __stdcall GM_LoadProjectionFromEPSGCode
(
    uint32                  aEpsgCode,  // IN: EPSG code to get projection from
    GM_Projection_t*        aProj       // OUT: buffer in which to place decoded projection.
);

GM_LoadProjectionFromWKTString

根据WKT投影字符串(例如在PRJ文件中找到的字符串),初始化一个GM_Projection_t结构。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_LoadProjectionFromWKTString
(
    const char*             aStr,       // IN: String to decode projection from
    GM_Projection_t*        aProj       // OUT: buffer in which to place decoded projection.
)

GM_LoadRectifiedLayer

加载给定的文件,并使用该文件填充aLayer,其中包含指向图层的句柄。该图层句柄可以在调用库的其他方法时使用。当调用程序完成使用图层后,必须调用GM_CloseLayer来关闭图层。

根据提供的地面控制点(GCP)列表,将位置设置在图层上。GCP列表中的地面坐标必须以aProj指定的投影为参考。

GM_DLL_EXPORTED GM_Error_t32 GM_LoadRectifiedLayer
( 
    const char*                     aFilename,
    GM_LayerHandle_t32*             aLayer,
    GM_LoadFlags_t32                aLoadFlags,
    const GM_GroundControlPoint_t*  aGCPList,
    uint32                          aNumGCPs,
    const GM_Projection_t*          aProj
);

GM_LoadTerraServerLayer (不推荐) 

注意:此函数现已弃用,请改用GM_LoadOnlineLayer。

从TerraServer加载数据,包括DRG、DOQ和城市区域图像。如果aThemeName或aLatLonRect的值为NULL,则会显示一个对话框,询问用户要加载哪个主题和边界。

有效的主题名称如下:

  • "DRG" - USGS DRG扫描的地形地图
  • "DOQ" - USGS DOQ灰度航空图像,分辨率为1米
  • "UrbanArea" - NIMA / USGS高分辨率彩色图像

在使用完后,必须使用GM_CloseLayer调用来释放aLayer中返回的图层句柄。

GM_DLL_EXPORTED GM_Error_t32 GM_LoadTerraServerLayer
(
    const char*             aThemeName, // in: name of the theme to load ("drg", "doq", etc.) or NULL to ask user
    const GM_Rectangle_t*   aLatLonRect,// in: lat/lon rect to import (NULL to ask user)
    GM_LayerHandle_t32*     aLayer      // out: handle to loaded TerraServer layer
);

GM_MapCatalogAddFile 

从磁盘上的文件向地图目录中添加一个新的地图。aCatalogLayer参数应该是使用GM_MapCatalogCreate创建的,或者使用GM_LoadLayer*函数之一加载的。

GM_Error_t32 GM_MapCatalogAddFile
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    const char*             aFilename       // IN: Filename of map to add to the catalog
);

GM_MapCatalogAddLayer

从已经加载的图层向地图目录中添加一个新的地图。aCatalogLayer参数应该是使用GM_MapCatalogCreate创建的,或者使用GM_LoadLayer*函数之一加载的。

注意,提供的图层也将保持为一个单独的图层。如果不希望这样,请在将其添加到目录图层之后,简单地调用GM_CloseLayer关闭地图图层。

GM_Error_t32 GM_MapCatalogAddLayer
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    GM_LayerHandle_t32      aMapLayer       // IN: Handle of loaded map layer to add to the catalog
);

GM_MapCatalogChangeMapOrder

将地图列表中从aCurMapIndex开始的aNumMapsToMove个地图移动到aNewMapIndex。如果您对aNumMapsToMove使用-1,则从aNumMapsToMove到列表末尾的所有地图都将移动到aNewMapIndex。在这种情况下,aNewMapIndex必须小于aCurMapIndex。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_MapCatalogChangeMapOrder
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    uint32                  aCurMapIndex,   // IN: Current index of map (0-based) to move
    uint32                  aNewMapIndex,   // IN: New index of map (0-based) 
    sint32                  aNumMapsToMove, // IN: Number of maps to move (-1 for everything from aCurMapIndex to end of list)
    void*                   aReserved       // Reserved for future use, must be NULL
);

GM_MapCatalogCreate

使用给定的描述和本地投影创建一个新的地图目录图层。一旦创建了新的地图目录,就可以使用返回的句柄在调用GM_MapCatalogAddFile或GM_MapCatalogAddLayer时将新地图添加到目录中。使用GM_MapCatalogSave将地图目录保存到可以使用任何GM_LoadLayer*函数后加载的磁盘文件中。

GM_LayerHandle_t32 GM_MapCatalogCreate
(
    const char*             aDescription,   // IN: Description to use for layer (can be NULL to use default)
    const GM_Projection_t*  aProj           // IN: Native projection of new layer (NULL for Geographic/WGS84/Arc Degrees)
);

GM_MapCatalogDisableMap 

在地图目录中禁用(或重新启用)地图。使用GM_MapCatalogGetInfo来获取图层中地图的数量。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_MapCatalogDisableMap
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    uint32                  aMapIndex,      // IN: Index of map (0-based) to disable/enable
    boolean                 aDisable        // IN: Pass TRUE to disable map or FALSE to re-enable it
);

GM_MapCatalogGetInfo

获取关于地图目录的信息和统计数据(使用GM_GetLayerInfo获取通用信息)。

GM_Error_t32 GM_MapCatalogGetInfo
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    GM_MapCatalogInfo_t*    aCatalogInfo    // OUT: Structure holding catalog information
);

GM_MapCatalogGetMapInfo

在地图目录中获取地图的信息(使用GM_MapCatalogGetInfo获取地图数量)。如果目录无效或给定索引处没有地图,则返回NULL。否则,返回的指针是临时的,下一次调用此函数后将变为无效。

const GM_LayerInfo_t* GM_MapCatalogGetMapInfo
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    uint32                  aMapIndex       // IN: Index of map (0-based) to get info about
);

GM_MapCatalogRemoveMap

从地图目录中删除给定索引处的地图。

GM_Error_t32 GM_MapCatalogRemoveMap
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    uint32                  aMapIndex       // IN: Index of map (0-based) to remove from map catalog
);

GM_MapCatalogSave

将给定的地图目录保存到磁盘上的指定文件中。

GM_Error_t32 GM_MapCatalogSave
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    const char*             aFilename       // IN: Filename to save map catalog to
);

GM_MapCatalogSetDisplayInfo

设置地图目录中图层的显示方式。根据aDisplayType的取值,aDisplayValue和aDisplayValue2参数具有以下含义:

  • GM_MapCatalog_DisplayTypePercent - aDisplayValue表示在显示之前图层所占视窗的百分比
  • GM_MapCatalog_DisplayTypePixelSize - aDisplayValue表示在显示图层之前,显示窗口中一个像素的大小(以米为单位)
  • GM_MapCatalog_DisplayTypeScale - aDisplayValue表示比例尺的分母(例如,对于1:100K,则为100000.0)。只要绘制窗口的计算比例尺值小于或等于指定值,地图目录中的图层就会被绘制。
  • GM_MapCatalog_DisplayTypeScaleRange - aDisplayValue和aDisplayValue2指定了一个范围,绘制窗口的比例尺在该范围内时绘制地图目录中的图层。例如,如果要在绘制窗口的比例尺在1:50K和1:250K之间时绘制图层,则使用50000.0和250000.0作为值。
GM_Error_t32 GM_MapCatalogSetDisplayInfo
(
    GM_LayerHandle_t32          aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    GM_MapCatalogDisplayType_t8 aDisplayType,   // IN: Controls when layers in catalog are displayed
    double                      aDisplayValue,  // IN: First value related to display type
    double                      aDisplayValue2, // IN: Optional econd value for range of scales (use 0.0 if doesn't apply)
    boolean                     aHideBounds     // IN: Hide layer bounds when not drawing a layer?
);

GM_MapCatalogSetMapOption

设置地图目录中地图的选项,例如原生投影。选项类型决定需要传递给aOptData参数的数据类型。以下是可设置的选项类型:

  • GM_MapCatalog_SetMapProjection - 设置地图使用的原生投影。aOptData应该是一个GM_Projection_t*类型的数据。
GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_MapCatalogSetMapOption
(
    GM_LayerHandle_t32      aCatalogLayer,  // IN: Handle to map catalog layer (either from loading or GM_CreateMapCatalog)
    uint32                  aMapIndex,      // IN: Index of map (0-based) to disable/enable
    GM_MapCatalogMapOpt_t8  aMapOpt,        // IN: Option to set. This determines what type you should pass in for 
    const void*             aOptData        // IN: Data to use for option. The value of  controls what this should be.
)

GM_ProjectionGetBase

检索形成给定投影基础的底层基础投影。例如,对于UTM投影,将返回底层的横轴墨卡托投影。对于核心投影,如横轴墨卡托投影,输出将与输入相匹配。

GM_Error_t32 GM_ProjectionGetBase
(
    const GM_Projection_t*  aProjIn,    // IN: projection to convert from (NULL for current)
    GM_Projection_t*        aProjBase   // OUT: projection on which the input projection is based
);

GM_ProjectPoint

这个函数将一个点从一个坐标系统投影到另一个坐标系统。如果对任一投影参数传递NULL,则将使用当前的视图/导出投影。该函数提供了一种简单的方法,可以将纬度/经度坐标(或任何其他支持的投影中的坐标)转换为任何其他投影,包括当前视图投影。

有关如何设置投影定义的示例,请参阅GM_SetProjection函数的文档。

GM_Error_t32 GM_ProjectPoint
(
    double                  aXIn,       // IN: X coordinate of input point
    double                  aYIn,       // IN: Y coordinate of input point
    double*                 aXOut,      // OUT: X coordinate of output point
    double*                 aYOut,      // OUT: Y coordinate of output point
    const GM_Projection_t*  aProjIn,    // IN: projection to convert from (NULL for current)
    const GM_Projection_t*  aProjOut    // IN: projection to convert to (NULL for current)
);

GM_ProjectPointAtElev 

该函数将一个点从一个坐标系统投影到另一个坐标系统,并在椭球体上方的某个高度进行转换。如果需要在椭球体上方的某个高度进行非常精确的转换,请使用此函数,使用GM_ProjectPoint则可以在椭球体表面和表面附近的几千米之间进行转换的典型差异小于1米。如果对任一投影参数传递NULL,则将使用当前的视图/导出投影。该函数提供了一种简单的方法,可以将纬度/经度坐标(或任何其他支持的投影中的坐标)转换为任何其他投影,包括当前视图投影。

有关如何设置投影定义的示例,请参阅GM_SetProjection函数的文档。

GM_Error_t32 GM_ProjectPointAtElev
(
    double                  aXIn,       // IN: X coordinate of input point
    double                  aYIn,       // IN: Y coordinate of input point
    double*                 aXOut,      // OUT: X coordinate of output point
    double*                 aYOut,      // OUT: Y coordinate of output point
    const GM_Projection_t*  aProjIn,    // IN: projection to convert from (NULL for current)
    const GM_Projection_t*  aProjOut,   // IN: projection to convert to (NULL for current)
    double                  aElev       // IN: elevation in meters above ellipsoid surface to do conversion at
);

GM_ProjectPointFromECEF

将从以某个数据参考(通常是WGS84)为基础的ECEF(地心地固)坐标中的点投影到某个投影坐标中。参见GM_ProjectPointToECEF的示例。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ProjectPointFromECEF
(
    double                  aX,         // IN: ECEF X coordinate of input
    double                  aY,         // IN: ECEF Y coordinate of input
    double                  aZ,         // IN: ECEF Z coordinate of input
    double*                 aXOut,      // OUT: X coordinate of output point
    double*                 aYOut,      // OUT: Y coordinate of output point
    double*                 aZOut,      // OUT: Z coordinate of output point (meters above ellipsoid)
    DATUM                   aDatum,     // IN: datum of ECEF coordinate (normally GM_DATUM_WGS_84)
    const GM_Projection_t*  aProjOut    // IN: projection to convert to (NULL for current)
)

GM_ProjectPointList

将一组点从一个坐标系统投影到另一个坐标系统。默认情况下,每个转换在椭球体表面完成,但如果您提供一个高程值列表(每个点一个),您可以在相对于椭球体表面的任意高度进行计算。如果任何重投影失败,将返回GM_Error_Projection。

如果您需要重投影大量点,则这比为每个点特征单独调用GM_ProjectPoint要快得多。

有关如何设置投影定义的示例,请参阅GM_SetProjection函数的文档。

GM_Error_t32 __stdcall GM_ProjectPointList
(
    GM_Point_t*             aPointList, // IN/OUT: List of points to convert and buffer to hold converted points
    uint32                  aNumPoints, // IN: Number of points to convert
    float*                  aElevList,  // IN: Optional list of elevations (in meeters above ellipsoid surface) to do conversions at. Use NULL for default conversion at ellipsoid surface
    const GM_Projection_t*  aProjIn,    // IN: projection to convert from (NULL for current)
    const GM_Projection_t*  aProjOut    // IN: projection to convert to (NULL for current)
)

GM_ProjectPointToECEF

将一个点从某个投影的坐标投影到ECEF(以地心为中心的地球固定)坐标,参考某个基准点(通常为WGS84)。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ProjectPointToECEF
(
    double                  aXIn,       // IN: X coordinate of input point
    double                  aYIn,       // IN: Y coordinate of input point
    double                  aZIn,       // IN: Z coordinate of input point (meters above ellipsoid), usually 0
    double*                 aX,         // OUT: ECEF X coordinate of input
    double*                 aY,         // OUT: ECEF Y coordinate of input
    double*                 aZ,         // OUT: ECEF Z coordinate of input
    DATUM                   aDatum,     // IN: datum for ECEF conversion (normally GM_DATUM_WGS_84)
    const GM_Projection_t*  aProjIn     // IN: projection of input point (NULL for current projection)
)

例子

// Convert a sample lat/lon point to ECEF
GM_Projection_t theGeoProj;
::memset( &theGeoProj, 0, sizeof theGeoProj );
theGeoProj.mProjSys = GM_PRJ_GEO;
theGeoProj.mDatum = GM_DATUM_WGS_84;
theGeoProj.mUnit = GM_PRJ_UNIT_ARC_DEGREES;
double theLat = 39.0;
double theLon = -90.0;
double theX, theY, theZ;
GM_Error_t32 theErr = GM_ProjectPointToECEF( theLon, theLat, &theX, &theY, &theZ, GM_DATUM_WGS_84, &theGeoProj );

// Convert back, yielding the same point as you started with
double theRevLat, theRevLon;
theErr = GM_ProjectPointFromECEF( theX, theY, theZ, &theRevLon, &theRevLat, GM_DATUM_WGS_84, &theGeoProj );

GM_ProjectRectangle

将一个矩形从一个坐标系统投影到另一个坐标系统。如果传递的投影参数为NULL,则将使用当前视图投影。

请注意,应该使用此函数而不是简单地对矩形的角点调用GM_ProjectPoint,因为在其他投影中,许多矩形将不会是矩形,导致最小/最大值沿着一个边缘,或者在某些情况下,如极地立体投影中,最小/最大值可能在矩形的内部。

有关如何设置投影定义的示例,请参阅GM_SetProjection函数的文档。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ProjectRectangle
(
    const GM_Rectangle_t*   aRectIn,    // IN: Rectangle to convert in input projection
    GM_Rectangle_t*         aRectOut,   // OUT: Rectangle in output projection
    const GM_Projection_t*  aProjIn,    // IN: projection to convert from (NULL for current)
    const GM_Projection_t*  aProjOut    // IN: projection to convert to (NULL for current)
);

GM_RemoveCustomBrushStyle 

移除之前使用GM_AddCustomBrushStyle函数添加的自定义刷样式。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_RemoveCustomBrushStyle
(
    const char* aBrushName // IN: Text name to use when referring to the brush style
)

GM_RemoveCustomShader 

移除名称为给定名称的自定义着色器。请注意,您只能移除自定义着色器,而不能移除内置的着色器。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_RemoveCustomShader
(
    const char* aShaderName // in: name of custom shader to remove
);

GM_RemoveCustomSymbol

移除之前使用GM_AddCustomSymbol函数添加的自定义符号。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_RemoveCustomSymbol
(
    const char* aSymbolName // IN: Text name to use when referring to the symbol
);

GM_RepositionLayer 

重新定位/重投影给定的图层。

图层将根据提供的地面控制点(GCP)列表进行定位。GCP列表中的地面坐标必须按照aProj指定的投影方式给出。如果您只想更改图层的原生投影,请将aGCPList参数设为NULL,并使用aProj参数提供新的原生投影。

GM_DLL_EXPORTED GM_Error_t32 GM_RepositionLayer
( 
    GM_LayerHandle_t32              aLayer,
    const GM_GroundControlPoint_t*  aGCPList,
    uint32                          aNumGCPs,
    const GM_Projection_t*          aProj
);

GM_RunScript

运行一个Global Mapper脚本(.gms)或工作空间(.gmw)。您可以提供要运行的脚本的文件名,或者提供脚本的原始文本。如果您提供非NULL的aLayerList和aNumLoadedLayers值,那么脚本将在当前加载的数据的上下文中运行,并且脚本留下的任何加载的数据将在脚本完成后可用。否则,脚本将在自己的沙盒中运行。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_RunScript
( 
    const char*             aFilenameOrText,    // IN: string with full path of script or the actual text of the script
    GM_LayerHandle_t32**    aLayerList,         // OUT: list of layer handles loaded by the script (NULL if you don't want to keep them around)
    uint32*                 aNumLoadedLayers,   // OUT: number of layer handles in aLayerList (NULL if you don't want to keep the list)
    GM_LoadFlags_t32        aLoadFlags,         // IN: Extra flags for load behavior
    void*                   aReserved           // IN: Reserved for future use, must be NULL
);

GM_SaveProjectionToFile 

将GM_Projection_t结构保存到投影(PRJ)文件中。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SaveProjectionToFile
(
    const char*             aFilename,  // filename of projection file to save to
    const GM_Projection_t*  aProj,      // projection to save
    uint32                  aReserved   // reserved for future use, must be 0
);

GM_SaveProjectionToString 

将GM_Projection_t结构保存为WKT投影字符串。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SaveProjectionToString
(
    const GM_Projection_t*  aProj,      // projection to save
    char*                   aStrBuf,    // buffer to store string in
    uint32                  aBufSize,   // size of string buffer
    uint32                  aReserved   // reserved for future use, must be 0
)

GM_SaveWorkspace 

将当前加载的图层列表和显示选项保存到工作空间(GMW)文件中。可以使用任何GM_LoadLayer*函数加载工作空间文件。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SaveWorkspace
(
    const char* aFilename,  // IN: name of workspace file to save
    void*       aReserved   // IN: reserved for later use, must be NULL
);

GM_SaveWorkspaceEx 

将提供的加载图层列表和显示选项保存到工作空间(GMW)文件中。如果您没有提供自定义列表,则使用当前加载的列表。如果您希望以与加载顺序不同的顺序保存加载的图层,或者只想为文件的子集创建工作空间,可以使用此函数代替GM_SaveWorkspace。可以使用任何GM_LoadLayer*函数加载工作空间文件。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SaveWorkspaceEx
(
    const char*             aFilename,      // IN: name of workspace file to save
    GM_LayerHandle_t32*     aLayerList,     // IN: List of layers in order to save to workspace or NULL for all in order they were loaded
    uint32                  aLayerCount,    // IN: Number of layers in list (0 for all)
    void*                   aReserved       // IN: reserved for later use, must be NULL
);

GM_SelectAreaStyle 

显示一个对话框,允许用户以图形方式选择一个区域样式。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SelectAreaStyle
(
    GM_AreaStyle_t* aAreaStyle    // IN/OUT: Area style buffer - make sure to initialize before passing in
);

GM_SelectFile 

显示一个文件对话框,允许用户选择要加载的文件。

GM_Error_t32 GM_SelectFile
( 
    char*       aFilename,  // buffer in which to place selected filename (must be at least _MAX_PATH characters in length)
    const char* aFilterStr, // filter string for open dialog (NULL for default)
    const char* aInitialDir,// initial directory to start in (NULL for current)
    HWND        aParentWnd  // handle to parent window for file selection dialog
);

GM_SelectFont 

显示一个对话框,允许用户以图形方式选择字体。请确保初始化所提供的字体定义。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SelectFont
(
    GM_FontDef_t*   aFontDef    // IN/OUT: Font buffer - make sure to initialize before passing in
);

GM_SelectLineStyle 

显示一个对话框,允许用户以图形方式选择线条样式。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SelectLineStyle
(
    GM_LineStyle_t* aLineStyle    // IN/OUT: Line style buffer - make sure to initialize before passing in
);

GM_SelectProjection

显示投影选择对话框,让用户选择投影方式。如果提供了aInitProj参数,则投影对话框将初始化为该投影方式。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SelectProjection
(
    GM_Projection_t*        aSelProj,   // out: projection selected by user
    const GM_Projection_t*  aInitProj   // in: initial projection to use (NULL for default)
);

GM_SelectProjectionEx 

显示投影选择对话框,允许用户选择投影方式。如果提供了aInitProj参数,则投影对话框将初始化为该投影方式。调用方还可以选择性地指定投影对话框在屏幕上的初始位置,以及控制投影选择的标志。

GM_Error_t32 __stdcall GM_SelectProjectionEx
(
    GM_Projection_t*        aSelProj,   // out: projection selected by user
    const GM_Projection_t*  aInitProj,  // in: initial projection to use (NULL for default)
    const POINT*            aDlgPos,    // in: position of top left corner (in screen coordinates) for projection dialog (NULL for default)
    GM_SelectProjFlags_t32  aFlags,     // in: additional flags for projection selection
    void*                   aReserved   // in: reserved for future use (must be NULL)
)

GM_SetAreaFeatureClassDrawStyle 

设置用于绘制具有给定区域分类的区域的默认样式和字体。将区域样式设置为NULL时,将将默认绘制样式重置为该区域分类的默认样式。

通常,在修改区域类的绘制样式时,您需要调用GM_GetAreaFeatureClassDrawStyle获取当前的绘制样式,然后只需更改所需的内容,然后将副本传递给此函数。

GM_Error_t32 GM_SetAreaFeatureClassDrawStyle
(
    AreaFeatureClass_t16    aFeatureClass,      // IN: Feature class to set draw style for
    const GM_AreaStyle_t*   aAreaStyle          // IN: New style to use for area (NULL to reset to default)
);

GM_SetAreaFeatureDrawStyle 

设置用于绘制给定区域对象的样式和字体。将区域样式设置为NULL时,将将绘制样式重置为该区域的分类的默认样式。

通常,在修改区域的绘制样式时,您需要调用GM_GetAreaFeature获取当前的绘制样式,然后复制GM_AreaFeature_t的mAreaStyle成员,并只更改所需的内容,然后将副本传递给此函数。

GM_Error_t32 GM_SetAreaFeatureDrawStyle
(
    GM_LayerHandle_t32      aLayer,             // Layer the area is in
    uint32                  aAreaIndex,         // Index of area in layer
    const GM_AreaStyle_t*   aAreaStyle          // New style to use for area
);

GM_SetAreaFeaturePointList 

设置给定区域要素使用的点位置列表。位置可以在图层的本地投影系统中指定(aPosInLayerCoords为TRUE),也可以在GM_GetProjection返回的当前投影中指定(aPosInLayerCoords为FALSE)。

aHoleIndex参数允许您设置区域内孔的位置列表,以及主要父区域的位置列表。要设置主要父区域的位置列表,请在aHoleIndex中使用0的值。要设置区域中一个孔的位置,请将aHoleIndex设置为区域中孔的基于1的索引。

GM_Error_t32 GM_SetAreaFeaturePointList
(
    GM_LayerHandle_t32      aLayer,             // Layer the area is in
    uint32                  aAreaIndex,         // Index of area in layer
    uint32                  aHoleIndex,         // Index of hole to apply locations to (0 for main parent area, 1 for first hole, etc.)
    const GM_Point_t*       aPointList,         // New list of points for area
    uint32                  aPointCount,        // Number of points in list (must be >= 3)
    boolean                 aPosInLayerCoords   // Are the position in the layer coordinate system or the current coordinate system?
);

GM_SetAreaFeaturePointListEx 

与GM_SetAreaFeaturePointList相同,只是现在您还可以传递一个每个顶点高程的列表来用于该区域。

GM_Error_t32 GM_SetAreaFeaturePointListEx
(
    GM_LayerHandle_t32      aLayer,             // Layer the area is in
    uint32                  aAreaIndex,         // Index of area in layer
    uint32                  aHoleIndex,         // Index of hole to apply locations to (0 for main parent area, 1 for first hole, etc.)
    const GM_Point_t*       aPointList,         // New list of points for area
    uint32                  aPointCount,        // Number of points in list (must be >= 3)
    boolean                 aPosInLayerCoords,  // Are the position in the layer coordinate system or the current coordinate system?
    const float*            aElevList           // IN: Per-vertex elevations for area feature, or NULL for none
);

GM_SetBackgroundColor 

设置绘制和导出图层时使用的背景颜色。返回旧的背景颜色。

COLORREF GM_SetBackgroundColor
(
    COLORREF                aBgColor
);

GM_SetChildLayerOpCallback 

设置在绘制或导出地图目录或在线图层时报告子图层的加载或关闭的函数。通过回调提供的图层句柄可以在其他接受图层句柄的函数调用中使用,因此可以执行诸如自定义矢量样式等操作。可以通过调用GM_GetLayerInfo获取父图层句柄。

GM_DLL_EXPORTED void __stdcall GM_SetChildLayerOpCallback
(
    GM_ChildLayerOpCallbackFunc aCallbackFunc,
    void*                       aUserData       // IN: User data that will be passed back to callback function
);

回调函数本身应该与以下声明匹配:

typedef void (__stdcall *GM_ChildLayerOpCallbackFunc)
( 
    GM_LayerHandle_t32  aChildLayer,    // IN: Handle to new loaded layer
    GM_ChildLayerOp_t8  aChildLayerOp,  // IN: The operation (i.e. load or close) that just happened
    GM_LayerHandle_t32  aParentLayer,   // IN: Handle to new loaded layer's parent
    void*               aUserData,      // IN: User data original provided in call to set this callback
    void*               aReserved       // IN: Reserved for future use
);

GM_SetElevationOverrides

设置当前应用于给定高程图层的高程调整选项。通常应首先调用GM_GetElevationOverrides以获取层的当前高程调整,然后更改相应的选项,然后调用此函数以修改层的调整。

GM_Error_t32 __stdcall GM_SetElevationOverrides
(
    GM_LayerHandle_t32                  aLayer,     // in: layer to set options for
    const GM_ElevationOverrides_t*      aOptions    // in: elevation adjustment options for raster layer
)

GM_SetExportCropAreas

设置在使用导出功能时要使用的裁剪区域列表。如果设置了裁剪区域,则任何后续的导出操作都将被裁剪到这些区域。如果将裁剪区域列表设置为NULL,则裁剪区域列表将重置,并且将使用默认的基于矩形的裁剪方式。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetExportCropAreas
(
    const GM_AreaFeature_t* aAreaList,  // IN: List of areas to crop to (NULL to reset to default crop)
    uint32                  aNumAreas,  // IN: Number of areas in aAreaList
    const GM_Projection_t*  aAreaProj   // IN: Projection system the area coordinates are in (use NULL for current projection)
);

GM_SetFeatureAttrList

设置给定图层中的给定区域、线或点要素要使用的属性列表。

GM_Error_t32 __stdcall GM_SetFeatureAttrList
(
    GM_LayerHandle_t32      aLayer,             // IN: Layer the feature is in
    GM_FeatureClassType_t8  aFeatureClassType,  // IN: Type of feature class (area, point, line)
    uint32                  aFeatureIndex,      // IN: Index of feature in layer
    const GM_AttrValue_t*   aAttrList,          // IN: New list of attributes to associate with feature
    uint16                  aNumAttrs           // IN: Number of attributes in aAttrList
);

GM_SetFeatureClass 

为给定图层中的给定区域、线或点要素设置要素类别。

GM_Error_t32 __stdcall GM_SetFeatureClass
(
    GM_LayerHandle_t32      aLayer,             // IN: Layer the feature is in
    GM_FeatureClassType_t8  aFeatureClassType,  // IN: Type of feature class (area, point, line)
    uint32                  aFeatureIndex,      // IN: Index of feature in layer
    FeatureClass_t16        aFeatureClass       // IN: New feature class to assign to feature
);

GM_SetFeatureClassEnabled

启用或禁用给定要素类别的显示。返回先前的启用/禁用状态。

boolean GM_SetFeatureClassEnabled
(
    FeatureClass_t16        aFeatureClass,      // IN: Feature class to get info for
    GM_FeatureClassType_t8  aFeatureClassType,  // IN: Type of feature class (area, point, line)
    boolean                 aEnable             // IN: Enable or disable the feature class
)

GM_SetFeatureDescription 

设置给定图层中给定区域、线或点要素的描述。传入NULL来重置要素的原始描述(通常是要素分类)。

GM_Error_t32 __stdcall GM_SetFeatureDescription
(
    GM_LayerHandle_t32      aLayer,             // IN: Layer the feature is in
    GM_FeatureClassType_t8  aFeatureClassType,  // IN: Type of feature class (area, point, line)
    uint32                  aFeatureIndex,      // IN: Index of feature in layer
    const char*             aDesc               // IN: New description for feature (NULL to reset to default)
)

GM_SetFeatureLabel 

为给定图层中的给定区域、线或点要素设置显示标签。

GM_Error_t32 __stdcall GM_SetFeatureLabel
(
    GM_LayerHandle_t32      aLayer,             // IN: Layer the feature is in
    GM_FeatureClassType_t8  aFeatureClassType,  // IN: Type of feature class (area, point, line)
    uint32                  aFeatureIndex,      // IN: Index of feature in layer
    const char*             aLabel              // IN: New display label for feature.
)

GM_SetLayerDescription

将描述信息设置为在GM_LayerInfo_t结构中使用,并在添加到地图目录时使用的该图层的描述。

GM_Error_t32 __stdcall GM_SetLayerDescription
(
    GM_LayerHandle_t32  aLayer,         // layer to set description for
    const char*         aDesc           // description to use (pass NULL to restore default)
);

GM_SetLayerElevationAttribute

设置用于确定要素高程的要素属性的名称。提供一个空字符串将将其重置为默认行为,该行为搜索任何已知高程属性的数量,并检查高程基于的类型(如等高线和高程点)的显示名称。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerElevationAttribute
(
    GM_LayerHandle_t32      aLayer,             // Layer to modify
    const char*             aAttrName,          // Name of attribute to use for elevations
    uint32                  aReserved           // Reserved value for future expansion (must be zero)
);

GM_SetLayerElevationUnits

设置用于没有高程单位的3D矢量要素的高程单位。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerElevationUnits
(
    GM_LayerHandle_t32      aLayer,             // Layer to modify
    GM_ElevUnits_t8         aElevUnits          // Elevation units to interpret values as
)

GM_SetLayerEnabled

设置给定图层是否启用显示。如果禁用,该图层将永远不会被绘制或用作其他半透明或纹理映射图层的输入。

初始加载时,默认情况下所有图层都是启用的。

GM_Error_t32 GM_SetLayerEnabled
(
    GM_LayerHandle_t32  aLayer,         // layer to enable or disable
    boolean             aEnable         // enable or disable the layer?
);

GM_SetLayerHeightAttribute

设置要用于确定要素点高度的要素属性的名称。提供空字符串将将其重置为默认行为,该行为搜索任意数量的已知高度属性,并检查基于高度的类型的显示名称。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerHeightAttribute
(
    GM_LayerHandle_t32      aLayer,             // Layer to modify
    const char*             aAttrName,          // Name of attribute to use for height
    uint32                  aReserved           // Reserved value for future expansion (must be zero)
);

GM_SetLayerHeightUnits

设置3D矢量要素在高度属性中没有高度单位时要使用的高度单位。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerHeightUnits
(
    GM_LayerHandle_t32      aLayer,             // Layer to modify
    GM_ElevUnits_t8         aHeightUnits        // Height units to interpret values as
)

GM_SetLayerLabelAttribute

设置用于显示标签的要素属性的名称,用于没有显示标签的要素。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerLabelAttribute
(
    GM_LayerHandle_t32      aLayer,             // Layer to modify labels for
    const char*             aAttrName,          // Name of attribute to use for naming labels
    uint32                  aReserved           // Reserved value for future expansion (must be zero)
);

GM_SetLayerPalette

设置给定图层的颜色调色板。图层必须是基于调色板的图像。图层的GM_LayerInfo_t中的mPalette和mPaletteSize值将指示当前调色板的大小和值。您可以通过传递NULL来恢复图层的原始调色板。如果您传入的颜色比原始调色板中的颜色少,那么只有您提供的颜色会被更新。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerPalette
(
    GM_LayerHandle_t32          aLayer,         // IN: layer to set palette for
    const GM_PaletteEntry_t*    aNewPalette,    // IN: pointer to list of palette entries to use for layer or NULL to reset palette to original palette
    uint32                      aNumPalEntries, // IN: number of palette entries in list
    void*                       aReserved       // IN: reserved for future use, must be NULL
)

GM_SetLayerUserData

设置与图层关联的用户数据。可以通过调用GM_GetLayerInfo来检索该值。这在您希望将某些结构或值与特定图层关联起来,而无需维护自己的单独的图层值映射时非常有用。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerUserData
(
    GM_LayerHandle_t32  aLayer,         // layer to set user data for
    void*               aUserData       // user data pointer/value to associate with layer
)

GM_SetLayerUserText

设置与图层关联的文本字符串。可以通过调用GM_GetLayerInfo来检索该值。该文本字符串将通过使用GM_SaveWorkspace保存到工作空间中,并且如果重新加载该工作空间,则相同的文本字符串将可用。如果您希望将一些文本与图层相关联并通过保存持久化,这将非常有用。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLayerUserText
(
    GM_LayerHandle_t32  aLayer,         // layer to set user text for
    const char*         aUserText       // user text to associate with layer
)

GM_SetLicenseKey

用于提供在购买分发许可证时提供的分发许可证XML密钥。如果密钥无法验证,则会返回GM_Error_NotRegistered。

请注意,这与开发者许可证文件不同。开发者许可证文件仅适用于单台机器。您应通过在测试机器的应用程序文件夹中提供一个“GlobalMapper SDK.lic”文件来提供该文件。您应在应用程序启动时通过此函数以编程方式提供分发许可证密钥。不要将分发许可证作为文件提供给应用程序,确保将其嵌入到应用程序源代码中,以防止未经授权使用SDK应用程序的分发许可证。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLicenseKey
(
    const char* aXmlKeyStr, // IN: full XML string with distribution license key
    void*       aReserved   // reserved for future use, must be NULL
);

GM_SetLidarClassInfo 

Sets information (name, color, group mask) for the given Lidar classification. To restore the class information to the default, pass in NULL for the class information structure. To just change one piece of information (i.e. color), you should first call GM_GetLidarClassInfo to get the existing class info, then just change the piece you want and call GM_SetLidarClassInfo with the update class info structure. 

GM_Error_t32 GM_SetLidarClassInfo
(
    GM_LidarClass_t8            aLidarClass,    // IN: Lidar class to set info for
    const GM_LidarClassInfo_t*  aClassInfo      // IN: New type info to use for Lidar class (NULL to reset to default)
)

GM_SetLidarPoint 

Sets a Lidar point feature in the given layer. The indexes should be in the range [0, GM_LayerInfo_t.mNumLidarPoints). You should use GM_GetLidarPoint to first get the values for a Lidar point before updating the values in the structure. 

Note this could be extremely slow if you are modifying very large numbers of Lidar points. If you need to do that, contact us and we can add a new mechanism for editing Lidar data that is efficient for large sets. 

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetLidarPoint
(
    GM_LayerHandle_t32      aLayer,             // IN: Layer to get point from
    uint64                  aPointIndex,        // IN: Index of Lidar point feature to update
    const GM_LidarPoint_t*  aLidarPoint,        // IN: Lidar point to update
    void*                   aReserved           // IN: Reserved for future use, must be NULL
)

GM_SetLineFeatureClassDrawStyle

设置使用给定线分类绘制线条时的默认样式和字体。如果要将默认绘制样式重置为该线分类的默认样式,请将线样式传递为NULL。

通常,在修改线类的绘制样式时,您可能希望调用GM_GetLineFeatureClassDrawStyle获取当前的绘制样式,然后只更改所需的部分,最后将您的副本传递给此函数。

GM_Error_t32 GM_SetLineFeatureClassDrawStyle
(
    LineFeatureClass_t16    aFeatureClass,      // IN: Feature class to set draw style for
    const GM_LineStyle_t*   aLineStyle          // IN: New style to use for line (NULL to reset to default)
);

GM_SetLineFeatureDrawStyle

设置用于绘制给定线对象的画笔样式和字体。如果要将绘制样式重置为线的分类的默认样式,请将线样式传递为NULL。

通常,在修改线的绘制样式时,您可能希望调用GM_GetLineFeature获取当前的绘制样式,然后将GM_LineFeature_t的mLineStyle成员复制一份,并更改所需的部分,最后将您的副本传递给此函数。

GM_Error_t32 GM_SetLineFeatureDrawStyle
(
    GM_LayerHandle_t32      aLayer,             // Layer the line is in
    uint32                  aLineIndex,         // Index of line in layer
    const GM_LineStyle_t*   aLineStyle          // New style to use for line
);

GM_SetLineFeaturePointList

设置用于给定线要素的点位置列表。位置可以以图层的本地投影系统指定(aPosInLayerCoords为TRUE),或者以GM_GetProjection返回的当前投影中指定(aPosInLayerCoords为FALSE)。

GM_Error_t32 GM_SetLineFeaturePointList
(
    GM_LayerHandle_t32      aLayer,             // Layer the line is in
    uint32                  aLineIndex,         // Index of line in layer
    const GM_Point_t*       aPointList,         // New list of points for line
    uint32                  aPointCount,        // Number of points in list (must be >= 2)
    boolean                 aPosInLayerCoords   // Are the position in the layer coordinate system or the current coordinate system?
);

GM_SetLineFeaturePointListEx

与GM_SetLineFeaturePointList相同,只是现在您还可以传递一个用于线的每个顶点高程的列表。

GM_Error_t32 GM_SetLineFeaturePointListEx
(
    GM_LayerHandle_t32      aLayer,             // Layer the line is in
    uint32                  aLineIndex,         // Index of line in layer
    const GM_Point_t*       aPointList,         // New list of points for line
    uint32                  aPointCount,        // Number of points in list (must be >= 2)
    boolean                 aPosInLayerCoords,  // Are the position in the layer coordinate system or the current coordinate system?
    const float*            aElevList           // IN: List of per-vertex elevations. Use NULL if no elevation list
);

GM_SetMessageCallback

设置在SDK操作期间生成的错误和警告消息的显示函数回调。如果提供了消息回调,将不会显示消息对话框,而是调用回调函数并传递错误或警告消息。然后,回调函数可以自由地执行任何操作,包括忽略消息,这种情况下,错误代码仍将从生成消息的函数返回,就像正常情况下一样。

void GM_SetMessageCallback
(
    GM_MessageCallbackFunc aCallbackFunc
);

GM_SetMiscOption(Ex)

设置在操作期间使用的高级/杂项选项。返回先前的值。请参阅GM_MiscOpt_t32类型的定义,了解可用选项及其描述的列表。请注意,GM_SetMiscOption函数已经被弃用,因为它无法处理长度超过8位的选项,例如GM_MiscOpt_SetLogFilename和GM_MiscOpt_SetTimingsFileName。您可以使用GM_SetMiscOptionEx处理所有选项,只需将它们强制转换为void*。文件名值采用const char*形式表示。对于开/关选项,您还可以使用特殊值GM_MiscOptVal_Toggle来将值切换为当前值的相反值。

如果您只想获取选项的当前值而不更改它,请使用GM_GetMiscOption。

GM_DLL_EXPORTED uint8 __stdcall GM_SetMiscOption
(
    GM_MiscOpt_t32  aOpt,       // IN: Option to set
    uint8           aNewValue   // IN: New value (i.e. 1 to enable or 0 to disable), or value of other setting
);

GM_DLL_EXPORTED void* __stdcall GM_SetMiscOptionEx
(
    GM_MiscOpt_t32  aOpt,       // IN: Option to set
    void*           aNewValue,  // IN: New value (i.e. 1 to enable or 0 to disable), or value of other setting, including possibly pointer
    void*           aReserved   // IN: Reserved for future use, must be NULL
);

GM_SetOrientation

允许以除了大部分投影中将北方朝向屏幕顶部之外的方向绘制数据。默认值为0.0,表示没有旋转。从技术上讲,方向值是将渲染数据逆时针旋转的角度数。

GM_Error_t32 GM_SetOrientation
(
    double              aOrientation    // Orientation of bitmap (0 is north up, 90 is east up, 180 is south up, 270 is west up)
);

GM_SetPointFeatureClassDrawStyle

设置用于绘制具有给定点分类的点的默认样式和字体。将点样式设置为NULL以将默认绘制样式重置为该点分类的默认样式。

通常,在修改点类的绘制样式时,您需要调用GM_GetPointFeatureClassDrawStyle来获取当前的绘制样式,然后只需更改所需的内容,然后将其副本传递给此函数。

GM_Error_t32 GM_SetPointFeatureClassDrawStyle
(
    PointFeatureClass_t16   aFeatureClass,      // IN: Feature class to set draw style for
    const GM_PointStyle_t*    aPointStyle         // IN: New style to use for point (NULL to reset to default)
);

GM_SetPointFeatureDrawStyle

设置用于绘制给定点要素的符号和字体。将点样式设置为NULL以将绘制样式重置为该点的分类的默认样式。

GM_Error_t32 GM_SetPointFeatureDrawStyle
(
    GM_LayerHandle_t32      aLayer,             // Layer the point is in
    uint32                  aPointIndex,        // Index of point in layer
    const GM_PointStyle_t*  aPointStyle         // New style to use for point
);

备注
通常情况下,当修改点的绘制样式时,您会调用GM_GetPointFeature函数来获取当前的绘制样式,然后复制GM_PointFeature_t的mPointStyle成员,并只更改您需要的部分,然后将您的副本传递给此函数。您可以使用GM_AddCustomSymbol函数添加新的符号。 

内置一些自定义符号,您可以使用以下形式的字符串:ShapeName + "_CUSTOM_" + size_R_G_B。 

例如:如果您想要一个红色的5像素的菱形。您可以使用字符串:"DIAMOND_CUSTOM_5_255_0_0" 

内置的自定义形状包括:DOT、SQUARE、DOT_EMPTY、VERT_BAR、CROSS、DIAG_CROSS、STAR、STAR_EMPTY、TRIANGLE、TRIANGLE_EMPTY、DIAMOND、DIAMOND_EMPTY、SQUARE_EMPTY、HALF_PIE和HALF_PIE_EMPTY。

GM_SetPointFeaturePosition

设置给定点要素的位置。位置可以使用图层的本地投影系统指定(aPosInLayerCoords为TRUE),也可以使用GM_GetProjection返回的当前投影系统指定(aPosInLayerCoords为FALSE)。

GM_Error_t32 GM_SetPointFeaturePosition
(
    GM_LayerHandle_t32      aLayer,             // Layer the point is in
    uint32                  aPointIndex,        // Index of point in layer
    const GM_Point_t*       aPosition,          // New location of point
    boolean                 aPosInLayerCoords   // Is the position in the layer coordinate system or the current coordinate system?
);

GM_SetProgressCallback

设置要调用以报告操作进度的函数,例如加载文件。如果提供了进度回调函数,则不会显示进度对话框,而是会调用回调函数。将NULL传递给回调函数以恢复标准的进度报告对话框。

void GM_SetProgressCallback
(
    GM_ProgressCallbackFunc aCallbackFunc
);

GM_SetProjection(Ex)

设置新的投影。所有绘制和导出都会在此投影下进行。所有世界范围矩形也将使用此投影。

GM_Error_t32 GM_SetProjection
(
    const GM_Projection_t*  aProj
);

GM_Error_t32 GM_SetProjectionEx
(
    const GM_Projection_t*  aProj,
    const GM_Rectangle_t*   aLatLonRect, // IN: Optional lat/lon/degrees rectangle for automatic selection of zone for zoned projections
    void*                   aReserved    // IN: Reserved for future use, must be NULL
);

备注
如果你传入带有没有ZONE属性或者ZONE为0的分带投影,比如UTM,那么将使用经纬度矩形(如果提供的话)自动选择最佳分带来适应提供的范围。如果没有提供矩形,将使用最后一个绘制的矩形。

示例1 - 将投影设置为UTM 15分带

GM_Projection_t theUtmProj;
::memset( &theUtmProj, 0, sizeof theUtmProj );
theUtmProj.mProjSys = GM_PRJ_UTM;
theUtmProj.mDatum = GM_DATUM_WGS_84;
theUtmProj.mUnit = GM_PRJ_UNIT_METERS;
theUtmProj.mAttrList[0].mAttr = ZONE;
theUtmProj.mAttrList[0].mValue = 15;
theUtmProj.mNumAttrs = 1;
GM_SetProjection( &theUtmProj );

示例2 - 将投影设置为地理坐标(未投影的经纬度)

GM_Projection_t theGeoProj;
::memset( &theGeoProj, 0, sizeof theGeoProj );
theGeoProj.mProjSys = GM_PRJ_GEO;
theGeoProj.mDatum = GM_DATUM_WGS_84;
theGeoProj.mUnit = GM_PRJ_UNIT_ARC_DEGREES;
GM_SetProjection( &theGeoProj );

示例3 - 将投影设置为自动选择最佳区域的UTM投影方式

GM_Projection_t theUtmProj;
::memset( &theUtmProj, 0, sizeof theUtmProj );
theUtmProj.mProjSys = GM_PRJ_UTM;
theUtmProj.mDatum = GM_DATUM_WGS_84;
theUtmProj.mUnit = GM_PRJ_UNIT_METERS;
theUtmProj.mAttrList[0].mAttr = ZONE;
theUtmProj.mAttrList[0].mValue = 0; // use 0 to automatically selected best UTM zone
theUtmProj.mNumAttrs = 1;
GM_SetProjection( &theUtmProj );

示例4 - 将投影设置为从边界框自动选择最佳区域的UTM投影方式

// Set up lat/lon bounds to select zone for
GM_Rectangle_t theLatLonRect;
theLatLonBounds.mMinX = 
theLatLonRect.mMinX = -90.0;
theLatLonRect.mMaxX = theLatLonRect.mMinX + 0.1;
theLatLonRect.mMinY = 35.0;
theLatLonRect.mMaxY = theLatLonRect.mMinY + 0.1;

// Set up UTM projection with no zone provided
GM_Projection_t theUtmProj;
::memset( &theUtmProj, 0, sizeof theUtmProj );
theUtmProj.mProjSys = GM_PRJ_UTM;
theUtmProj.mDatum = GM_DATUM_WGS_84;
theUtmProj.mUnit = GM_PRJ_UNIT_METERS;
theUtmProj.mNumAttrs = 0;
GM_SetProjectionEx( &theUtmProj, &theLatLonRect, NULL );

GM_SetQueryProjectionCallback 

设置在加载图层时为图层选择投影方式的函数,如果无法自动确定该图层的投影方式。如果提供了回调函数,将调用该函数而不显示投影方式选择对话框。将NULL传递给回调函数以恢复标准的投影方式选择对话框。

GM_DLL_EXPORTED void __stdcall GM_SetQueryProjectionCallback
(
    GM_QueryProjectionCallbackFunc  aCallbackFunc
);

GM_SetQuickPDFUnlockCode 

设置QuickPDF库(http://www.quickpdflibrary.com/)的解锁码(PDF支持所必需)。您需要购买QuickPDF库许可证以获取解锁码,然后可以提供该解锁码以启用SDK中的PDF功能。

GM_Error_t32 __stdcall GM_SetQuickPDFUnlockCode
(
    const char* aUnlockCode // IN: unlock key for QuickPDFDLL library
)

GM_SetRasterDisplayOptions 

设置显示给定栅格图层时要使用的选项。这包括图层的半透明和透明度(如果有的话),图层的颜色强度,以及是否裁剪图层的领口。

通常,您会首先调用GM_GetRasterDisplayOptions函数来检索当前的显示选项,然后修改您想要更改的选项,然后调用GM_SetRasterDisplayOptions来更改选项。这样可以防止您意外更改了不打算更改的选项。

GM_Error_t32 GM_SetRasterDisplayOptions
(
    GM_LayerHandle_t32                  aLayer,     // in: layer to set options for
    const GM_RasterDisplayOptions_t*    aOptions    // in: display options for raster layer
);

GM_SetRegistrationInfo 

设置用于此DLL实例的注册名称和代码。这可以用来提供注册信息,而不必使用GMDLL_regkey.txt文件。如果密钥对于该名称无效,则会返回GM_Error_NotRegistered。

GM_Error_t32 GM_SetRegistrationInfo
(
    const char* aRegName,   // name provided for the registration information
    uint32      aRegKey     // registration key
);

GM_SetRegistryKey 

设置存储/读取设置的基本注册表键。设置将存储在“HKEY_CURRENT_USER\Software\aKeyName\Global Mapper”中,并从中读取。传递空字符串将将设置重置为与Global Mapper应用程序共享的默认位置。

GM_Error_t32 GM_SetRegistryKey
(
    const char* aKeyName    // location in registry under which to store settings
);

GM_SetSettingsFilePath 

设置查找和存储设置文件(例如custom_datums.txt文件以及自定义类型和符号的文件)的路径。默认情况下,将使用GlobalMapperInterface.dll文件的路径,但为了遵守Windows标准,不要将文件存储在Program Files文件夹中,您应该调用此函数将路径设置为可以写入的某个位置,例如您的应用程序的Application Data文件夹。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_SetSettingsFilePath
(
    const char* aPathName   // full path in which to look for and store settings files
)

GM_SetShaderDisplayOptions 

设置用于渲染格网高程数据的高程着色器的选项。通常,您需要首先调用GM_GetShaderDisplayOptions函数获取当前的着色器显示选项,然后修改所需的值,最后调用此函数以更新选项。

GM_Error_t32 GM_SetShaderDisplayOptions
(
    const GM_ShaderOptions_t*           aOptions    // in: shader display options
);

GM_SetVectorDrawScale 

指定在绘制时应用于线宽度、点符号和字体的额外缩放因子。当打印时,这可以用于尝试保持矢量要素与显示的大小相同。

此函数返回先前的矢量绘制缩放因子,以便在必要时可以进行恢复。

float GM_SetVectorDrawScale
(
    float   aDrawScale  // in: scale factor to apply to line widths, symbols, and fonts
);

GM_SetVerticalDisplayOptions 

设置渲染格网高程数据时使用的选项(即着色器、水、光照)。

GM_Error_t32 GM_SetVerticalDisplayOptions
(
    const GM_VerticalDisplayOptions_t*  aVertDispOpts
);

GM_ShowLayerOptionsDialog 

显示提供的图层的选项对话框。目前仅适用于矢量图层选项,例如设置基于属性的标注等。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ShowLayerOptionsDialog
( 
    GM_LayerHandle_t32*     aLayerList,     // List of layers to draw or NULL for all
    uint32                  aLayerCount     // Number of layers in list (0 for all)
);

GM_UpdateLidarQueryPoints 

Updates all of the points in the Lidar query with the new field values. Use this to edit the values for all points in a Lidar query created with a GM_CreateLidarQuery call. 

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_UpdateLidarQueryPoints
(
    GM_LidarQueryHandle_t   aLidarQuery,        // IN: Lidar query to update points in
    GM_LidarFieldMask_t32   aValidFields,       // IN: Which fields of data are valid to be updated
    const GM_LidarPoint_t*  aNewPointData,      // IN: Lidar point to update
    void*                   aReserved           // IN: Reserved for future use, must be NULL
)

你可能感兴趣的:(技术文章,个人开发)