怎样用MFC绘制地图

cwjczqsll 2010-01-19 08:19:31
[POLYLINE]
Type=0x6
Data0=(26.89852,112.59695),(26.89908,112.59699),(26.89985,112.59687),(26.90024,112.59690),(26.90028,112.59695),(26.90037,112.59721),(26.90037,112.59798),(26.90037,112.59935),(26.90041,112.60009)
[END]

[POLYLINE]
Type=0x6
Data0=(26.90127,112.59407),(26.90054,112.59386),(26.90011,112.59391),(26.89955,112.59386),(26.89848,112.59420)
[END]


怎样把上述MP格式的地图信息点用C++语言绘制出来,意思是怎样用C++绘制地图?
...全文
771 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
daredjever 2010-01-26
  • 打赏
  • 举报
回复
我现在就在绘制地图
不过是电子海图
有兴趣一起讨论下效率问题
我发现数据结构对于绘图效率影响很大,需要解决啊
quweijun218 2010-01-25
  • 打赏
  • 举报
回复
画个地图嘛,有那么难么,只要有矢量数据就行。我有一个现成的程序。
jynok2005 2010-01-24
  • 打赏
  • 举报
回复
这个我在行,呵呵,做过好几年的这个东西了
你首先要将经纬度也就是地理坐标转换成直角坐标,这要经过很多投影计算,有很多投影方式的,如果你想学的话,可以找一些地图投影学看看。
有一些投影公式,在网络上可以找到源代码。
然后再将直角坐标转换成屏幕坐标,也就是缩小,平移,Y轴变换的问题了。
最后就可以楼上同志们说的那些方法绘制了
peacexx 2010-01-22
  • 打赏
  • 举报
回复
一楼的说的对,必须要将世界坐标转换成屏幕坐标,然后才能画。
转换的时候要有相对基点和范围,简单的说就是将世界坐标下的一个范围映射到屏幕的一个范围,这个范围内的世界点就能映射到屏幕范围内的像素点了,再把这些像素点用dc的polyline或者polygon等方法就可以画出地图了。
huanyuxiake 2010-01-22
  • 打赏
  • 举报
回复
有人用MFC做过LOD地形嘛?
huanyuxiake 2010-01-20
  • 打赏
  • 举报
回复
如何实现LOD渲染地形啊 !
快乐鹦鹉 2010-01-20
  • 打赏
  • 举报
回复
可以看出以上两位不懂地图......
long999999999 2010-01-20
  • 打赏
  • 举报
回复
GDI+
Graphics* g=new Graphics(pDC->GetSafeHdc());
PointF points[4];
points[0].X = 10;
points[0].Y = 10;
points[1].X = 10;
points[1].Y = 10;
points[2].X = 100;
points[2].Y = 200;
points[3].X = 80;
points[3].Y = 80;
SolidBrush redBrush(Color(255,255,0,0));
g->FillClosedCurve(&redBrush,points,4);
wuhuwy 2010-01-20
  • 打赏
  • 举报
回复
读取各数据点,然后用绘线函数Lineto和Moveto画出各边界就可以绘出面了,绘线也类似。
快乐鹦鹉 2010-01-20
  • 打赏
  • 举报
回复
画地图客不是这么简单的。你得把地球坐标系转换到屏幕坐标系才行。
lsvine 2010-01-20
  • 打赏
  • 举报
回复
看来这个地图的应用现在很热门呀 好多人问

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧