高分求助地图算法!

读易的庄稼人 2010-07-25 09:57:00
,NET开发一个C/S模式的系统,某公司在中国境内很多省份有业务伙伴,客户输入该合作伙伴的经纬度后,地图上显示该合作伙伴的的位置,并且响应鼠标的划过事件和点击事件。绘图已经完成,鼠标点击事件也完成。现在需要一个算法就是将客户输入的经纬度转换为XY坐标。需要注意的是经纬度是在地图上是有弧度的,而XY坐标是直线的。地图比例是1:3500万。希望做过的朋友给个想法,如果有第三方的东西,大家知道的话也可以推荐下!
...全文
1965 45 打赏 收藏 转发到动态 举报
写回复
用AI写文章
45 条回复
切换为时间正序
请发表友善的回复…
发表回复
xu_2007 2010-10-28
  • 打赏
  • 举报
回复
好东西!
zhoujk 2010-08-23
  • 打赏
  • 举报
回复
假设地球仪可以旋转,因此会有一个当前中心坐标 Center(X,Y);
以 Center(X,Y) 为准,求出每个点的当前坐标 A(X,Y) = Current(X,Y)- Center(X,Y),然后通过三角函数,反算出A(X,Y)的 XY 坐标即可。这时的XY应该是介于 0~1之间,乘以放大系数即可。
纳兰小羽 2010-08-20
  • 打赏
  • 举报
回复
http://blog.csdn.net/shanshan209/archive/2010/07/08/5720863.aspx

google map 可以根据自己的需求去定制
xiaotiange 2010-08-20
  • 打赏
  • 举报
回复
标识个马赛克
sky3333ss 2010-08-20
  • 打赏
  • 举报
回复
好好学习了
  • 打赏
  • 举报
回复
建议你采用这个免费开源的地图:
http://www.openstreetmap.org/,
当然了,目前基本上所有的地图都采用笛卡尔投影,这些计算都有现成的例子,
同时,推荐一个开源的地图软件:http://www.situare.net/,它有多个客户端,最主要的,这也是开源的,在注意开源软件协议的前提下,你可以下载其源代码,然后加以借鉴
welllit 2010-08-02
  • 打赏
  • 举报
回复
用第三方呀,jquery 有个jmap,用的是google的map api,你只接用jmap就行了,地标出经纬度,就能给你算出来。
xqqkl 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 lclhurricane 的回复:]
不知道你的地图是什么坐标系统下的。如果地图是经纬度的,那么就是地图坐标和视图坐标做一个转换,根据你的显示比例和原点,二者转换不是很直接的嘛
[/Quote]
这是问题的关键。就是你的地图的数学基础是什么?
看样子你好像对大地测量方面的东西根本不了解。还有,在电脑上显示的地图没有固定的比例尺,如果不是图片的话。图片的放大缩小也算是比例尺的变化。
同一个位置在不同的大地坐标系下经纬度是不一样的,在不同的投影坐标系下(Y,X)值是不一样的。这两个坐标系都有样基准——参考椭球。如果参考椭球一样转换简单一点,参考椭球不一样转换就复杂了。进行转换的算法涉及到复杂的浮点运算,要有很高的计算方法功底才能获得精度较高的结果。
推荐使用GMap.NET这个控件,开源免费。地图的坐标转换就不用自己写了。功能还算强大,使用的地图源是Google等网络地图。可以下载一份地图到本地使用。你自己研究研究吧。
xqqkl 2010-07-31
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 lclhurricane 的回复:]
不知道你的地图是什么坐标系统下的。如果地图是经纬度的,那么就是地图坐标和视图坐标做一个转换,根据你的显示比例和原点,二者转换不是很直接的嘛
[/Quote]
这是问题的关键。就是你的地图的数学基础是什么?
看样子你好像对大地测量方面的东西根本不了解。还有,在电脑上显示的地图没有固定的比例尺,如果不是图片的话。图片的放大缩小也算是比例尺的变化。
同一个位置在不同的大地坐标系下经纬度是不一样的,在不同的投影坐标系下(Y,X)值是不一样的。这两个坐标系都有样基准——参考椭球。如果参考椭球一样转换简单一点,参考椭球不一样转换就复杂了。进行转换的算法涉及到复杂的浮点运算,要有很高的计算方法功底才能获得精度较高的结果。
推荐使用GMap.NET这个控件,开源免费。地图的坐标转换就不用自己写了。功能还算强大,使用的地图源是Google等网络地图。可以下载一份地图到本地使用。你自己研究研究吧。
syy6 2010-07-31
  • 打赏
  • 举报
回复
这个算法没有啥好不好,任何一本地图学教程里面都有的,楼主可以找找看。
我以前也写过,代码不是很长的,不过代码目前没了。
读易的庄稼人 2010-07-30
  • 打赏
  • 举报
回复
就是要找个转换坐标的方法,其他地图的功能都实现了,就差个好的算法了。
ideniece 2010-07-30
  • 打赏
  • 举报
回复
这个不会,我感觉使用别的的api应该是可以的
wulala789 2010-07-30
  • 打赏
  • 举报
回复
建议采用google earth二次开接口;比较简单,也比较好看,另外,地理位置的事件还是用到gis开发比较好,你可以尝试用MO或AO,找个图层,来做个简单二次开发,也是可行的。。
qichen128 2010-07-30
  • 打赏
  • 举报
回复
顶一下!
Teng_s2000 2010-07-29
  • 打赏
  • 举报
回复
冰岛男孩 2010-07-29
  • 打赏
  • 举报
回复
大地坐标到平面直接坐标,有不少现成的成熟算法的吧
lclhurricane 2010-07-29
  • 打赏
  • 举报
回复
不知道你的地图是什么坐标系统下的。如果地图是经纬度的,那么就是地图坐标和视图坐标做一个转换,根据你的显示比例和原点,二者转换不是很直接的嘛
丷丩 2010-07-29
  • 打赏
  • 举报
回复
大地坐标到平面直接坐标,有不少现成的成熟算法的吧。
whitechololate 2010-07-29
  • 打赏
  • 举报
回复
学习下。经纬度转xy 坐标
yhd21 2010-07-29
  • 打赏
  • 举报
回复
地图很有趣,自己也想搞一下。
加载更多回复(21)

110,552

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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