2 u013141228 u013141228 于 2015.06.09 14:47 提问

开发一个地图模块,储存数据用什么数据库?

用C++开发游戏,想建一个数据库模块来存地图数据,数据类型基本上是一个坐标 对一个贴图名称 和一个贴图大小的简单数据,但是条目数量可能比较大,需要排序和检索功能。只安装在客户端本地,不需要联网。用什么数据库会比较合适?或者不用数据库的什么方法来储存数据?希望
在满足上诉简单要求的基础上尽可能轻量又高效。
用在安卓、win32、ISO,希望跨平台

5个回答

caozhy
caozhy   Ds   Rxr 2015.06.09 15:11
已采纳

地图不建议用数据库,应该直接设计自己的数据结构,那样效率高很多。

u013141228
u013141228 我对数据结构的设计不是很了解,能推荐点书本或资料吗?
大约 3 年之前 回复
Tiger_Zhao
Tiger_Zhao   Rxr 2015.06.09 15:03

跨平台用xml就可以了。
甚至可以用csv,自己实现一个列表的排序、检索功能。

u013141228
u013141228 回复caozhy: 能说明一下寻址在我的项目中究竟有什么实际作用吗?我的项目好像和数据恢复没什么联系
大约 3 年之前 回复
caozhy
caozhy 回复汐轩阁祖: 文本文件,包括xml和csv,都根本没办法直接寻址。
大约 3 年之前 回复
caozhy
caozhy 如果你就是做一个学生习作,或者是外包的项目,就当我没说。不过稍微大一些的游戏,都不可能用这么不严肃和不负责任的设计。
大约 3 年之前 回复
u013141228
u013141228 XML不是效率稍低?地图的坐标数量比较大,会不会对性能有影响?
大约 3 年之前 回复
Tiger_Zhao
Tiger_Zhao 回复caozhy: 不同平台下总有读取xml的类库吧。csv只是作为存储,读取后转换成自定义的列表结构。都是对象操作,关文本寻址什么事?
大约 3 年之前 回复
caozhy
caozhy 不要用csv xml,因为文本文件不能直接寻址
大约 3 年之前 回复
u011988082
u011988082   2015.06.09 15:48

还是xml这种跨平台的比较好

sxjiangdongqin
sxjiangdongqin   2015.06.09 21:44

xml 和JSON都可以

caozhy
caozhy   Ds   Rxr 2015.06.10 10:26

对于游戏的地图,你需要快速地载入任何一个区域的地图。游戏中的角色走到哪里,就要哪里的地图,玩家去哪里是不确定的。
你的程序要想载入任何地方的地图,必须保持地图数据使用一种简便地、随机的方式去读取。如果是文本文件,似乎除了从头读取以外,没有任何好的方法知道你要的数据在哪里。

caozhy
caozhy 回复汐轩阁祖: 不是文本文件(用ascii可读字符顺序存储,人类可读的文本叫文本文件)的一切都叫二进制文件。当然用什么数据结构和算法都是需要进一步考虑的。
大约 3 年之前 回复
caozhy
caozhy 回复汐轩阁祖: 二进制是随机读写的前提。
大约 3 年之前 回复
u013141228
u013141228 那我这样的状况是应该存成二进制文件来寻址吗?还是有其他更好的方式?
大约 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
MAP存储数据
map可以装多种类型的值,当然键不能重复,值可以重复。可以使用多种类型的父类,来指定值的类型。比如Object是其他类的父类。例如:HashMap<Object,Object>,它的键和值都可以存储多种类型,反正都是Object的子类。123456789101112131415161718192021import java.util.HashMap;import java.util.I...
游戏数据存储的四种常用方式
原文地址:http://blog.csdn.net/xiaominghimi/article/details/6948046           首先向大家说句抱歉,可能一些童鞋看到我的微薄了,我说突然不想写博客了。。。是Himi的错,我不该发微薄让大家担心的;Himi也是因为受到其他的因素影响所以就想这样发泄一下,但是大家放心!写博客是我的兴趣也是我一直的坚持;不再理会其他
查看数据库支持哪些存储类型
查看数据库支持哪些存储类型 1.show engines \G 2.show variables like 'have%'; innodb 自动增长列必须是索引,如果是组合索引必须是组合索引 的 第一列 constraint xxx foreign key (country_id) refrences country (country_id) on delete restr
【百度地图API】交你如何用百度地图搜索自己的数据!不需数据库
转地址:http://www.byywee.com/page/M0/S556/556950.html 搜索关键字: baidu API搜索用户自己数据库里的数据            首 页   新闻动态   关于百微   解决方案   网站建设   精品案例   联系我们
【iOS地图开发】巧妙打造中英文全球地图
http://www.cnblogs.com/milkmap/p/4206108.html 地图开发的同学们经常遇到这样的问题,国内版地图开发,用高德或者百度就行了。但是,国外的地图怎么办?这里告诉大家,如果利用iOS地图,打造中英文的,国内国外都能用的,全球地图。 制作全英文地图的展示并不困难,但是要制作全英文的数据检索列表,全英文的信息窗口,你就没办法了吧。告诉你,我有妙招
如何使用Python存储数据?
在Python开发中,数据存储、读取是必不可少的环节,而且可以采用的存储方式也很多,常用的方法有json文件、csv文件、MySQL数据库、Redis数据库以及Mongdb数据库等。1. json文件存储数据json是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,可以轻松解决py2和py3的编码问题,内容结构类似于python中的字典和列表,层次结构简洁而清晰,易于人...
通过百度地图API获取坐标并将数据存储在数据库内。
网上很多都是通过百度地图API调用JS的例子,并没有真正的数据库交互哦~所以我做了一个与sql server数据库交互的例子。数据库用的是sql server,大家看着自行建立数据库哦~~ 首先,我们建立一个default.aspx 1 @ Page Language="C#" AutoEventWireup="true" CodeFile="Default.asp
有向图的存储
数据结构有向图的存储
百度地图的使用和编程实现
开发使用百度地图,首先需要获得api key。实现方法为: ①进入百度地图api网页创建一个新应用,输入 sha1和包名。 ②sha1的获取方法: eclipse中是直接查看:winows -> preferance -> android -> build Android studio中是:点击studio下面的工具栏中的Open Terminal 然后进入到User\Administr
电子通讯录(数据库版存储)
需求 制作一个电子通讯录,通过该通讯录能存入好友ID号、姓名(英文)、手机号码、家庭住址、公司电话。 模块  主界面:主要显示软件功能。 A) 添加好友信息。                                   //  id为唯一标识 B) 列表好友信息。(包含排序功能) C) 搜索好友 D) 删除好友//按姓名查找,如有重名全部列出,让用户选择 E )修改好