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

GM_DBTestConnection 

测试输入的连接字符串,以验证是否可以用于连接到数据库。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBTestConnection
( 
    const char* aConnectionStr       // IN:  Connection parameter string
);

GM_DBTableList_GetTableName

获取指定索引处的表名称。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBTableList_GetTableName
(
    char* aTableName,                  // OUT: Buffer in which table name will be placed
    uint32 aIndex,                       // IN:  The zero-based index for the table name
    GM_DB_TableList_t32 aTableList     // IN:  Table list handle
);

GM_DBTableList_GetCount

获取表列表中的表数量。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBTableList_GetCount
(
    uint32*              aCount,     // OUT: The number of table names in the list
    GM_DB_TableList_t32  aTableList  // IN:  Table list handle
);

GM_DBTableList_Free

释放与表列表关联的内存。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBTableList_Free
(
    GM_DB_TableList_t32* aTableList             // IN:  Table list handle to be freed
);

GM_DBSelectTable

显示一个对话框,允许用户选择一个或多个要加载的表。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBSelectTable
( 
    GM_DB_TableList_t32* aTableList, // OUT: Handle for list of selected table names
    const char* aConnectionStr       // IN:  Connection parameter string or database file name
);

GM_DBSelectExportTable

显示一个对话框,允许用户选择要导出数据的表。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBSelectExportTable
( 
    char*       aTable,              // OUT: Buffer for storing table name
    uint32      aBufferLength,       // IN:  The length of the table name buffer
    boolean*    aTableExists,        // OUT: Indicates whether or not the selected table exists
    const char* aConnectionStr       // IN:  Connection parameter string or database file name
);

GM_DBMakeConnectionString

根据输入的连接参数生成连接字符串。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBMakeConnectionString
(
    char*                         aConnectionStr,   // OUT: The connection string buffer
    uint32                        aBufferLength,    // IN:  The length of the connection string buffer
    const GM_DBConnectionParms_t* aConnectionParms  // IN:  The connection parameters
);

GM_DBIsDatabaseFile

判断输入文件是否为数据库(Esri地理数据库、Spatialite等)。

GM_DLL_EXPORTED boolean __stdcall GM_DBIsDatabaseFile
(
    const char* aFileName                       // IN: The file name
);

GM_DBGetTableList

获取指定空间数据库中的表列表。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_DBGetTableList
(
    GM_DB_TableList_t32*  aTableList,          // OUT: Table list handle
    const char*           aConnectionInfo      // IN:  Connection string or database file name
);

GM_DecodeMGRSCoordinates

将 MGRS(军事网格参考系统)坐标字符串解码为 X/Y 或经纬度位置。

GM_Error_t32 __stdcall GM_DecodeMGRSCoordinates
(
    const char* aMgrsStr,   // IN: buffer with MGRS coordinate text
    double*     aX,         // OUT: point X/longitude coordinate
    double*     aY,         // OUT: point Y/latitude coordinate
    boolean     aLatLon     // IN: TRUE - return coordinates are lat/lon, FALSE - return coordinates are in the current projection
)

GM_DeleteFeature

更改图层中给定索引处区域、线或点要素的删除状态。请注意,“删除”要素实际上并不会释放它或从图层的要素列表中删除它,而是将其标记为已删除,并在绘制时使其无效。要重新激活已标记为删除的要素,只需将 aDelete 值设置为 FALSE,再次调用此方法。

GM_Error_t32 GM_DeleteFeature
(
    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                 aDelete             // IN: Use TRUE to mark as deleted, FALSE to clear delete flag
);

GM_DrawGridLines

在给定位置将网格线(经度/纬度或视图投影中的)绘制到提供的设备上下文中。如果aWorldBounds参数不为空,则至少绘制指定区域。屏幕像素的纵横比将保持不变,所以可能会绘制比指定区域稍大的世界边界。如果aWorldBounds参数为空,将绘制所有加载图层的网格边界。

GM_Error_t32 GM_DrawGridLines
(
    HDC                     aDC,            // Device context to draw to
    boolean                 aLatLonGrid,    // Draw a lat/lon grid or a view projection grid
    double                  aGridSpacing,   // Grid spacing (use 0.0 for default)
    const GM_Rectangle_t*   aWorldBounds,   // World bounds to draw or NULL for all
    sint32                  aLeftPixel,     // Left pixel coordinate to draw to
    sint32                  aTopPixel,      // Top pixel coordinate to draw to
    sint32                  aPixelWidth,    // Width in pixels to draw
    sint32                  aPixelHeight    // Height in pixels to draw
);

GM_DrawGridLinesEx

将指定位置的网格线(经度/纬度或视图投影中的)绘制到提供的设备上下文中。如果aWorldBounds参数不为空,则至少绘制指定区域。屏幕像素的纵横比将保持不变,因此可能会绘制比指定区域稍大的世界边界。如果aWorldBounds参数为空,将绘制所有加载图层的网格边界。

如果指定了aMaxGridBounds参数,网格线将被允许在指定的范围内绘制。否则,网格线将被限制在所有加载数据的边界范围内。

GM_Error_t32 GM_DrawGridLinesEx
(
    HDC                     aDC,            // Device context to draw to
    boolean                 aLatLonGrid,    // Draw a lat/lon grid or a view projection grid
    double                  aGridSpacing,   // Grid spacing (use 0.0 for default)
    const GM_Rectangle_t*   aWorldBounds,   // World bounds to draw or NULL for all
    sint32                  aLeftPixel,     // Left pixel coordinate to draw to
    sint32                  aTopPixel,      // Top pixel coordinate to draw to
    sint32                  aPixelWidth,    // Width in pixels to draw
    sint32                  aPixelHeight,   // Height in pixels to draw
    const GM_Rectangle_t*   aMaxGridBounds  // Maximum grid bounds (NULL for loaded data bounds)
);

GM_DrawLayer

将一个或多个图层绘制到提供的设备上下文中,并在给定位置进行显示。如果aWorldBounds参数不为空,则至少绘制指定区域。屏幕像素的纵横比将保持不变,因此可能会绘制比指定区域稍大的世界边界。如果aWorldBounds参数为空,则将渲染整个指定的图层或所有加载的图层。

GM_Error_t32 GM_DrawLayer
(
    HDC                     aDC,            // Device context to draw to
    GM_LayerHandle_t32      aLayer,         // Layer to draw or NULL for all
    const GM_Rectangle_t*   aWorldBounds,   // World bounds to draw or NULL for all
    sint32                  aLeftPixel,     // Left pixel coordinate to draw to
    sint32                  aTopPixel,      // Top pixel coordinate to draw to
    sint32                  aPixelWidth,    // Width in pixels to draw
    sint32                  aPixelHeight    // Height in pixels to draw
);

GM_DrawLayerList

将一个或多个图层绘制到提供的设备上下文中,并在给定位置进行显示。如果aWorldBounds参数不为空,则至少绘制指定区域。屏幕像素的纵横比将保持不变,因此可能会绘制比指定区域稍大的世界边界。如果aWorldBounds参数为空,则将渲染整个指定的图层或所有加载的图层。

GM_Error_t32 GM_DrawLayerList
(
    HDC                     aDC,            // Device context to draw to
    GM_LayerHandle_t32*     aLayerList,     // List of layers to draw or NULL for all
    uint32                  aLayerCount,    // Number of layers in list (0 for all)
    GM_DrawFlags_t32        aDrawFlags,     // Flags controlling how the draw is performed
    const GM_Rectangle_t*   aWorldBounds,   // World bounds to draw or NULL for all
    sint32                  aLeftPixel,     // Left pixel coordinate to draw to
    sint32                  aTopPixel,      // Top pixel coordinate to draw to
    sint32                  aPixelWidth,    // Width in pixels to draw
    sint32                  aPixelHeight    // Height in pixels to draw
);

GM_DrawLayerListToMemory

将一个或多个图层绘制到提供的内存缓冲区中,并在给定位置进行显示。如果aWorldBounds参数不为空,则至少绘制指定区域。屏幕像素的纵横比将保持不变,因此可能会绘制比指定区域稍大的世界边界。如果aWorldBounds参数为空,则将渲染整个指定的图层或所有加载的图层。

GM_Error_t32 GM_DrawLayerListToMemory
( 
    GM_LayerHandle_t32*     aLayerList,     // List of layers to draw or NULL for all
    uint32                  aLayerCount,    // Number of layers in list (0 for all)
    GM_DrawFlags_t32        aDrawFlags,     // Flags controlling how the draw is performed
    const GM_Rectangle_t*   aWorldBounds,   // World bounds to draw or NULL for all
    GM_ColorFormat_t32      aColorFormat,   // Color format used in data buffer
    sint32                  aPixelWidth,    // Width in pixels to draw
    sint32                  aPixelHeight,   // Height in pixels to draw
    void*                   aDataBuf,       // Buffer to hold output color data
    sint32                  aRowWidthBytes  // Width of a single row in the array in bytes
);

GM_DrawPackageList

将指定的部分指定的package绘制到设备上下文中。如果没有明确指定package,则会绘制使用GM_LoadPackage函数加载的所有package。

GM_Error_t32 GM_DrawPackageList
(
    HDC                     aDC,            // Device context to draw to
    GM_PackageHandle_t32*   aPackageList,   // List of packages to draw or NULL for all
    uint32                  aPackageCount,  // Number of packages in list (0 for all)
    GM_DrawFlags_t32        aDrawFlags,     // Flags controlling how the draw is performed
    const GM_Rectangle_t*   aWorldBounds,   // World bounds to draw or NULL for all
    sint32                  aLeftPixel,     // Left pixel coordinate to draw to
    sint32                  aTopPixel,      // Top pixel coordinate to draw to
    sint32                  aPixelWidth,    // Width in pixels to draw
    sint32                  aPixelHeight    // Height in pixels to draw
);

GM_ExportElevation

将一个或多个图层导出到一个新的栅格化高程文件中。如果传递 NULL 作为图层句柄,则所有高程图层将保存到新的高程文件中,否则只会导出指定的图层。如果提供 NULL 作为世界范围,将导出所有可用的数据,否则只会导出指定范围内的数据。

新的高程文件将以当前视图投影为基础创建,即通过 GM_GetProjection 函数返回的投影。您可以通过调用 GM_SetProjection 函数来更改视图投影,从而更改导出投影。

GM_Error_t32 GM_ExportElevation
(
    const char*                     aFilename,      // Name of new file to create
    GM_ElevationExportFormat_t32    aFormat,        // Format to export
    GM_LayerHandle_t32              aLayer,         // Layer to export or NULL for all
    const GM_Rectangle_t*           aWorldBounds,   // World bounds to export or NULL for all
    sint32                          aPixelWidth,    // Width in samples of new image
    sint32                          aPixelHeight,   // Height in samples of new image
    GM_RasterExportFlags_t32        aFlags,         // Export flags
    GM_ElevUnits_t8                 aElevUnits      // Elevation units for export, if applicable
);

GM_ExportElevationEx

将一个或多个图层导出到一个新的栅格化高程文件中。如果传递 NULL 作为图层列表,则所有高程图层将保存到新的高程文件中,否则只会导出指定的图层。如果提供 NULL 作为世界范围,将导出所有可用的数据,否则只会导出指定范围内的数据。

新的高程文件将以当前视图投影为基础创建,即通过 GM_GetProjection 函数返回的投影。您可以通过调用 GM_SetProjection 函数来更改视图投影,从而更改导出投影。

aExtraFlags 参数允许指定在 aFlags 参数中不支持的任何额外选项。选项应该以选项名称开头,后跟等号,然后是选项值。除非需要额外选项的非默认值,否则大多数用户将传递 NULL 给这个值。当前支持以下额外选项:

  • VOID_VALUE(仅适用于 GeoTIFF 格式)- 指定导出时要使用的无效值。默认情况下,使用常用的 -32767,但可以添加此参数来指定要使用的任何有效的带符号 16 位整数,例如 VOID_VALUE=-9999 来使用 -9999。
  • ROUGHNESS_LAYER_LIST(仅适用于 WindSim GWS 格式)- 指定在提供的高程图层列表中是粗糙度而不是高程的图层索引(从0开始)。例如,如果列表中的第二个和第三个图层是粗糙度图层,则使用 "ROUGHNESS_LAYER_LIST=1,2"。仅在粗糙度栅格是在 SDK 外部创建并作为高程栅格加载时需要。否则,这将自动确定。
  • ADD_COLORS(仅适用于 VRML 格式)- 控制是否为输入图层的每个 VRML 顶点写入颜色值。默认情况下,此选项已启用,使用 "ADD_COLORS=NO" 禁用添加颜色。
  • DELIM(仅适用于 XYZ ASCII grid 格式)- 指定要使用的坐标分隔符。默认值是逗号,但支持特殊关键字 COMMA、SPACE 和 TAB。例如,要使用空格作为分隔符,请使用 "DELIM=SPACE"。此功能在 SDK v13.2.0 及更高版本中支持。
GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ExportElevationEx
(
    const char*                     aFilename,      // Name of new file to create
    GM_ElevationExportFormat_t32    aFormat,        // Format to export
    GM_LayerHandle_t32*             aLayerList,     // List of layers to export or NULL for all
    uint32                          aLayerCount,    // Number of layers in list (0 for all)
    const GM_Rectangle_t*           aWorldBounds,   // World bounds to export or NULL for all
    sint32                          aPixelWidth,    // Width in samples of new image
    sint32                          aPixelHeight,   // Height in samples of new image
    GM_RasterExportFlags_t32        aFlags,         // Export flags
    GM_ElevUnits_t8                 aElevUnits,     // Elevation units for export, if applicable
    const char*                     aExtraFlags     // Additional text-based flags for some formats (use NULL for defaults)
)

GM_ExportMapLayoutComponent

将当前设置的地图布局的一个组件(使用 GM_LoadMapLayoutFile 加载布局定义)导出为位图(BMP)文件。您指定的边界框和像素尺寸与您在 GM_DrawLayerList 函数中提供的相同,用于确定 BMP 文件的像素大小。如果您始终在绘制后调用此函数,只需为世界范围传入 NULL,并将像素尺寸都设置为 0。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_ExportMapLayoutComponent
(
    const char*             aFilename,      // in: name of bitmap file to save to
    GM_MapLayoutPiece_t8    aPiece,         // in: which piece of the map layout to save
    const GM_Rectangle_t*   aWorldBounds,   // in: World bounds to use for rendering layout or NULL for last drawn
    sint32                  aPixelWidth,    // in: Width in pixels of FULL RENDER SCREEN (NOT LAYOUT PIECE) to use for generating map layout. Use 0 for last drawn.
    sint32                  aPixelHeight,   // in: Height in pixels of FULL RENDER SCREEN (NOT LAYOUT PIECE) to use for generating map layout. Use 0 for last drawn.
    void*                   aReserved       // reserved for later use, must be NULL
)

GM_ExportPackage

将一个或多个图层导出为新的 Global Mapper 包文件。如果将图层列表句柄设置为 NULL,则会将所有加载的图层保存到新的包文件中,否则只会导出指定的图层。如果将世界范围设置为 NULL,则会导出每个图层的全部数据,否则只会导出指定范围内的数据。

GM_Error_t32 __stdcall GM_ExportPackage
(
    const char*                 aFilename,      // Name of new file to create
    GM_LayerHandle_t32*         aLayerList,     // List of layers to export or NULL for all
    uint32                      aLayerCount,    // Number of layers in list (0 for all)
    const GM_Rectangle_t*       aWorldBounds,   // World bounds to export or NULL for all
    double                      aSimpThreshold, // Simplification threshold, use 0.0 for no simplification
    GM_PackageExportFlags_t32   aFlags          // Export flags
);

GM_ExportPDF

将一个或多个图层导出为新的启用地理信息的 PDF 文件。如果将图层列表句柄设置为 NULL,则会将所有加载的图层保存到新的包文件中,否则只会导出指定的图层。如果将世界范围设置为 NULL,则会导出每个图层的全部数据,否则只会导出指定范围内的数据。

重要提示:在调用此函数之前,您必须从 http://www.quickpdflibrary.com/ 购买 QuickPDF 库的许可证,并使用 GM_SetQuickPDFUnlockCode 函数提供您的注册码。对于 SDK v1.37 及更早版本,您需要 QuickPDF v7 的许可证,对于 v1.38 及更高版本,您需要 QuickPDF v8 的许可证。

GM_Error_t32 __stdcall GM_ExportPDF
(
    const char*                 aFilename,      // Name of new file to create
    GM_LayerHandle_t32*         aLayerList,     // List of layers to export or NULL for all
    uint32                      aLayerCount,    // Number of layers in list (0 for all)
    const GM_Rectangle_t*       aWorldBounds,   // World bounds to export or NULL for all
    const GM_ExportOptsPDF_t*   aExportOpts     // PDF export options (NULL for default)
);

例子:从所有加载的文件中导出启用地理信息的 PDF 文件,并设置一些选项

// Setup PDF export options
GM_ExportOptsPDF_t thePdfOpts;
::memset( &thePdfOpts, 0, sizeof thePdfOpts );
thePdfOpts.mFlags = GM_PDF_FillPage | GM_PDF_BorderStyleValid;
thePdfOpts.mPageSizeName = "Letter"; // Use 8 1/2" by 11" letter paper
thePdfOpts.mDPI = 150;
thePdfOpts.mMarginRect.mMinX = 0.5; // 1/2" left margin
thePdfOpts.mMarginRect.mMaxX = 0.5; // 1/2" right margin
thePdfOpts.mMarginRect.mMaxY = 1.0; // 1" top margin
thePdfOpts.mMarginRect.mMinY = 0.5; // 1/2" bottom margin
thePdfOpts.mBorderStyle = GM_PEN_SOLID; // solid pen
thePdfOpts.mBorderWidth = 3; // border pen 3 PDF points (pixels) wide
thePdfOpts.mBorderColor = RGB(255,0,0); // border color is red
thePdfOpts.mHeaderStr = "My Map Name";

// Do export
GM_Error_t32 theErr = GM_ExportPDF
(
    "c:\\temp\\export test\\test.pdf",
    NULL, 0,    // export all loaded layers
    NULL,       // export entire bounds of loaded data
    &thePdfOpts
);

GM_ExportRaster

将一个或多个图层导出为新的栅格文件。如果传递的图层句柄为NULL,则所有加载的图层都将保存到新的栅格文件中,否则只导出指定的图层。如果world bounds为NULL,则导出所有可用数据,否则只导出指定边界内的数据。

新创建的栅格文件将采用通过GM_GetProjection函数返回的当前视图投影。您可以通过调用GM_SetProjection函数来更改视图投影,从而更改导出投影。

GM_Error_t32 GM_ExportRaster
(
    const char*                 aFilename,      // Name of new file to create
    GM_RasterExportFormat_t32   aFormat,        // Format to export
    GM_LayerHandle_t32          aLayer,         // Layer to export or NULL for all
    const GM_Rectangle_t*       aWorldBounds,   // World bounds to export or NULL for all
    sint32                      aPixelWidth,    // Width in pixels of new image
    sint32                      aPixelHeight,   // Height in pixels of new image
    GM_RasterExportFlags_t32    aFlags          // Export flags
);

 GM_ExportRasterEx

将一个或多个图层导出为新的栅格文件。如果传递的图层句柄为NULL,则所有加载的图层都将保存到新的栅格文件中,否则只导出指定的图层。如果world bounds为NULL,则导出所有可用数据,否则只导出指定边界内的数据。

新创建的栅格文件将采用通过GM_GetProjection函数返回的当前视图投影。您可以通过调用GM_SetProjection函数来更改视图投影,从而更改导出投影。

aExtraFlags参数允许指定aFlags参数不支持的任何其他选项。选项应该使用选项名称,后跟等号,再跟上选项值进行指定。除非需要非默认值的额外选项,否则大多数用户将向此值传递NULL。目前支持以下额外选项:

  • QUALITY(仅适用于JPG或GeoTIFF格式) - 指定导出的质量值。值应在1到100之间。默认值为75。较高的值会导致更高的质量,但文件大小更大。例如,要将质量设置为90,请将"QUALITY=90"作为额外标志值。对于使用JPG-in-TIFF压缩进行导出的GeoTIFF,仅使用此选项。
  • COMPRESSION(仅适用于ECW和JPG2000格式) - 指定导出的目标压缩比。值应在1(无损)到100之间。默认值为10。较高的值会导致文件更小,但质量较低。例如,要将目标压缩比设置为1:20,请将"COMPRESSION=20"作为额外标志值。
  • DPI(仅适用于BMP,GeoTIFF和JPG格式) - 指定要存储在文件中的DPI值。默认值为0,表示文件中不存储DPI值。
  • PALETTE(仅适用于GeoTIFF格式) - 指定要在导出中使用的调色板文件的名称。如果路径中的任何部分包含空格,请使用%20代替空格。
  • TILE_SIZE(仅适用于GeoTIFF格式) - 指定导出的GeoTIFF文件应使用瓦片而不是条带定位,并指定瓦片的大小。例如,要在GeoTIFF文件内部创建512x512的瓦片,请使用TILE_SIZE=512。
  • HEADER(仅适用于GeoTIFF格式) - 指定是否应写入生成的GeoTIFF文件的GeoTIFF头。默认情况下启用,添加HEADER=NO以禁用保存头。
  • OPTIMIZE_CODING(仅适用于JPG格式) - 指定是否应为JPEG压缩优化熵编码。这仅适用于高级用户。使用OPTIMIZE_CODING=1启用优化熵编码。
  • WRITE_JFIF_HEADER(仅适用于JPG格式) - 指定是否应将JFIF头写入导出的JPEG文件。这仅适用于高级用户。使用WRITE_JFIF_HEADER=1启用写入JFIF头。
  • DCT_METHOD(仅适用于JPG格式) - 指定用于JPEG压缩的DCT方法。这仅适用于高级用户。有效值为0(JDCT_ISLOW),1(JDCT_IFAST)和2(JDCT_FLOAT)。
  • VALID_ALPHA(仅适用于PNG格式) - 指定用于有效像素的alpha值(介于1和255之间)。默认情况下,任何有效像素都将完全不透明(即alpha = 255)。
  • RES_MULT - (高级用户)指定在选择在线源的哪个图层进行拉取时,应将导出分辨率乘以的倍数。例如,添加RES_MULT=2将导致每个像素5m的导出选择更适合每个像素10m的导出的在线缩放级别。小于1的值会导致拉取更详细的图层。

CADRG/CIB导出格式具有一组描述导出的必需值。另外,提供的文件名应该是数据集的a.toc(目录)文件。帧文件将保存在该文件夹的子文件夹中。以下标志值将被使用:

  • MAP_NAME - 地图名称,通常为6个字符的名称
  • SERIES - 图表系列的两个字母代码,参考[MIL-STD-2411-1,第5.1.4节]。以下列表包括一些常用的支持的值(请注意,任何两个字母的代码都支持):
  1. GN - 1:5M 比例的GNC(全球导航图)
  2. JN - 1:2M 比例的JNC(喷气导航图)
  3. TP - 1:500K 比例的TPC(战术驾驶员航图)
  4. I1 - 10米分辨率CIB图像
  5. I2 - 5米分辨率CIB图像
  6. I3 - 2米分辨率CIB图像
  7. I4 - 1米分辨率CIB图像
  8. I5 - 0.5米分辨率CIB图像
  • SCALE - 导出的比例。在大多数情况下,系列隐含了比例,所以此值被忽略。但是如果您使用具有可变比例的系列,则此值是必需的。 PRODUCER_CODE - 来自[MIL-STD-2411-1,第5.2.1节]的生产者代码ID,例如AFACC(美国空军战斗司令部)的1。
  • SECURITY_CLASS - 来自[MIL-STD-2411-1,第5.1.8节]的1个字符的安全分类。默认值为SECURITY_CLASS=U表示未分类。
  • SECURITY_COUNTRY - 来自[MIL-STD-2411-1,第5.1.7节]的两个字符的安全国家代码。默认值为SECURITY_COUNTRY=US表示美国。
  • SECURITY_MARKING - 来自[MIL-STD-2411-1,第5.1.9节]的两个字符的安全标记。默认值为SECURITY_MARKING=uu表示未分类。
  • VERSION - 文件版本。如果不提供值,默认为1。

例如,如果要从DMAAC导出1:500K比例尺的TPC CADRG,可以传递以下额外的标志字符串:

"MAP_NAME=ABC123 SERIES=TP PRODUCER_CODE=3 SECURITY_CLASS=U SECURITY_COUNTRY=US SECURITY_MARKING=uu VERSION=1"

GM_Error_t32 __stdcall GM_ExportRasterEx
(
    const char*                 aFilename,      // Name of new file to create
    GM_RasterExportFormat_t32   aFormat,        // Format to export
    GM_LayerHandle_t32*         aLayerList,     // List of layers to export or NULL for all
    uint32                      aLayerCount,    // Number of layers in list (0 for all)
    const GM_Rectangle_t*       aWorldBounds,   // World bounds to export or NULL for all
    sint32                      aPixelWidth,    // Width in pixels of new image
    sint32                      aPixelHeight,   // Height in pixels of new image
    GM_RasterExportFlags_t32    aFlags,         // Export flags
    const char*                 aExtraFlags     // Additional text-based flags for some formats (use NULL for defaults)
)

GM_ExportRasterFromBitmap

生成一个新的栅格图像,从一个位图句柄。新的栅格图像将与位图具有相同数量的像素。aFormat参数指定新的栅格使用的图像格式。如果aWorldBounds不是NULL,将使用提供的范围来填充新文件的空间信息(如果新文件格式支持的话)。

GM_Error_t32 GM_ExportRasterFromBitmap
(
    const char*                 aFilename,      // Name of new file to create
    HBITMAP                     aBitmap,        // Handle to bitmap to export
    HDC                         aDC,            // Handle to compatible device context
    GM_RasterExportFormat_t32   aFormat,        // Format to export
    const GM_Rectangle_t*       aWorldBounds,   // World bounds of bitmap or NULL for empty
    GM_RasterExportFlags_t32    aFlags          // Export flags
);

GM_ExportVector(Ex)/GM_ExportVectorList

将一个或多个图层导出为新的矢量文件。如果为图层句柄列表传递NULL,则所有矢量图层将保存到新的矢量文件中,否则只导出指定的图层。如果为worldBounds提供NULL,则将导出所有可用数据,否则只导出指定范围内的数据。

新创建的矢量文件将使用GM_GetProjection函数返回的当前视图投影。您可以通过调用GM_SetProjection函数更改视图投影,从而更改导出投影。

GM_Error_t32 __stdcall GM_ExportVector
(
    const char*                     aFilename,      // Name of new file to create
    GM_VectorExportFormat_t32       aFormat,        // Format to export
    GM_LayerHandle_t32              aLayer,         // Layer to export or NULL for all
    const GM_Rectangle_t*           aWorldBounds,   // World bounds to export or NULL for all
    GM_VectorExportFlags_t32        aFlags,         // Export flags
    void*                           aFormatOptions  // Format-specific options (NULL for defaults)
);

GM_Error_t32 __stdcall GM_ExportVectorEx
(
    const char*                     aFilename,      // Name of new file to create
    GM_VectorExportFormat_t32       aFormat,        // Format to export
    GM_LayerHandle_t32              aLayer,         // Layer to export or NULL for all
    const GM_Rectangle_t*           aWorldBounds,   // World bounds to export or NULL for all
    GM_VectorExportFlags_t32        aFlags,         // Export flags
    void*                           aFormatOptions, // Format-specific options (NULL for defaults)
    const char*                     aExtraFlags     // Additional text-based flags for some formats (use NULL for defaults)
);

GM_Error_t32 __stdcall GM_ExportVectorList
(
    const char*                     aFilename,      // Name of new file to create
    GM_VectorExportFormat_t32       aFormat,        // Format to export
    GM_LayerHandle_t32*             aLayerList,     // List of layers to export or NULL for all
    uint32                          aLayerCount,    // Number of layers in list (0 for all)
    const GM_Rectangle_t*           aWorldBounds,   // World bounds to export or NULL for all
    GM_VectorExportFlags_t32        aFlags,         // Export flags
    void*                           aFormatOptions, // Format-specific options (NULL for defaults)
    const char*                     aExtraFlags,    // Additional text-based flags for some formats (use NULL for defaults)
    void*                           aReserved       // Reserved for future use, must be NULL
);

GM_ExportWebFormat

将一个或多个图层导出为Web格式的文件,以在Web浏览器或其他基于Web的工具中显示。如果为图层句柄列表传递NULL,则所有图层将保存到新的数据集中,否则只导出指定的图层。如果为worldBounds提供NULL,则将导出所有可用数据,否则只导出指定范围内的数据。

aExtraFlags参数允许指定在aExportOpts参数中不支持的任何额外选项。选项应该以选项名称开始,后跟等号,然后是选项值。除非用户需要非默认值的额外选项,否则大多数用户将为此值传递NULL或空字符串。目前支持以下额外选项:

  • QUALITY(仅适用于JPG或GeoTIFF格式)-指定导出质量值。值应该在1到100之间。默认值为75。较高的值会导致更高的质量,但结果文件大小较大。例如,要将质量设置为90,请将"QUALITY=90"作为额外标志的值。对于使用JPG-in-TIFF压缩的GeoTIFF导出,只有在导出时才会使用此选项。
GM_Error_t32 __stdcall GM_ExportWebFormat
(
    const char*                     aFilename,      // Name of HTML/XML file to create
    GM_WebExportFormat_t32          aWebFormat,     // Format to export
    GM_LayerHandle_t32*             aLayerList,     // List of layers to export or NULL for all
    uint32                          aLayerCount,    // Number of layers in list (0 for all)
    const GM_Rectangle_t*           aWorldBounds,   // World bounds to export or NULL for all
    const GM_WebFormatExportOpts_t* aExportOpts,    // Export options
    const char*                     aExtraFlags     // Additional text-based flags for some formats (use NULL for defaults)
);

GM_FindFeaturesInArea 

在提供的图层列表中搜索在提供的区域要素内的任何可见矢量要素。您可以找到完全在提供的区域要素内的面、线和/或点要素。 

结果将返回到aResultList值中。在使用完结果列表后,请使用GM_FreeFeatureResultList释放结果列表。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_FindFeaturesInArea
(
    GM_LayerHandle_t32*         aLayerList,         // IN: List of layers to search for points or NULL for all vector layers
    uint32                      aLayerCount,        // IN: Number of layers in list (0 for all)
    GM_FindFlags_t32            aFindFlags,         // IN: Flags controlling how the find is performed
    const GM_AreaFeature_t*     aAreaToSearch,      // IN: Area feature to search (use GM_GetAreaFeature to get from loaded layer)
    const GM_Projection_t*      aAreaProj,          // IN: Projection of coordinates in area feature (use GM_GetLayerInfo()->mNativeProj to get layer projection)
    GM_FoundFeatureResults_t**  aResultList,        // OUT: Results of find operation (use GM_FreeFeatureResultList to free when done)
    void*                       aReserved           // IN: Reserved for future use, must be NULL
)

GM_FindNearestAddress 

在提供的图层列表中搜索在提供的搜索距离(aMaxDistMeters)内的任何可见矢量线要素,该要素具有支持的地址信息格式(例如Tiger / Line数据)。

GM_Error_t32 __stdcall GM_FindNearestAddress
(
    const GM_Point_t*       aSearchPt,          // IN: Search location in current view projection (as returned by GM_SetProjection)
    GM_LayerHandle_t32*     aLayerList,         // IN: List of layers to search or NULL for all vector layers
    uint32                  aLayerCount,        // IN: Number of layers in list (0 for all)
    char*                   aAddressStr,        // I/O: Buffer to hold string for nearest address
    uint32                  aMaxAddressLen,     // IN: Maximum length of string to store in output
    double                  aMaxDistMeters,     // IN: Maximum distance in meters to search around search point
    void*                   aReserved           // IN: Reserved for later use, must be NULL (0)
);

GM_FindNearestFeatures 

在提供的图层列表中搜索在像素搜索位置(aPixelSearchPt)的提供搜索距离(aMaxDistPixels)内的任何可见矢量要素。aFindFlags参数指定要搜索的要素类型。

GM_Error_t32 __stdcall GM_FindNearestFeatures
(
    const GM_Point_t*       aPixelSearchPt,     // IN: Search location in pixel coordinates
    GM_LayerHandle_t32*     aLayerList,         // IN: List of layers to search or NULL for all vector layers
    uint32                  aLayerCount,        // IN: Number of layers in list (0 for all)
    GM_FindFlags_t32        aFindFlags,         // IN: Flags controlling how the find is performed
    const GM_Rectangle_t*   aWorldBounds,       // IN: World bounds for search space or NULL for last drawn
    const GM_PixelRect_t*   aPixelRect,         // IN: Pixel bounds for search space or NULL for last drawn 
    GM_FoundFeature_t*      aNearestFeatures,   // OUT: List of nearest features
    uint32                  aMaxFeatures,       // IN: Max number of nearest features to find
    uint32*                 aFoundFeatureCnt,   // OUT: Number of nearest features returned in list
    uint32                  aMaxDistPixels      // IN: Max distance in pixels to search
);

GM_FlushLayerCache

清除图层的任何内存缓存。这在低内存环境(如Windows CE)中非常有用,通常只对像GeoTIFF文件这样的栅格格式执行某些操作。大多数用户不需要调用此函数。

GM_Error_t32 __stdcall GM_FlushLayerCache
( 
    GM_LayerHandle_t32  aLayer
)

GM_FreeAreaFeature

释放给定区域要素使用的资源。应该对通过GM_GetAreaFeature返回的每个区域要素调用此函数。

void GM_FreeAreaFeature
(
    GM_AreaFeature_t*   aAreaFeature            // Area feature to free
)

GM_FreeFeatureResultList

释放由搜索函数(如GM_FindFeaturesInArea)返回的结果列表相关的资源。

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_FreeFeatureResultList
(
    GM_FoundFeatureResults_t*   aResultList     // IN: Previously fetched result set
)

GM_FreeLidarQuery 

Frees a Lidar query created with GM_CreateLidarQuery. 

GM_DLL_EXPORTED GM_Error_t32 __stdcall GM_FreeLidarQuery
(
    GM_LidarQueryHandle_t   aLidarQuery
)

GM_FreeLineFeature

释放使用GM_GetLineFeature返回的每个线要素使用的资源。

void GM_FreeLineFeature
(
    GM_LineFeature_t*   aLineFeature            // Line feature to free
)

GM_FreePointFeature

释放使用GM_GetPointFeature返回的每个点要素使用的资源。

void GM_FreePointFeature
(
    GM_PointFeature_t*    aPointFeature            // Point feature to free
)
  • 21
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八两

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值