电子地图源码
① 如何用C语言实现电子地图的源代码
用C语言?很困难的。 追问: 那能写出来么?? 回答: 要看你是写什么样的地图,需要有什么功能等等。
② 电子地图C语言代码
fscanf(p , "%s" , s[i].flag);
//
道路信息放入内存中
fscanf(p , "%s" , s[i].brunch);
//
道路信息放入内存中
fscanf(p , "%s" , s[i].dispclass);
//
道路信息放入内存中
fscanf(p , "%s" , s[i].Roadname);
//
道路信息放入内存中
fscanf(p , "%s" , s[i].sign_two);
//
道路信息放入内存中
}
if(s[1].sign_one!="")
//
判断文件信息是否写入成功
printf("\n\t\t\t
文件信息
-------
写入内存成功
\n\n");
ma_interf();
//
返回主界面
}
else
{
ma_interf();
//
返回主界面
}
}
/******************************************************************************
********
*
Functionname: SortData
*
*
Function Description:
对读取出来的文件信息进行排序并将排序结果显示在屏幕上
*
*
Date:2012/6/21
*
*******************************************************************************
*******/
void SortData(tagMap_t s[])
{
int
i=0 , k=0 , j=0 , m=0 , n=7;
//i k
为循环控制变量
n
记录
linkid
的长度
m
标记成功排序的个数
char temp[50];
printf("\n\n\t\t\t
排序中…………请等待
!
…………
\n\n\t\t
排序完成后将自动按
LinkID
编号由小到大显示所有道路信息
\n\n");
for(n=8; n<13; n++)
{
for(i=0; i<(nsizecount-2); i++)
{
if((int)strlen(s[i].linkid) == n)
//
判断
linkid
的长度是否为
n
{
k=i;
//
记录
Linkid
长度为
n
时
数组
s
的下标
i
j=i;
//
记录
Linkid
长度为
n
时
数组
s
的下标
i
for(k=k+1; k<(nsizecount-2); k++)
//
继续进行下一次循
环
{
if((int)strlen(s[k].linkid) == n)
//
判断
linkid
的长度
是否为
n
{
if(strcmp(s[i].linkid , s[k].linkid)>0)
//
比较
linkid
的长度同为
n
时它们的大小
{
i=k;
//
记
录
下
当
前
检
索到最小
linkid
的
s
数组的下标
}
}
}
strcpy(ss[m].linkid , s[i].linkid);
//
此时最小
linkid
把
数组
s
的信息存放到
ss
数组中
strcpy(ss[m].flag , s[i].flag);
//
此时最小
linkid
把
数组
s
的信息存放到
ss
数组中
strcpy(ss[m].brunch , s[i].brunch);
//
此时最小
linkid
把
数组
s
的信息存放到
ss
数组中
strcpy(ss[m].dispclass , s[i].dispclass);
//
此时最小
linkid
把
数组
s
的信息存放到
ss
数组中
strcpy(ss[m].Roadname , s[i].Roadname);
//
此
时
最
小
linkid
把数组
s
的信息存放到
ss
数组中
strcpy(temp , s[j].linkid);
//
交
换
s[i]
和
s[j]
中
linkid
的信息
strcpy(s[j].linkid , s[i].linkid);
strcpy(s[i].linkid , temp);
strcpy(temp , s[j].flag);
//
交换
s[i]
和
s[j]
中
flag
的信息
strcpy(s[j].flag , s[i].flag);
strcpy(s[i].flag , temp);
strcpy(temp , s[j].brunch);
//
交换
s[i]
和
s[j]
中
brunch
的信息
strcpy(s[j].brunch , s[i].brunch);
strcpy(s[i].brunch , temp);
strcpy(temp , s[j].dispclass);
//
交
换
s[i]
和
s[j]
中
dispclass
的信息
strcpy(s[j].dispclass , s[i].dispclass);
strcpy(s[i].dispclass , temp);
strcpy(temp , s[j].Roadname);
//
交换
s[i]
和
s[j]
中
Roadname
的信息
strcpy(s[j].Roadname , s[i].Roadname);
strcpy(s[i].Roadname , temp);
m++;
//
记
录
已
排
序成功道路信息的个数
i=j;
if(m%830
==
0)
//
排序进度提示符
.
的输出控制
830
时刚好输出
1
行
.
且进度刚好
100%
{
printf(".");
}
if(m%100==0) //
控制百分数输出
{
if(((float)m/(nsizecount-2))*100<10)
{
printf("%.1f%%%\b\b\b\b"
,
((float)m/(nsizecount-2))*100);
}
else if (((float)m/(nsizecount-2))*100>=10)
{
printf("%.1f%%%\b\b\b\b\b"
,
((float)m/(nsizecount-2))*100);
}
}
}
}
}
system("cls");
for(i=0;i<m;i++)
{
printf("
%s
%s
%s
%s
%s
\n"
,
ss[i].linkid
,
ss[i].flag
,
ss[i].brunch
,
ss[i].dispclass , ss[i].Roadname);
}
printf("\n\n\t\t
排序成功
-----
按
LinkID
编号由小到大显示完成
\n\n");
ma_interf();
//
排序完成
返回主界面
}
/******************************************************************************
********
*
Functionname:Update
*
*
Function Description:
对数据进行更新,并将更新后的结果存入新的文件中
*
*
Date:2012/6/22
*
*******************************************************************************
*******/
void Update (tagMap_t s[])
{
FILE *pp;
//
定义文件指针
用来创建新的
newfile
文件
char pc[60];
int i=0;
//
循环控制变量
if((pp=fopen("e:\\newfile.txt " , "w")) == NULL)
//
判断穿件文件是否成功
{
printf("
更新文件创建失败……
");
exit(0);
}
for(i=0; i<(nsizecount-2); i++)
{
fprintf(pp , "#\t");
fprintf(pp , "%s\t" , ss[i].linkid);
//
文件信息写入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].flag);
//
文件信息写入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].brunch);
//
文件信息写入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].dispclass);
//
文件信息写入
newfile
文件中
fprintf(pp , "%s\t" , ss[i].Roadname);
//
文件信息写入
newfile
文件中
fprintf(pp , "#");
fprintf(pp , "\n");
}
fclose(pp);
//
关闭文件指针
pp
if((pp=fopen("e:\\newfile.txt" , "r")) == NULL)
//
打开文件
newfile
为更新文件提
供数据
{
printf("the newfile open fail\n");
exit(0);
}
FILE *ppp;
//
文件指针
用来创建
update
文件
if((ppp=fopen("e:\\update.dat" , "wb")) == NULL)
//
判断文件创建是否成功
{
printf("
更新文件创建失败
\n");
exit(0);
}
system("cls");
printf("\n\n\t\t\t\t
文件更新中……
\n");
//
给出提示信息
for(i=0; i<(nsizecount-2); i++)
{
fread(pc , 56 , 1 , pp);
//newfile
文件信息写入
pc
数组中
fwrite(pc , 56 , 1 , ppp);
//
数组
pc
的信息写入
update
二进制
文件中
}
printf("\n\n\t\t\t\t
文件更新成功
\n\n\n\t\t\t
更新文件存放在
update.dat
文件中
\n\n\n");
ma_interf();
//
返回主界面
}
void main()
{
ma_interf();
//
进入主界面
}
③ iOS百度地图 源码分享
网络地图集成 ,划线定位 ,修改地图图标时时划线 ,源码分享 话不多说直接源码。
注意:导入 sdk,如有方法报错 注意inforplist 和 viewcontroller.mm
1.AppDelegate 添加头文件 定义属性
2.didFinishLaunchingWithOptions 方法里添加
viewController里添加
个人总结 依据网络地图官方文档所做。
④ c++做电子地图,求助
那我给您点建议吧。
首先,你需要做需求分析。地图的数据是相当庞大的数据系统,这需要做大量的录入工作,当然,你也可以问某些公司购买,但是这个价格不菲。这个需要很庞大的实力才能完成。
然后,现在的电子地图并无很大的开发价值。B/S结构的电子地图是主流,全球有Google Map,中国也有类似的51Map,你登陆city8,你甚至可以看到全真3D地图,可以说,再开发新的电子地图没有利用价值。
最后,为了练习编程,可以开发小型地图。我建议你用Java开发,因为中国很少有人用solaris,你开发的程序,当然希望与别人分享的吧,所以,用Java开发。
开发的步骤:
1:设计地图数据的存储结构,也就是数据库的结构设计
2:如果您是把图片数据存储起来,那好办,你只要为每张图片制定具体的方位(用经度纬度表示,2维数组),到时候,显示出来就可以了。Java中,显示图片的控件很多,具体的,需要学习Java的Swing。把各个小图片根据方位有序组织起来,就可以组成一张地图。
如果对您有帮助,请记得采纳为满意答案,谢谢!祝您生活愉快!
⑤ 怎么做电子地图,类似百度的那种最好有实例+代码的链接
问答引流是人人可以提问回答而且没有等级限制的,不过要做引流要求比较严格,几乎接近于苛刻。zuowendaQ⒐375837⒉⒉
⑥ 求一个android 百度地图的源码,可以实现点击获取经纬度,并保存在数据库里面。在点击按钮显示经纬度。
我刚刚在csdn上传了一个,可以获取当前自己位置的经纬度。你说的这个好麻烦,要根据屏幕大小和地图缩放比例获得点,然后再转化,想想就头疼
⑦ 求网站在线生成地图源码
如果你网站需求 建议你用SiteMap制作工具
如果开发目前没有这方面的资源
⑧ 基于QT的电子地图设计与实现的源代码。我是个qt初学者,请哪位大哥帮帮我,我先谢谢了!
哇塞,源代码,QGIS咋样,很大很大哦,要得话我发给你,其实网上能下到的