Rover's Official Blog

Map/GPS/GIS/WebMap

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  82 随笔 :: 0 文章 :: 554 评论 :: 41 引用

上次谈到MapBar的实现,今天发个MapBar的JS,从百度地图(http://map.baidu.com/)中可以得到,通过这一个JS实现了我所说的地图显示部分,地图容器,控制面板(放大,缩小,缩放状态条,左移,右移,上移,下移,测量距离),比例尺,LOGO,气泡框(GOOGLE中那种有阴影的框),提示信息框(单击或鼠标停留在兴趣点上的一个方形的提示框),画点,画线等等。
    压缩包中的show.htm已经可以显示地图了,效果见下面的附图,只是,许多图片都是从MapBar的地图图片服务器上获得的,部分象气泡框这样的图片也在图片服务器上。原来我是想把MapBar图片服务器上的各个比例尺的地图下载到本地我便可以在本地实现地图的显示功能,完全脱离MapBar的图片服务器,我把非地图部分都下完了,但地图部分由于在算法上我没有算好,而且由于图片量太大(怀疑MapBar的图片服务器上的图片文件就应该占到几十个GB),所以最后只下了部分。但根据这个原理我们把自己的地图进行分幅分割处理应该同样可以得到这样的效果(这个算法也应该在JS种可以获得)。
    压缩包中最主要的文件为JS/avinclude.js,我对这个JS已经进行了简单的分行处理,比原来没有任何换行符的要容易读一些。我对网页部分和JS部分基本上没有做任何更改,只改了最简单的不影响全局的部分。
    有个不明白的地方:MapBar左下角的比例尺,我觉得问题很大,简单比较了下和51DITU的比例尺相差太大,不知道是51DITU的错呢还是MapBar的错,而且最主要的是这个比例尺是如何确定的?(可能是我还没看完JS,看完应该有所明白)他们地图采用的地图投影又是什么?(地图投影部分就更不明白了,放到最小和最大,一个世界图一个城市详图,应该是两种完全不同的投影)这些也许是我考虑的太多了吧,也许他们也只是简单表示下意思没有那么仔细到投影比例尺等的差异吧。
    喜欢的朋友可以下载研究,希望研究后能多发点心得,欢迎大家一起交流。

    压缩包下载地址:http://files.cnblogs.com/Tangf/MapBar_baidu.rar

posted on 2006-01-22 18:05 Rover.Tang 阅读(11899) 评论(100)  编辑 收藏 网摘 所属分类: GIS

评论

呵呵,对于MapBar这样的非GIS传统公司而言,什么比例尺呀、投影呀都不要强求了。我估计他们公司没有几个是真正GIS出身的。拿国外的一些代码回来重新编译然后拼命的做界面,居然也获得这样大的关注不能不说是国内GIS业的耻辱和悲哀。
  回复  引用    

#2楼 2006-01-22 23:39 马维峰      
呵呵,
第一,地图不仅仅是GIS的专利;
第二,MapBar还是很不错的;
第三,做程序不需要一定要搞GIS出身。

  回复  引用  查看    

#3楼 2006-01-23 01:14 唐生[未注册用户]
在firefox里不能显示,不过可以修改avconfig.js文件中的strMapsvrUrl变量赋完整值如http://202.108.22.156/baidu/maplite/就OK了,可能是firefox跟ie的规则不同吧。
  回复  引用    

#4楼 2006-01-23 11:52 老家伙来挨踢      
不知道你说的地图图片是什么意思。我知道mapbar的地图数据是矢量形式的,这是它为什么速度奇快的原因。它的地图渲染完全是在客户端的applet里进行,服务器只要把矢量数据传送到applet里就可以了。传送矢量数据的数据量远小于传送栅格图,服务器端因为不用生成地图也减小了负荷。这种机制特别适合于互联网和WAP的需求,但在地图功能上显然比专业的GIS系统要差一些。
  回复  引用  查看    

#5楼 2006-01-23 15:51 edison1024      
@刘民1
"我估计他们公司没有几个是真正GIS出身的。拿国外的一些代码回来重新编译然后拼命的做界面,居然也获得这样大的关注不能不说是国内GIS业的耻辱和悲哀。"

哥们,这样说就是妄加揣测且有欠厚道了。对己对人都没什么好处。

  回复  引用  查看    

#6楼 2006-01-23 15:57 edison1024      
@老家伙来挨踢

mapbar有图片和applet矢量发布两种,博主说的是静态图片那种

  回复  引用  查看    

mapbar包含的技术

js图型库
VML:一种标记语言
和算法的能力

http://202.108.22.156/baidu/show.jsp?pid=&width=680&height=450&type=2

<td width='680' height='448' ><SCRIPT language=javascript>
var maplet = new AVMaplet(tmp1[1],tmp1[0], 1, 678, 448,1,1,"maplite/images/mask.gif","baidu");
maplet.addHotspot(39.90496,116.39140,"010",0, 5);
maplet.addHotspot(39.14679566150836,117.20542181200692,"022",1, 5);
maplet.addHotspot(31.217730065338284,121.44644672727291,"021",1, 5);
maplet.addHotspot(23.13454,113.24539,"020",1, 5);
maplet.addHotspot(29.52743657535289,106.52713048972885,"023",1, 5);
maplet.addHotspot(41.788136,123.41966,"024",1, 5);
maplet.addHotspot(30.583851,114.273666,"027",1, 5);
maplet.addHotspot(34.27120,108.93684,"029",1, 5);
maplet.addHotspot(30.293614,120.168156,"0571",1, 5);
maplet.addHotspot(32.06664,118.79395,"025",1, 5);
maplet.addHotspot(37.500475,122.10728,"0531_11",1, 5);
maplet.addHotspot(36.67257,117.02788,"0531",1, 5);
maplet.addHotspot(28.197455,112.978112,"0731",1, 5);
maplet.addHotspot(38.911,121.5899,"024_8",1, 5);
maplet.addHotspot(20.02974,110.29916,"0898",1, 5);
maplet.addHotspot(38.04759,114.51940,"0311",1, 5);
maplet.addHotspot(34.757942,113.641312,"0371",1, 5);
maplet.addHotspot(43.884295,125.308308,"0431",1, 5);
maplet.addHotspot(29.86757,121.56422,"0571_3",1, 5);
maplet.addHotspot(31.31068,120.59224,"025_8",1, 5);
maplet.addHotspot(24.49239,118.12163,"0591_4",1, 5);
maplet.addHotspot(30.64975,104.078891,"028",1, 5);
maplet.addHotspot(26.035396,119.317072,"0591",1, 5);
maplet.addHotspot(23.028393,113.099296,"020_14",1, 5);
maplet.addHotspot(22.525907,113.373509,"020_15",1, 5);
maplet.addHotspot(22.55395,114.109619,"020_10",1, 5);
maplet.addHotspot(35.0636648715524,118.34224183637302,"0531_19",1, 5);
maplet.addHotspot(32.06886444504337,112.16007302611602,"027_15",1, 5);
maplet.addHotspot(45.742095,126.644523,"0451",1, 5);
maplet.addHotspot(25.046907,102.710427,"0871",1, 5);
maplet.addHotspot(36.12718,120.38911,"0531_12",1, 5);
maplet.addHotspot(43.83134,87.56985,"0991",1, 5);
maplet.addHotspot(31.85153,117.26002,"0551",1, 5);
maplet.addHotspot(31.573743,120.29715,"025_5",1, 5);
maplet.addHotspot(22.80633,108.311875,"0771",1, 5);
maplet.addHotspot(37.532723,121.378181,"0531_10",1, 5);
maplet.addHotspot(46.591776,125.025081,"0451_14",1, 5);
maplet.addHotspot(37.873437,112.564488,"0351",1, 5);
maplet.addHotspot(29.651446,91.134569,"0891",1, 5);
maplet.addHotspot(28.674173,115.897315,"0791",1, 5);
maplet.addHotspot(38.466531,106.2732,"0951",1, 5);
maplet.addHotspot(26.579416,106.707856,"0851",1, 5);
maplet.addHotspot(36.608731,101.785032,"0971",1, 5);
maplet.addHotspot(40.81507,111.662929,"0471",1, 5);
maplet.addHotspot(36.07009,103.76189,"0931",1, 5);
maplet.addHotspot(32.0098,120.85379,"025_20",1, 5);
maplet.addHotspot(31.782658,119.95223,"025_4",1, 5);
maplet.addHotspot(36.791005,118.057973,"0531_4",1, 5);
maplet.addHotspot(36.702672,119.105353,"0531_7",1, 5);
maplet.addHotspot(36.188097,117.126969,"0531_13",1, 5);
maplet.addHotspot(34.664,112.382214,"0371_12",1, 5);
maplet.addHotspot(32.130634,114.070790,"0371_9",1, 5);
maplet.addHotspot(23.047493,113.749275,"020_2",1, 5); 
maplet.addHotspot(22.245171225251656,113.54959639143789,"020_21",1, 5);
maplet.addHotspot(24.910902,118.589375,"0591_5",1, 5);
maplet.addHotspot(24.512702,117.652762,"0591_7",1, 5);
maplet.addHotspot(43.906729,126.566005,"0431_2",1, 5); 
maplet.addHotspot(27.238193476274983,111.45857409074627,"0731_18",1, 5); 
ShowPOI();
maplet.showMap();





39.90496,116.39140,"010",
经度,纬度,城市区号
绝对是经纬度,我用我公司的地图定位已经定过了,正好在北京



  回复  引用    

#8楼 2006-01-23 18:30 liujun      
呵呵,mapbar的js还以为写很nb的样子,特意混淆一下。
  回复  引用  查看    

#9楼[楼主] 2006-01-23 19:42 浪人|努力      
@刘民1
必须承认MAPBAR不是专业的GIS公司,但确实做的还行,至少也有不少的公司在学习。那么请问GOOGLE是不是专业的GIS公司?也应该不是吧,但是他们的GOOGLE MAP API和GOOGLE EARTH连ESRI公司的人都在学习,这该如何讲?都说MAPBAR简单,GOOGLE简单,但GOOGLE开放了API世界上至少有那么多人在研究,许多网站也用GOOGLE的API,不管是盈利或非盈利。我不明白要达到怎样的要求才能算是GIS,难道非要专业的专题图、缓冲区、最短路径等等?难道简单的基于GOOGLE API的留言本、博客地图等不算GIS的应用?
@kaixin110@msn.com
这些只是很明的坐标,但里面的坐标不是这样的,他们把真实的坐标加一个参数然后加密成一个字符串,象IJSDSBWVJABFA这个就是,表示上海市人民政府的坐标。这个坐标的解密也应该在JS有。至于上面贴的明坐标,他们只是为了做些城市的热点而已。
IJSDSBWVJABFA这个坐标经过解密后为:121.46979,31.23245

  回复  引用  查看    

那大家能分析一下:hz.edushi.com的技术么?呵呵
  回复  引用    

#11楼[楼主] 2006-01-25 22:41 浪人|努力      
@楼上的
原理上是一样的,但E都市的JS不容易获得,他们的JS是通过mapapiGB_i.aspx这个页面加参数获得的,这个后面的参数我老是配不好,所以没办法获得他们的JS,保护性做的不错。

  回复  引用  查看    

#12楼 2006-01-26 11:35 edison1024      
@浪人|努力
"IJSDSBWVJABFA"我个人估计是base64编码

  回复  引用  查看    

#13楼[楼主] 2006-01-26 18:07 浪人|努力      
@edison1024
可能是吧,我说不清楚,反正加密解密都在这个JS里有。而且他们加了个参数,这个参数由JSP生成,所以有时候是不一样的。相同的坐标可能不一样的编码,但解密后坐标是一样的。呵呵。

  回复  引用  查看    

#14楼 2006-02-05 15:42 jimqizi[未注册用户]
哈哈,这里前辈真多啊!
小生今后多来此静坐静坐!
呵呵 !

  回复  引用    

#15楼 2006-02-05 15:53 jimqizi[未注册用户]

引用自“2006-01-22 23:39 马维峰 ”
"做程序不需要一定要搞GIS出身。 "

我现在工作学习的老板是我校友,以前测量出生,但GIS开发很专业,公司其他程序开发人员都不是GIS专业出生,他告诫我GIS本质上没有多少东西好研究的,关键的都是计算机技术,你来这里把你学校学到的一点收起来,踏踏实实定为自己就是一个程序员,和他们计算机专业出生要没两样.


  回复  引用    

#16楼 2006-02-23 14:43 cnmaps[未注册用户]
avinclude.js的变量名里很多有$符号是什么意思?
  回复  引用    

#17楼 2006-02-23 15:29 cnmaps[未注册用户]
左移和上移好像不起作用
  回复  引用    

#18楼[楼主] 2006-02-23 19:06 浪人|努力      
@cnmaps
$没有任何意义啊,只是算变量名里的一个字符而已啊
左移右移应该是好的,移动半个容器宽度。不然就是你的IE可能有点问题,FF上我还没有测试过

  回复  引用  查看    

@刘民1

我们公司的去都是gis或测量出身,博士,研究生,本科生一大堆,可惜编程水平都一般,到现在也没有什么nb的产品

  回复  引用    

#20楼 2006-03-10 14:24 Bobby      
老大 你那个IJJGTVWUAAVFU参数是如何得到的?我现在也想在地图上加一个坐标,也在上海市在公平路和唐山路的交叉口。能把这个坐标告诉我吗?
  回复  引用  查看    

#21楼[楼主] 2006-03-10 22:56 浪人|努力      
@Bobby
百度的JS已经更新,用原来的算法已经解不出来,所以你说的交叉口我无法得到坐标。
不过经查,大概坐标为:121.5003600,31.25637405

  回复  引用  查看    

"北京市""HESIECWVVHUEE" "010";
"广东省" "广州市" "IJICESVUABJGJ" "020";
"清远市""IIEFGUVUARHGU"020_1";
"佛山南海市" "IJHCSBXTWSGVB""020_18";
"深圳市" "ISSGRUVUAIIDF" "020_10";
"湛江市" "IICBEHVTITUFU""020_11";
"肇庆市" "IIGIHSWTVUETJ" "020_13";
"中山市" "IRRCBGXTWFUSG" "020_15"
"东莞市" "IRGJCBVUASTDU""020_2";
"韶关市" "IHHVJTWUDDDST""020_3";
"汕头市" "IVGHCDXUFSBTW""020_5";
"顺德市" "IRAGSSXTWRHIS" "020_20";
"珠海市" "ISFEIJXTWDEUF""020_21";
"揭阳市""IUJVVDWUFHRSU""020_19";
"从化市" "IJGIIHVUBEBAJ""020_30";
"上海市""IJSAFGXVIWCHC" "021";
"上海县" "IJSVTSWVIRJCU""021_14";
"天津市""HHBVGEWVVJDBG" "022";
"塘沽" "HIACRTXVWBRBG" "022_0";
"重庆市""HFIASWXTWJRFB" "023";

"辽宁省"
"沈阳市" "HTJCAVXWTBGET" "024";
"阜新市" "HJIHTGXWJSHWV" "024_17";
"盘锦市" "HSDTUHXWJBBHU" "024_18";
"抚顺市" "HUASRGXWTSTTT" "024_4";
"营口市" "HTHFJDXWIIVJH" "024_7";
"大连市" "HVCSDAXWEVHRR" "024_8";
"葫芦岛市" "HRDWSUXWGITHJ" "024_19";


"江苏省"
"南京市" "IEFIJJWVGDBVS" "025";
"徐州市" "HVIIUIWVHBRHC" "025_10";
"连云港" "IBAJDEWVRJVHE" "025_11";
"淮阴市" "ICFUDRWVIURHG" "025_12";
"盐城市" "IEGBCJXVRDWJB" "025_15";
"扬州市" "IEUESRWVHRSJG" "025_17";
"泰州市" "IFGFFCWVIIUDV" "025_18";
"镇江市" "IFBWTCXVHGGAI"; "025_2";
"南通市" "IHJDGUWVJEAFH"; "025_20";
"常州市" "IGISWSXVHIHHB"; "025_4";
"无锡市" "IHGEFDWVHSTJB"; "025_5";
"苏州市" "IIDVFRWVHTJBE"; "025_8";


"湖北省"

"武汉市" "HWSGBEXUUAIWI" "027";


"四川省"
"成都市""HAAVAAWTUJEGA" "028";
"泸州市" "HEUASUXTTWJSS" "028_16";


"陕西省"
"西安市" "HBWBACXURIERE" "029";
"咸阳市" "HBHUICWUREFVC" "029_1";


"河北省"
"石家庄市" "HESCISWVITTHS"; "0311";
"唐山市" "HHVGGTXWATUCT"; "0311_10";
"秦皇岛市" "HJJDUCXWDGIEG"; "0311_11";
"承德市" "HFGVVTXWCHACR"; "0311_13";
"廊坊市" "HFTEFUWVVFSCH"; "0311_14";
"张家口市" "HBBBJVWVUISAG"; "0311_15";
"保定市" "HEVSSGWVSICHV"; "0311_16";
"邢台市" "HGCJCEWVHDJBV"; "0311_4";
"邯郸市" "HGUHUSWVGIBRD"; "0311_6";
"沧州市" "HHUFHCWVTTRDT"; "0311_7";

"山西省"


"太原市" "HBWRVWXVFITUB" "0351";
"长治市" "HFFVBUWVDTTJH" "0351_8";
"大同市" "GWSDSRXVRAJVR" "0351_3";
"晋城市" "HGAIHRWVCFJIA"; "0351_9";
"晋中市" "HCIERJWVFIGDH"; "0351_13";
"临汾市" "HDBVVDWVBDIBB"; "0351_4";
"吕梁地区" "HAFJCIXVCUGWA"; "0351_12";
"朔州市" "GWITWBXVHJBJF"; "0351_10";
"忻州市" "HBGSAIWVGJVDT"; "0351_2";
"阳泉市" "HDIDIFXVHAUWW"; "0351_7";
"运城市" "HDVJWFXUVUARJ"; "0351_6";

"河南省"

"郑州市" "HIGAIWXVCHAHF"; "0371";
"洛阳市" "HGJJGSXVAFWVU"; "0371_12";

  回复  引用    

//新增城市
"平顶山市" "HJGGBEWVAFTSR"; "0371_11";
"许昌市" "HJTCSFWVBJITU"; "0371_6";
"南阳市" "HJFRFDXUVAWHW"; "0371_15";
"驻马店市" "HSRVBUWVAEVVB"; "0371_8";
"周口市" "HSRBVTWVCDTSR"; "0371_10";
"商丘市" "HSVGHBXVEWSCS"; "0371_17";
"开封市" "HJGDSDXVDIWGW"; "0371_16";
"新乡市" "HHVRGAWVDJSIC"; "0371_1";
"三门峡市" "HEJTSHWUVSTUF"; "0371_13";
"濮阳市" "HIWIHSXVGATIH"; "0371_5";
"信阳市" "HUARJVXUWBFVV"; "0371_9";
"鹤壁市" "HHGDEGWVFADAE"; "0371_4";
"安阳市" "HHGJFSXVFIVEW"; "0371_3";
"焦作市" "HHAIAGXVCIHWI"; "0371_2";
"漯河市" "HRTIECWVBDVRA"; "0371_7";
// "济源市" "HFWHABXVBASED"; "0371_12";
"吉林省"
"长春市" "HTEAWWXBACCRUU"; "0431";
"吉林市" "HVCDIGWBAEBVVR"; "0431_2";
"黑龙江省"
"哈尔滨市" "HSHFEATBAHARIG"; "0451";
"齐齐哈尔市" "HEVTAHWBAFGFFH"; "0451_13";
"大庆市" "HHSATAVBAFUUUG"; "0451_14";
"五大连池市" "HGDWJSXBARSCIS"; "0451_17";
"牡丹江市" "IBTDWWXBAJTWCB"; "0451_10";
"内蒙古"
"呼和浩特市" "GTBUSAWVIRJSI"; "0471";
"山东省"
"济南市""HRJWIJXVRIHDU"; "0531";
"聊城市" "HJEITIWVIJVDI"; "0531_1";
"烟台市" "HWWCVAXWCHRJC"; "0531_10";
"威海市" "IBBTEGXWDIRTI"; "0531_11";
"青岛市" "IAJFIWXVVUDCU"; "0531_12";
"泰安市" "HSIDHUXVJWASD"; "0531_13";
"莱芜市" "HTEUJIXVRTHWC"; "0531_14";
"济宁市" "HSUTTEWVHVRAG"; "0531_16";
"荷泽市" "HRHAAGXVFWWUG"; "0531_18";
"临沂市" "HWBFHAXVRBECV"; "0531_19";
"德州市" "HIEDIJWVRSSVF"; "0531_3";
"淄博市" "HTADRGWVTEHVC"; "0531_4";
"潍坊市" "HUSWERXVUSVIC"; "0531_7";
"日照市" "IAFBVHWVTFJJS"; "0531_20";
"安徽省"
"合肥市" "ICFFGWXVDIGSD"; "0551";
芜湖市" "IETVCHWVEGSBF"; "0551_10";
"黄山市" "IHDBVWXVBUURU"; "0551_12";
"安庆市" "IEAJCRWVBDBHE"; "0551_17";
"蚌埠市" "IAUCGUWVFFCHB"; "0551_2";
"亳州市" "HTWVGSXVEFIFU"; "0551_6";
"巢湖市" "IDRCBAWVEBHRV"; "0551_8";
"池州市" "IEHTDTWVCAUIC"; "0551_19";
"滁州市" "IDDVIUWVFUDAJ"; "0551_9";
"阜阳市" "HVISJRXVCWCGG"; "0551_5";
"淮北市" "HVGJUGXVFWWCI"; "0551_4";
"六安市" "IBFEEIXVCDSWT"; "0551_7";
"马鞍山市" "IEHAGIWVFDABT"; "0551_13";
"宿州市" "HWDARCXVFUGHA"; "0551_3";
"铜陵市""IEJBTSWVCVFJF"; "0551_14";
"宣城市" "IFWFRWXVEHBGD"; "0551_18";
"淮南市" "IARRVTWVEDVTE"; "0551_1";

  回复  引用    

"浙江省"
"杭州市" "IJCFWUXVFJGCB"; "0571";
"绍兴市" "IRDHEJXVFTERW"; "0571_20";
"宁波市" "ISVUSWXVHBBAS"; "0571_3";
"湖州市""IICSSAWVGFJRI"; "0571_46";
"嘉兴市" "IJFBTUWVHDDBJ"; "0571_54";
"金华市""IRCSTJXVCWSAH"; "0571_59";
"丽水市" "ISJTWAXVCGJFI"; "0571_63";
"温州市" "IUGEIDWVCUHFD"; "0571_77";
"台州市" "IUISRIWVFAFUE"; "0571_79";
"福建省"
"福州市" "IVFIVFXUUTREW"; "0591";
"莆田市" "IVTSVRWUTGHGG"; "0591_1";
"南平市" "ISJFUBWUTVCRB"; "0591_2";
"厦门市" "IVVARRWUJJTJR"; "0591_4";
"泉州市" "IVWDVGXURWGTT"; "0591_5";
"漳州市" "IVCBJEWUIVUGC"; "0591_7";
"湖南省"
"长沙市" "IBGACWXUHGRSF"; "0731";
"张家界市" "HTDARGVUFATFG"; "0731_22";
"岳阳市" "HWTWJBXUJHAEH"; "0731_5";
"株洲市" "ICCFRSXUHCBWH"; "0731_3";
"广西省"
"南宁市" "ICHSFJVTIBCAU"; "0771";
"桂林市" "IBSHUBWTVUSVH"; "0771_6";
"江西省"
"南昌市" "IFBREJVUTJJDU"; "0791";
"贵州省"
"贵阳市" "HREGVRWTSGBFI"; "0851";
"云南省"
"昆明市" "HGIEAVXTCWBDG"; "0871";
"西藏省"
"拉萨市" "FUUDJGWSIEVAR" "0891";
"海南省"
"海口市" "IJTADTVTGUUSR" "0898";
"三亚市" "ISDHHHWTCVVAD" "0898_2";
"甘肃省"
"兰州市" "GHETURWUFFUUV" "0931";
"宁夏省"
"银川市" "GHHJSJXUTURWF" "0951";
"青海省"
"西宁市" "GDHGDTVUDCTBA" "0971";
"新疆省"
"乌鲁木齐市" "ECTABJUTIIAJH" "0991";
"澳门" "ISGEVRXTWBWWT" "853";
"香港" "ITDCREWUADIVI" "852";
"台湾" "JERSDJXUTRWJW" "886";

  回复  引用    

#25楼 2006-04-15 18:18 颓废边缘      
把MAPBAR下载到本地作自己的服务是个很不错的想法
如果能知道怎么解密坐标就好了

  回复  引用  查看    

#26楼[楼主] 2006-04-17 22:56 浪人|努力      
@颓废边缘
解密坐标我不知道说的什么意思。如果是加密过的字符转成真实坐标,那么JS里有。如果想得到坐标,应该可以根据地图窗口反算。
个人觉得最重要的是数据库,要是把他们POI的数据库拿到,那才是最重要的。哈。

  回复  引用  查看    

function MM_preloadImages() { //v3.0

var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}
请教浪人,这个是你自己写的吗,好像现在没用到啊?

  回复  引用    

#28楼[楼主] 2006-04-19 19:52 浪人|努力      
@gischina
我没有找到这一段JS,我也没有自己写。呵呵。

  回复  引用  查看    

就在SHOW.HTML 页面里的啊。
  回复  引用    

这代码是什么意思?不明白
  回复  引用    

#31楼[楼主] 2006-04-20 21:27 浪人|努力      
@gischina
o,sorry,看到了,这不是我加的.
@到处飞
我也不明白啥意思,不过好像没有用到,难道3.0版JS中用到,呵呵.

  回复  引用  查看    

这段代码我试了,页面没有调用,估计可能想用来实现预加载图片的吧。
var tmp1 = b.p('HAAVAAWTUJEGA');是通过这个函数进行解析坐标的,问题来了,它采用的那个坐标系。

  回复  引用    

#33楼[楼主] 2006-04-21 20:41 浪人|努力      
@gischina
呵呵,我也想知道这么个问题,因为我试了下WGS84的坐标系不对.
但我想也没有什么其他的坐标系了,难道要我自定义不成?
而且其中不解的一点是1度的长度定义相差那么大怎么定位?

  回复  引用  查看    

@浪人|努力

我也对E都市htpp://hz.edushi.com,对其原理和技术很感兴趣.
有兴趣的同志联系我 zhao_j_long@yahoo.com.cn

  回复  引用    

看来百度的地图更新很奇怪,不是增量更新,而是增加了一些地名点,同时又删除了一些地名点,而且输出的坐标范围和以前的相比也有偏移。
  回复  引用    

不知道大家有没有注意到这个问题
  回复  引用    

#37楼[楼主] 2006-04-26 19:31 浪人|努力      
@gischina
呵呵,注意到了,大概是昨天晚上注意到的.
百度的图片服务器好像搬到自己的服务器上了,但昨天晚上详细的图片还不能显示.
偏移我看到的应该是51ditu的,他们的详细图定位有偏移,不知道是不是他们把1度算100公里的缘故还是其他.
所以最近想写篇关于百度,MAPBAR,mapabc,51ditu比较的东西.

  回复  引用  查看    

比较了一下,服务器变了,图片数据倒是没什么变化。但是MAPBAR的服务器上的图片数据前后几天发生了变化,前后两天输出的相邻图片居然拼接不起,奇怪?
  回复  引用    

呵呵,看来大家都是喜欢刨根问底的人哈,加QQ吧,我的是470225584

  回复  引用    

有谁知道 百度 测量距离是怎么做的?主要是画线功能。
  回复  引用    

#41楼 2006-05-10 17:12 rere[未注册用户]
我想问下,avinclude.js里面的H694到底代表什么意思?那位能告知嘛?谢谢
  回复  引用    

#42楼[楼主] 2006-05-10 21:23 浪人|努力      
@rere
可能是针对的不同浏览器,大概IE和NS的对象不同。

  回复  引用  查看    

#43楼 2006-06-10 11:19 Aity      
在XPSP2+IE6中通过允许阻止的代码可以正常显示地图;
在FireFox1.5.0.3种不能正常显示。或许是我少装了插件?

  回复  引用  查看    

#44楼[楼主] 2006-06-10 12:14 浪人|努力      
@Aity
FF没有测试过

  回复  引用  查看    

@gischina
阿白,这段代码是DreamWeaver生成的,用于预先装载图片,主要用于实现两张图片的即时替换。比如网页上模仿移动到按钮上时图片被加亮状态。
另外,我也觉得是否GIS没有多么重要。坦白的说现在算法和GIS相关的很少,就算是寻径等内容也都是计算机算法领域的,GIS知识作为业务知识学习就可以了。需要的时候可以找高校合作。别以为GIS专业才能够搞得好GIS,就正如不要以为只有计算机专业的才能够编好程序一样,狭隘会妨碍自己的进步。

  回复  引用    

#46楼 2006-07-19 22:10 逛逛[未注册用户]
试了楼主提供的例子,为什么拖动图时,会重新加载全图,闪一下,而baidu的不闪。
  回复  引用    

#47楼[楼主] 2006-07-20 23:11 浪人|努力      
@逛逛
好眼力,我做完后就发现了这样的情况。
只是,我没有找到原因,呵呵。

  回复  引用  查看    

#48楼 2006-08-09 12:03 阿良1[未注册用户]
请问怎样加载一个新的地图,比如说我要加载广东东莞市的地图,请各位高手指教一下。先谢过了。
  回复  引用    


请问mapbar中的公交线路在图中显示是如何实现的?

  回复  引用    

#50楼 2006-08-29 11:57 eyu[未注册用户]
先用这个小程序下载。
W ,0, 1 。。。。。8 级地图 ,其他级别没看懂如何下。

http://files.sdlgame.com/temp/MapDown.exe

最大最小X Y 就是地图四个角的图片ID 转16进制的值。

如第四级
[Map]
Zoom=4
MinX=37
MaxX=61
MinY=9
MaxY=33

其他级别算法谁明白?

  回复  引用    

#51楼 2006-08-31 15:23 eyu[未注册用户]
上面程序以更新,可通过它下载所有级别图片测试。
  回复  引用    

#52楼 2006-09-15 16:06 wang[未注册用户]
你的程序把图片下载到那了,谢谢
  回复  引用    

#53楼 2006-09-15 16:21 wang[未注册用户]
怎么下载更多级别的呢,谢谢?
  回复  引用    

看这个说明:
http://my.sdlgame.com/content/view/2534/32.html

默认下载到当前目录,可以修改配置文件指定具体位置。

  回复  引用    

#55楼 2006-10-25 11:49 Koy      
我同事把eX市的js下载了,,发现它的地图不是和经纬度对应的,,要用于gps就惨了!呵呵
  回复  引用  查看    

#56楼 2006-12-05 17:14 kyukoi[未注册用户]
@浪人|努力
@gischina
增加的东西都在数据库里

  回复  引用    

地图的左上角的工具如何实现的?

就是放大缩小的工具!


  回复  引用    

#58楼 2007-01-25 14:26 Xejuny[未注册用户]
@浪人|努力
请问里面测距时在屏幕上画线的算法在js文件里哪里?
自己用写了一个,但是画的线没有他那个光滑,他们时如何处理的呀?

  回复  引用    

#59楼 2007-02-03 11:20 weid[未注册用户]
# re: MapBar研究(百度地图中的JS部分) 2006-02-23 15:29 cnmaps
左移和上移好像不起作用 回复 更多评论

我这里也是,左移跟上移不起作用,非常感谢搂主,这两天还在自己写地图放大缩小移动程序,头都大了,还是用现成的js比较好!

另外,怎么下js啊,百都的js看不到,就看到下面几句话
<script type="text/javascript" src="include/mbav.js"></script>
<script type="text/javascript" src="include/BConfig.js"></script>
<script type="text/javascript" src="include/bdmap.js"></script>

谁能告诉我?谢谢!

  回复  引用    

#60楼 2007-02-07 11:26 cxty[未注册用户]
谁知道他们是怎么生成图片的吗?
用的是MapX?还是其他控件?
为什么我生成的会变形呢?

  回复  引用    

@Xejuny

测距时在屏幕上画线好像使用的是VML(IE中),参见下面代码:
this.paint=function(v4gN0)
{

this.tS2=document.createElement("div");
this.tS2.unselectable="on";
this.tS2.style.zIndex=10;
this.G19=document.createElement("v:polyline");
this.G19.unselectable="on";
this.G19.strokecolor=this.color;
this.G19.strokeweight=this.K904+'pt';
this.G19.fill=false;
this.G19.filled=false;
this.R27VP=document.createElement("v:stroke");
this.R27VP.opacity=(transparencyLevel/100);
this.R27VP.joinstyle="round";
this.R27VP.endcap="round";
this.R27VP.fill="false";
this.G19.appendChild(this.R27VP);
this.tS2.appendChild(this.G19);

this.tS2.style.visibility="visible";
if(v4gN0!=null)
{
v4gN0.appendChild(this.tS2)
}
};

  回复  引用    

@Xejuny

这个例子在FireFox中画的线也不光滑,用的可能是另一种方法(可能利用“div”画线的方式)

  回复  引用    

#63楼 2007-02-10 14:34 liang [未注册用户]
求救书
我是侯村乡杨家园村的一名农村的儿子,父亲叫李连科,在06年11月30号的晚上,我父亲突然病发,被送到了五四一医院,经过一天一夜的诊断,居然没有确诊,因为病情严重,当时以乙腺炎定下后,做了手术,做了手术后才知道是肠肛阻,就是肠肛阻也没做成功导致二十天左右不见好转,吃喝不便上面喝水半腰漏水,肚子也疼痛难忍,医生也无能为力,因为再三劝说让我们转院,我们不得不转到山西医科大学第一医院,刚去为了不使父亲遭手术的折磨,一直用高额的高营药来维持,一天下来就要花去人民币4000-5000元,由于经济力量的欠缺,再因父亲的病危,总想及早地把父亲的病治好,所以就忍着心又让父亲做了第二次手术,这次满以为可以好转痊愈,结果手术还是再一次地失败,肚子还是照样疼,喝水还是漏,大夫在此也无发承认这失败的滋味,救死扶伤是他们的宗旨。家人也为了救人心切,经历了第三次生命的父亲,又要面临地再次生命的挑战--第三次手术。这次手术虽然有了好转,但对于我的父亲历尽了多次生命抗战的人来说,第一个是生命的摧残和精神的托跨,尤其更重要地是给全家在资金上多了一大笔负债,到目前为止,五四一医院和山西医科大学第一医院光医药费就花去人民币80000多元钱,医科大学第一医院的俩次手术还不算,估计就在100000元以上。这个巨大药费的开支,这对于一个在家务农,而且还要供我和二姐上大专一个弟弟上高中,就象是巨石压顶,晴天霹雳的灾难,我家母亲四处求援,亲戚帮,乡邻借基本上是该求的都求了,能帮的都帮了,我家的小三轮也卖了,粮食也卖光了,可是在就要十天半月出院的紧要关头,也是在这逼近年关的时刻,银行也封闭了,人们的钱也不好借了,真是无处求救了,因为资金的不到位,医院停止了父亲的输液,使得父亲的病情恶化。父亲一直哭着对我说;‘把我的一颗眼球挖下来卖了。换来钱治好他的病。因为他还想活下去,他还要继续挣钱维持他三个儿女的学业,父亲看到医院的好心人领下的饭菜,馒头让我和母亲吃,父亲经常大声痛哭,为了给他治病,我和母亲在那么远的医院,有时都没有钱吃饭了,有的人可能不会相信,这可确确实实是我家的真实写照我作为他的儿子在这心急如焚的时刻,怀着试试的态度来到了咱们闻喜的电视里能让我把写的着份求救书给全县的大哥、大姐、大婶、大娘门,让他们知道一下我家现在的处境,想请求有好心的爱心的,有慈善的人来挽救一下我的家,人有旦夕祸福,没个人一生中都有自己的不幸,我想,我全家就是这不幸中的一家,如果有那位愿意伸出您那慈善而带着爱的手时,或是高利贷也行,借也行,到明年民政局把我的申请大病的救济款发下来,我一丁登门拜谢,带归还。现在我也要说清楚地是现在咱们国家有专门救济款大病的款项,我现在已经把申请写了,表也填了,村里乡镇的章也盖了,民政局的手续也办了,可以打听一下有没有这回事,就是批款是按批进行的,我 的申请批款在07年的第一批中,因为这钱是暂时无发解决我的燃眉之急的,所以我在此想暂借(贷)贵人的一点爱心,赶快把父亲的病治好,现在马上过年了,可我的父亲还在山西医科医院里,我现急需20000多元,希望好心人给以赞助。根据国家的救济款的条文,所属大病一般都在20%的救济(就是你在医院花去的总医药费)我在这里以真诚而纯洁的心告诉愿意救助我家的人,只要我的救济款一批下来,我就会一豪不差的还给你,我请你们相信,我决不誓言,我只是暂借贵人的钱来渡过难关的。我相信在这个世界上,在我们这个冲满了爱的国度里,善良、和爱、一方有难,八方支援的人占多数,也相信有人会站出来救我父亲的一条命,救我的全家的,如果我家被哪位充满爱心的人救好后,我会再到电视台上为他宣传,为他扬名的。都是华夏人,手臂连着心,献上一份爱,我会重谢恩,爱使世界变美好,爱使社会暖如春! 儿子:李晓东 执笔:孙平顺 2007年2 月 联系电话:13466876040 0359-7292931

  回复  引用    

请问谁知道怎样拼接百度小地图?谢谢
  回复  引用    

#65楼 2007-03-09 12:11 小奇[未注册用户]
你的文章实在是好。牛!!!
  回复  引用    

#66楼 2007-03-09 14:27 小奇[未注册用户]
@cnmaps
我的左移和上移好像不起作用,不知怎么弄的
@浪人|努力
不知道要求某坐标怎么得到?

  回复  引用    

#67楼 2007-03-11 17:47 Kit[未注册用户]
@小奇
@cnmaps
我的左移和上移好像不起作用的解决办法

在avinclude.js里 nclick漏了个o

this.E3419+='<IMG id="ctrlw" unselectable="on" title="向西平移" onmousemove=style.cursor="hand" nclick="javascript:PerformControl(event, this,1);" style="position:absolute;left:'+(left+10)+';top:30;width=17;height=17;" src="'+strImgsvrUrl+'images/'+this.hp9h+'west.png" >';

nclick="javascript:应该改为 onclick="javascript:

  回复  引用    

#68楼 2007-03-12 14:53 小奇[未注册用户]
@Kit
真是细心!这么小的错误被你发现,谢谢!现在可以移动了

  回复  引用    

#69楼 2007-04-04 22:26 uanda[未注册用户]
怎样将此代码加入其他网页中,并切水平、垂直居中
  回复  引用    

MAPBAR用的什么GIS开发平台?怎么地图搞的这么烂啊。是GIS平台的原因还是他们人员的水平啊?
  回复  引用    

有人知道如何不加载点信息么?就是图里面的那些企业,单位
  回复  引用    

在上帝之眼有我写的一个下载拼合baidu地图程序,输出的maps最好在ozi中校一下
不过baidu的图有点乱!
同时还可下VE ,yahoo ,Google maps等7种地图
只是使用需NET2.0有点麻烦

http://bbs.godeyes.cn/Announce/Announce.asp?BoardID=104&ID=194172

  回复  引用    

#73楼 2007-05-13 21:37 xiaoao[未注册用户]
文章太好了,大家知道在mapbar怎么加入标注功能呢,avinclude.js中能把当前鼠标点击的点换算成经纬度吗?
  回复  引用    

大家讨论的不错,我有个问题想问问,mapbar POI的坐标不知能获取。他们加密后的也看不到吗?
  回复  引用    

#75楼 2007-05-25 23:06 李程[未注册用户]
@颓废边缘
mapbar的这个东西很容易解密的.我目前就已经解密了.不过解密用了点ajax技术.呵呵.大家可以访问一下www.widig.com 上海的很多数据的地图部分都是解密得到的

  回复  引用    

我想知道对于栅格图片切成小图,如果实现左右上下移动的。就是移动后如何去补充移出来的空白的?
  回复  引用    

#77楼 2007-07-18 16:39 zhizhu[未注册用户]
急需baidu 地图
  回复  引用    

#78楼 2007-07-25 15:44 guodd[未注册用户]
@乌鸦在黑夜里飞

标的点,能不能单个删除?用什么语句?

  回复  引用    

赞一个。
正在用VML做简单电子地图呢?
是不是当放大和缩小达到一定程度时候,后面的VML页面就换成新的了呢,我感觉是这样的。

  回复  引用    

#80楼 2007-08-29 17:58 清水[未注册用户]
avinclude.js里的代码是扰过码的,可读性大大的不强,有没有没扰过码的?给一个连接地址,多谢了!
  回复  引用    

@清水
请问一下:调用这个AVMaplet创建对象之后,如果在setCenter之后,在这个中心点周围画线。我有一组再次中心点周围的经纬度点,想依据该中心点画线,感觉应该调用addPolyLine函数,可调用之后出现错误,不知道是什么问题,希望能帮忙解答,测试代码如下:
lati=30.1;
lng=90.2;
maplet.addPoint('images/marker.gif',lati, lng, basinLabel,basinMsg);
maplet.setCenter(lati,lng); //设置中心位置
maplet.setZoomLevel(zoom);//设置显示级别

//此处开始画线
var latis=new Array(30.1,30.1,30.1);
var lngs=new Array(90.1,90.2,90.3);

maplet.addPolyLine(latis,lngs,,"#ff0000",0,200);
加上画线的代码后,出现javascript错误,我不知道是不是我的参数不正确造成的

  回复  引用    

各位,我们来讨论一下鹰眼图吧
  回复  引用    

请问: this.X3v=300;
this.T5$=300;
这两个参数是做什么用的?固定的参数好像!!
这个编码过的js实在看得很辛苦啊!!

  回复  引用    

#84楼 2007-11-11 12:51 HUI S[未注册用户]
--引用--------------------------------------------------
刘民1: 呵呵,对于MapBar这样的非GIS传统公司而言,什么比例尺呀、投影呀都不要强求了。我估计他们公司没有几个是真正GIS出身的。拿国外的一些代码回来重新编译然后拼命的做界面,居然也获得这样大的关注不能不说是国内GIS业的耻辱和悲哀。
--------------------------------------------------------

  回复  引用    

#85楼 2007-11-11 12:52 HUI S[未注册用户]
RYHTRIKJK;LKL;NBG
  回复  引用    

#86楼 2007-11-17 15:04 绿毛虫      
我整个没看到他的ajax的调用的代码。。
不知道他们是怎么异步传输的。

  回复  引用  查看    

哈哈,我已经将此js代码破解到90%了,可以随意删减功能,可以显示任何地点的经纬度和坐标代码(所谓的加密后的坐标代码)
垃圾的代码,看得我的头都大了555。。。

  回复  引用    

#88楼 2007-12-06 08:39 zjd[未注册用户]
好啊!但是怎么没有最新的源码共享啊!
  回复  引用    

@好去吗?

請問,我一修改avinclude.js檔案,show.html就無法顯示地圖,而且有錯誤說AVMaplet位定義?? 請問大大這是什麼原因?

就算我只加一行空白行也不行??

  回复  引用    

#90楼 2007-12-23 13:51 隐龙[未注册用户]
每天来看学习一次.
太增加知识了~

  回复  引用    

#91楼 2007-12-24 04:20 黄东[未注册用户]
长沙市和南宁市的距离是?

  回复  引用    

#92楼 2008-02-19 14:53 cdtest[未注册用户]
请问下在MapBar当中怎样得到我所点击时的坐标值
急用.希望知道的回答下.小弟在此谢过.
知道者请速加QQ:512082134或邮件.谢谢!

  回复  引用    

#93楼 2008-03-05 15:32 import[未注册用户]
谁知道Mapbar经纬度的加密算法?
  回复  引用    

#94楼 2008-06-27 15:56 zjchina[未注册用户]
就是里面的函数变量名字太乱了,都搞不清它代表着是什么意思
  回复  引用    

#95楼 2008-07-15 11:38 js风[未注册用户]
好久都没人留言了……
  回复  引用    

如何获得地图四个顶角的坐标啊?有哪位大侠能告诉我吗?
  回复  引用    

请问51地图那个放大缩小功能的过渡效果是什么原理
  回复  引用    

#98楼 2008-11-24 17:21 Geeks      
lz
知道在firefox下画图,画线,画面等操作的js吗?

  回复  引用  查看    

#99楼 2008-12-22 17:03 CuiCB[未注册用户]
首先谢谢博主把这么好的 JS 代码整理出来。我在分析 Mapbar 的实现中就跟踪到了 mapbar21.js 的最后那条 eval 语句,里面居然包含了一段 155325 长度的字符串代码,非常难懂。但这却又是实现图形显示移动、缩放的关键。

博主和一些回复者提到了 Mapbar 的图片,这里我把我的分析结果共享一下:

1. Mapbar 的所有级别(指的是缩放级)的图片都是由一张一张的小图片拼接而成,每一张图片的大小都是 300*300,这比 Google 地图(也就是MapABC)的图片稍大。

2.每一张图片文件名都有命名规则,按照这个规则进行组合就组成一幅大的图形(并且利于移动、缩放时确定需要调取的新图片文件名),例如如下:
0_6.png 1_6.png 2_6.png
0_5.png 1_5.png 2_5.png
0_4.png 1_4.png 2_4.png

3. 与 MapABC 不同,在服务器上 MapBar 的每一级图片存储于不同的文件夹。例如(),上海市政府这个地方,最大的一级的那张图片叫 3_12.png,其位于文件夹 11/228_56/;倒数第二大的图片叫 3_15.png,其位于文件夹 12/456_112/。通过多分析几个层级的图片,就能发现其规律,这样便于我们编程将所有图片获取到本地。

4. 编程获取所有图片比较容易。这里建议取 MapABC 的图片,因为其图片的命名规则相对简易,没有文件夹的算法问题;而且其图片都是 256*256,比 MapBar 要小,这样缩放起来应该会更加平滑。

5. 对于一个城市的所有图片,数量不会很大。而且,获取的速度也相当快(至少比我预想的要快的多,一个城市,快的花一个以内就可以全部下完。)。我已经将深圳市的所有可见级别(共8个级别)的图片获取到本地,图片数量一共是7万多张,大小一共才80兆。

先说这么多。我下这些图片主要也是为了实现一个类似 MapBar 的网站。谢谢各位!

  回复  引用    




发表评论

昵称: [登录] [注册]

主页:

邮箱:(仅博主可见)

评论内容:

  登录  注册

[使用Ctrl+Enter键快速提交评论]

0 321756




相关文章:

相关链接: