gml文件格式解析程序详解之源文件

地理标记语言(GML)C++解析示例 地理标记语言(GML)是一种用可扩展标记语言(XML)编写地理信息的方式,以方便地理信息的传输和存储。可以将其视为描述应用程序架构的XML语法,应用程序架构描述特定领域或给定上下文中的概念结构。GML用来模拟地理现象的一些关键概念包括:特征:现实世界现象的抽象;如果它与相对于地球的某个位置相关联,它就是一个地理特征。属性:功能的状态由一组属性定义,其中每个属性可以被认为是一个{name,type,value}三元组。要素集合:本身可以视为要素的要素集合术语特征可用于指代特征的类型或特征的实例。 阅读详情
// Functions to read a network stored in a GML file into a NETWORK struct
//
// Mark Newman  11 AUG 06
//
// To use this software, #include "readgml.h" at the head of your program
// and then call the following.
//
// Function calls:
//   int read_network(NETWORK *network, FILE *stream)
//     -- Reads a network from the FILE pointed to by "stream" into the
//        structure "network".  For the format of NETWORK structs see file
//        "network.h".  Returns 0 if read was successful.
//   void free_network(NETWORK *network)
//     -- Destroys a NETWORK struct again, freeing up the memory




// Inclusions


#include <stdlib.h>
#include <stdio.h>
#include <string.h>


#include "network.h"


// Constants


#define LINELENGTH 1000


// Types


typedef struct line {
  char *str;
  struct line *ptr;
} LINE;


// Globals


LINE *first;
LINE *current;




// Function to read one line from a specified stream.  Return value is
// 1 if an EOF was encountered.  Otherwise 0.


int read_line(FILE *stream, char line[LINELENGTH])// line在这里为一个字符数组
{
  if (fgets(line,LINELENGTH,stream)==NULL) return 1;  //每次都读一行
  line[strlen(line)-1] = '\0';   // Erase the terminating NEWLINE
  return 0;
}




// Function to read in the whole file into a linked-list buffer, so that we
// can do several passes on it, as required to read the GML format
// efficiently


int fill_buffer(FILE *stream)
{
  int length;
  char line[LINELENGTH];
  LINE *previous;  //之前的指针


  if (read_line(stream,line)!=0) {
    first = NULL;                // Indicates empty buffer
    return 1;
  }
  length = strlen(line) + 1;
  first = malloc(sizeof(LINE));//first 为指向第一个节点的指针
  first->str = malloc(length*sizeof(char));
  strcpy(first->str,line);   //用于完成将读到到line字符串赋值到 LINE的链表中。


  previous = first;
  while (read_line(stream,line)==0) { //将GML文件的每一行存在以FIRST存放的链表中,而LINE结构体为链表的节点。
    length = strlen(line) + 1;           //而LINE结构体中的,str字符指针,用来连接读到到字符串,这里的加1是为了存放\0空字符。
    previous->ptr = malloc(sizeof(LINE));  
    previous = previous->ptr;
    previous->str = malloc(length*sizeof(char));
    strcpy(previous->str,line);
  }
  previous->ptr = NULL;          // Indicates last line  //将最后一个节点的ptr的指向为空,说明链表到了尾点


  return 0;
}




// Function to free up the buffer again


void free_buffer()
{
  LINE *thisptr;
  LINE *nextptr;


  thisptr = first;
  while (thisptr!=NULL) {
    nextptr = thisptr->ptr;
    free(th
69、SAP数据库归档重做日志备份策略与工具详解 本文详细解析了SAP数据库归档重做日志备份的重要性及策略,介绍了SAP提供的备份工具brarchive及其配置和使用方法,探讨了BRBACKUP与BRARCHIVE的联合运行、一致在线备份、备用数据库备份场景以及备份策略的综合应用与优化。此外,还分析了备份过程中常见问题的解决方法、备份监控与评估流程、与第三方备份解决方案的集成方式,以及未来备份技术的发展趋势和应对策略。通过合理运用这些策略和工具,可以有效保障SAP数据库的安全性和可恢复性。 阅读详情

相关推荐

AI工具 | 每个打工人必备的15款人工智能超级工具

不过,还是有一些靠谱的人工智能平台,它们可不只是营销噱头。有些AI公司正试图改变游戏规则。人工智能工具让人们能够更聪明地工作,而不是更辛苦地劳作。如果你想知道未来有什么,那就来看看这10款人工智能工具吧,它们将彻底改变我们的工作方式。

Vampire_2017的博客 5万+

JAVA 节点路径搜索 GML文件格式解析

搜索拓扑图中节点间的所有路径 JAVA代码实现 详细的注释 支持GML图形文件的解析 适用于有向图和无向图、加权图和无权图的路径寻找

GML解析与应用C#

GML解析与应用、GML可视化、GML空间分析。类库调用NTS

GML格式详解,写入读取GML 示例

GML 是一种强大的地理空间数据格式,它可以携带丰富的地理信息和属性数据。由于它是基于 XML 的,所以具有很好的可读性和可扩展性。在 GIS 领域,GML 被广泛用于数据交换和集成,特别是在 Web 服务中。

大剑师兰特的GIS世界 4659

什么是GML

. GML介绍 GML是基于XML的空间信息编码标准,由OpenGIS Consortium (OGC)提出,得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。运用GML,封装的地理数据和图形解释是清楚分离的。如前所述,图形解释格式包括SVG、VML和X3D等。GML基于文本表示地理信息 文本比较简单、直观,容易理解和编辑。已经在空间信息和三维显示上得到广

穷人飞扬的专栏 1万+

【Python】networkx读取gml图文件,有两个问题影响使用

【问题描述】 networkx可直接读取gml文件:nx.read_gml(file),但是有两个问题影响使用: (1)一定要求gml文件中的节点有“label”键值对,不然会报错 networkx.exception.NetworkXError: node #0 has no 'label' attribute (2)对节点的索引必须为label值。例如,G._node[label]...

小白兔的窝 6654

​Python:GML(地理标记语言)数据导入示例

GML 数据可以在支持该格式的不同软件应用程序和系统之间交换,从而实现其他 GIS 软件之间的互操作性,并允许数据轻松共享并集成到各种应用程序中。4.元数据管理:GML 可以存储关于地理特征和数据的元数据,包括关于数据质量、准确性和出处的信息。5.标准合规性:GML 是由开放地理空间联盟 (OGC) 维护的广泛认可的标准,可确保地理空间数据遵守通用标准,并可跨不同的应用程序和系统使用。GML 是可扩展的,这意味着用户可以定义他们的元素和属性来扩展标准模式以表示其他类型的地理要素或存储其他元数据。

天波风客的博客 1897

Android之解析GML并显示

本例主要实现在APP中解析GML数据并显示GML,地理标记语言(外语全称:Geography MarkupLanguage、外语缩写:GML),它由开放式地理信息系统协会(外语缩写:OGC)于1999年提出,并得到了许多公司的大力支持,如Oracle、Galdos、MapInfo、CubeWerx等。GML能够表示地理空间对象的空间数据和非空间属性数据 实现思路GML文档解析GML文档的本质还是Xm

Ricardo的博客 7448

【亲测免费】 探索电网数据的新利器:电网数据Gephi数据集

探索电网数据的新利器:电网数据Gephi数据集 【下载地址】电网数据Gephi数据集分享 本仓库提供了一个名为“电网数据Gephi数据集.rar”的资源文件,该文件涵盖了美洲大部分电网数据,可以直接导入Gephi进行运行和分析。数据集包含两个主要文件:`power.gml` 和 `power.txt`,方便用户快速上手和...

gitblog_09722的博客 1364

关于GIS数据分类方式

GIS数据有很多种分类方式,按照数据结构可分为矢量数据、栅格数据、DEM数据,还可以再细致的分为数据库格式、点云格式、3D格式,也可以按照各厂家和标准类别来分等等。笔者也是GIS小白,在这里把收集到的素材略加整理,万一碰到形形色色的GIS文件,不至于显得太意外。一、栅格数据栅格数据由像素组成。它们通常间隔规则且呈方形,但不必如此。栅格通常看起来像素化,因为每个像素都有自己的值或类。1. netCD...

不胜人生一场醉 691

物联网实训笔记_XML基础知识

XML相关知识 一 XML基本概述 1. XML简单的历史介绍 1969年 GML 通用标记语言 用于计算机之间的通信,通信就会传输数据,那么就需要一种数据的规范 1985年 SGML 标准通用标记语言 对GML进行完善 1993年 HTML 超文本的标记语言(HyperText Markup Language) 随着万维网的推广,在SGML的基础上,又出现了HTML语言,用于万维网上的页面展示 但HTML有不少缺陷: a.标签不能扩展,不能自定义,只能使用默认的 b.兼容性不好(

weixin_45433206的博客 326

4个步骤掌握UndertaleModTool:从资源解包到高级游戏修改

UndertaleModTool是一款功能强大的开源工具,专为游戏修改和资源编辑设计,尤其适用于GameMaker引擎开发的游戏。本文将通过四个核心步骤,帮助你从基础操作到高级应用,全面掌握这款工具的使用方法,释放你的游戏创作潜能。 ## 一、工具核心价值解析 UndertaleModTool作为目前最完整的GameMaker游戏修改工具,其核心价值体现在三个方面:首先,它提供了从解包到重新打

gitblog_00335的博客 464

从玩家到创造者:用UndertaleModTool解锁GameMaker游戏无限可能 [特殊字符]

你是否曾想过为心爱的Undertale或Deltarune添加自己的故事?是否渴望调整游戏角色能力,创造独特的游戏体验?UndertaleModTool(简称UTMT)就是那把打开GameMaker游戏世界大门的钥匙🔑。作为最完整的GameMaker游戏修改、反编译和解包工具,它让你从普通玩家蜕变为游戏创作者。 ## 为什么你需要这个GameMaker游戏修改神器?✨ 想象一下,你手中有一款

gitblog_00338的博客 768

UndertaleModTool:终极GameMaker游戏修改指南与完全解决方案

想要为心爱的Undertale或Deltarune游戏添加全新内容吗?UndertaleModTool(UTMT)是一款功能全面的开源工具,专门用于修改、反编译和解包GameMaker Studio游戏。这款游戏修改工具让普通玩家也能轻松自定义游戏内容,从简单的参数调整到复杂的脚本注入,为您提供完整的游戏定制体验。 ## 🎮 为什么选择UndertaleModTool? **Undertal

gitblog_00494的博客 880

解锁游戏改造新维度:UndertaleModTool深度探索

UndertaleModTool作为目前最完整的Undertale和GameMaker游戏修改工具,为游戏开发者、模组制作者和游戏研究者提供了前所未有的深度访问能力。这款开源工具不仅能实现基础的游戏数据修改,更能让用户深入探索游戏内部结构,重新定义游戏体验的每一个细节。在游戏修改领域,UndertaleModTool以其全面的功能和灵活的扩展性,成为了GameMaker游戏修改的标准工具。 ##

gitblog_00231的博客 179

xml

一 XML基本概述1. XML简单的历史介绍 1969年 GML 通用标记语言 用于计算机之间的通信,通信就会传输数据,那么就需要一种数据的规范 1985年 SGML 标准通用标记语言 对GML进行完善 1993年 HTML 超文本的标记语言(HyperText Markup Language) 随着万维网的推广,在SGML的基础上,又出现了HTML语言,用于万维网上的页...

weixin_30897233的博客 166

如何用UndertaleModTool轻松修改Undertale游戏:新手完整指南

UndertaleModTool是迄今为止最完整的游戏修改工具,专为《传说之下》及其他GameMaker游戏提供反编译、解包和模组制作功能。无论你是想修改游戏对话、替换角色外观,还是创建全新游戏机制,这个开源工具都能帮你实现。本文将为你提供从零开始的完整指南,让你轻松掌握游戏修改的核心技巧。 ## 🎮 为什么选择UndertaleModTool? 很多Undertale玩家都有过这样的困扰:

gitblog_01076的博客 302

python社区发现对gml文件的分析,在Python中从GML文件中提取数据

我有一个GML(图形(不是涂鸦)建模语言)文件,我想从中创建ID到标签的映射.我不知道如何做到这一点,因为我的列表操作似乎不起作用.我尝试使用指定如何使用两个分隔符的示例,但它不适用于我的文件.有人可以指导我吗?GML文件排列如下:graph [node [id 0label "24"]node [id 1label "25"]node [id 2label "26"]node [id 3labe...

weixin_39583162的博客 1929

【复杂网络系列】图模型语言(graph model language)gml格式文件生成代码

python代码 edges格式如下: edges={} edges[node1]={} edges[node2]={} edges[node1][node2]=1 def gen_gml_file(edges,filename):     """     生成gml格式文件     """     fp_out=open(filename,'w')

SNS程飞的专栏 5209

如何在Python中运行GML文件

GML(Geography Markup Language)是一种用于描述地理数据的标记语言,广泛用于地理信息系统(GIS)领域。它是一种基于XML的语言,可以表示地理特征、坐标、属性等信息。随着地理数据应用的日益广泛,处理和运行GML文件变得越来越重要。在本文中,我们将探讨如何使用Python来运行和解析GML文件,从而...

weixin_41847356的博客 362

csgo语音原文件.rar

csgo中文语音原文件,丢了的朋友可以下载后把文件拖回到原来的目录中文件路径为\steamapps\common\Counter-Strike Global Offensive\csgo

上一篇: const成员函数解析
下一篇: gml文件格式解析程序之头文件
airfer
博客等级 码龄18年 81粉丝 55原创
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值