找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: divilis

[webOS开发] 原创地图软件 - Larry Maps [更新已移步新贴]

[复制链接]
 楼主| 发表于 2011-8-23 01:19 | 显示全部楼层
今天主要解决大家回帖所提到的建议和意见...所以下一个小版本主要是修复BUG及小功能更新.
  G; H% N4 o3 H9 A另:公交搜索需要点技巧,
/ F% S: h! a; [6 S: {  {) c, O比如:视野在某城市可以输入 A, B  ; 想搜索其它城市公交可以输入 A城市 B, A城市 C ;注意城市与地点间的空格. 目前公交搜索是很吃内存的. 貌似还有同学会卡死. 所以我会再考虑是否把显示到地图上的线临时取消, 减少因内存耗尽而假死.
2 E: b6 ~% t9 k- G% [# I6 o, `2 D+ ~# R
: P5 T4 }, ?- [

2 w4 @: B2 M2 @# C-

评分

参与人数 1威望 +10 收起 理由
寂夜清风 + 10 支持

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2011-8-23 01:20 | 显示全部楼层
内存消耗能自动清理么?

点评

目前貌似JStop和USCL(Launcher增加补丁)有内存清理, 我到时参考一下他们的内存清理方法...  发表于 2011-8-23 01:26
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-23 04:43 | 显示全部楼层
最新更新2011.8.23,下载请移步二楼.) _, Y! b! ^* \
欢迎建设性回复

8 {: c4 P# z4 ?5 K0 j- ~* M
回复 支持 反对

使用道具 举报

发表于 2011-8-23 08:53 | 显示全部楼层
继续顶,辛苦你了
回复 支持 反对

使用道具 举报

发表于 2011-8-23 09:40 | 显示全部楼层
下载使用,谢谢。
回复 支持 反对

使用道具 举报

发表于 2011-8-23 10:12 | 显示全部楼层
又更新了 不顶不行啊
回复 支持 反对

使用道具 举报

发表于 2011-8-23 10:34 | 显示全部楼层
这1.26的版本的缩放的幅度也太大了吧,感觉一次缩放1~2级就可以了,你这一次可以缩放N多级啊,还请divilis控制一下,不然不好控制啊

点评

今天更新了功能,请下载新版本看看....  发表于 2011-8-25 01:53
回复 支持 反对

使用道具 举报

发表于 2011-8-23 10:38 | 显示全部楼层
能不能把现在的搜索和@me的两个按钮改成放大和缩小,然后再左边放个@me的按钮,搜索的可以放在放大和缩小的上边,有点模仿google map的意思

点评

放大缩小的方式今天已经更新了。请下载1.2.7看看,注意看更新说明。绽放按钮感觉不应该再要了。搜索是需要的。M是需要的。以后可能还要增加其它功能的按钮呢。  发表于 2011-8-25 02:55
回复 支持 反对

使用道具 举报

发表于 2011-8-23 11:01 | 显示全部楼层
安装成功。定位很准。. @2 p- e8 i* a7 x; y
看了帖子才知道是双击移动地图。不习惯啊,还是拖动的方式更好更直观。
# G& i8 d3 w% I; ?3 i缩放很灵敏,需要小心翼翼的控制幅度尝试几次,才能将地图缩放到想要的大小。0 S, `8 V, ^( Z0 ^8 R
搜索什么的还没有尝试。在这里生活多年,活动范围有限,很少用到搜索啦。。
" R5 N4 G1 J+ D6 A. u* o搜狗地图容易出现白屏,体验稍差。# ?; J5 x; W& M- B& y/ d
另外,图标看上去很杂乱,脏乎乎的感觉。不如换个简洁点的。

点评

地图已经可以拖动了。哈哈。  发表于 2011-8-25 02:55
今天决定更新图标... 嘿嘿.. 不会""了.  发表于 2011-8-24 21:46
回复 支持 反对

使用道具 举报

发表于 2011-8-23 18:56 | 显示全部楼层
继续顶!!!辛苦了
回复 支持 反对

使用道具 举报

发表于 2011-8-23 21:23 来自手机 | 显示全部楼层
手机不能直接下载啊
回复 支持 反对

使用道具 举报

发表于 2011-8-23 21:29 | 显示全部楼层
没办法标记 起点和  要去的地点啊 我这

点评

请详细看我的更新说明。哈哈。。 比如起点是A, 终点是B,可以这样输入: A, B 也可以这样(假如你在城市C): C(空格) A, C(空格) B ... 知道了吧。看更新。  发表于 2011-8-25 02:57
回复 支持 反对

使用道具 举报

发表于 2011-8-23 21:40 | 显示全部楼层
支持一下,希望像google map一样好用
回复 支持 反对

使用道具 举报

发表于 2011-8-24 10:41 | 显示全部楼层
支持啊
回复 支持 反对

使用道具 举报

发表于 2011-8-24 16:15 | 显示全部楼层
版本1.2.6" @0 k3 f: |& c

. M4 K" L- r, K8 J8 ^GPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置+ c8 N6 m/ I  o% X9 r! Y3 M
" \( }, l  e" R, H# u0 @' l
缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
$ Y+ H8 u$ j: H6 ~& |6 Y
& |# i" ~1 S- e8 C/ G搜索功能最好参考下 五月的搜狗地图 比较直观 人性化
回复 支持 反对

使用道具 举报

发表于 2011-8-24 16:16 | 显示全部楼层
版本1.2.6
/ y9 k, @2 t) V; q' ], e3 Y+ Y% o+ c. _1 J1 _
GPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置- c; W+ L) ]9 W, G1 a9 ^

* L5 I; |$ Y# ^1 X0 g缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
7 E) d+ h; e7 ?% b. h% q7 T7 o! U
8 k4 \5 O# A% d* Y5 C! P搜索功能最好参考下 五月的搜狗地图 比较直观 人性化

点评

谢谢你的建议哈... 我喜欢独立思考. 喜欢标新立异. 你说的拖动地图,现在有了.. 帮忙试试能不能用.我PIXI屏幕有问题,不能测试. 搜索方面,我是想继续我的风格. 因为,我目前的方式仅仅是缺少了一个帮助,将来会加上的.  发表于 2011-8-25 01:57
回复 支持 反对

使用道具 举报

发表于 2011-8-24 18:24 | 显示全部楼层
divilis 发表于 2011-8-23 04:43 ) Y* s) t( R. A! e8 D2 c. |
最新更新2011.8.23,下载请移步二楼.! o, d* F: `! @2 ?
欢迎建设性回复
- |( |4 d' ~3 i
感谢楼主,支持! 几点建议:  q1 A2 j5 n4 h7 m  ~, o9 ]% h
! e1 s. z5 d- @7 N* ]% y0 Y
1. 地图缩放,建议学习下IPHONE上的Google Map,双指敲击缩小一个级别,单指双击扩大一个界别。双指合拢/扩张的话,也建议只缩放一个级别,我现在已合拢,直接变世界地图了(1,2级别)。地图缩放基本比较流畅了,做的很好。: ]6 F3 q0 o' `5 \# [+ \# |
2. 好像地图的移动还不是很流畅,且需要单指双击移动(与第一点重复),不能拖曳,比较影响用户体验:)
5 R; ]9 c) G2 ~1 ^3. 离线地图,这个可能比较难,不过BAIDU已经提供数据包下载了,不知道软件设计难度有多大...
" G: m4 [+ j$ y2 {
) P$ L6 J" y9 @3 G总体而言,楼主更新频繁,是个勤奋的好同志:) 不过这个地图是否能放到那个feeds上去,这样更新的话也能及时收到,不用天天到这里来抓最新的软件了.: e; o" I( [% ^4 {; c3 q, q

$ [+ E6 t7 f  X: @& A9 v哈哈,说了那么多,有点为难楼主了,不过真的很喜欢这个本土化软件,才写那么多:)

点评

今天更新了功能,请下载新版本看看.... 你的建议非常捧!!!  发表于 2011-8-25 01:54
回复 支持 反对

使用道具 举报

发表于 2011-8-25 00:48 来自手机 | 显示全部楼层
pixi的支持起来!
回复 支持 反对

使用道具 举报

发表于 2011-8-25 01:25 | 显示全部楼层
强烈支持
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-8-25 02:17 | 显示全部楼层
本帖最后由 divilis 于 2011-8-26 01:11 编辑
1 _5 P; C  E% Q8 j. {& r% \4 c0 [* B# L% n' A! ]7 O
拖动地图的实现方式及代码.
7 H; k4 q( {: l- o) i# y8 N8 W' ]: U( s, C8 D' Q# b2 Y; ^# S" D; b

( ~, }5 v. S; _  O4 y5 F
+ \  @$ ~7 D& a( K" {* U; C. W' f
  1. divilis@DIVILIS-GentooLinux /mnt/1T2 $ diff -Naur ./mapsbody-assistant_v1.2.6.js ./mapsbody-assistant_v1.2.7.js
    * p0 I5 O/ m. |3 J* \# U- D( K
  2. --- ./mapsbody-assistant_v1.2.6.js        2011-08-23 04:24:13.000000000 +0800
    ' D" R; B, b6 X9 c: }/ W( i
  3. +++ ./mapsbody-assistant_v1.2.7.js        2011-08-25 01:29:56.000000000 +0800, K4 ]) R" i5 b. |# q) c# n, a* R3 `* a
  4. @@ -47,7 +47,7 @@
    , g9 a  |3 ^1 g) V, ]
  5.                                                 { visable: true} ,& f  R8 y# C  I+ ?- s  b
  6.                                                 { items: [   _' M. l; G" i7 w
  7.                                                            { icon : "search" , command : 'enterKeyword'},
    - a9 e/ h7 G: K; D# e3 e3 ^5 [
  8. -                                                           { label : "Me", command : 'panTome' }8 i. M# h" H# a+ `( Z3 u7 Z
  9. +                                                           { label : "M", command : 'panTome' }; |, u: p) b0 k5 k
  10.                                                            ]}, W, R+ U8 Y3 ~
  11.                                                         ]! [! y: n  e  w& }1 h7 l
  12.                                         };
    6 C7 _  y3 p7 N9 v
  13. @@ -116,13 +116,21 @@" D/ c- q* w9 s; O
  14.                                         this.handleGestureEnd.bindAsEventListener(this)
    ; P" A$ Q, n6 k$ Q0 y, B! |
  15.                                         );, D/ q; W+ W; N; E# l$ ~

  16. ' P3 |( {. m' ~% y
  17. +                        // I want to handle the Drag event.
    3 z. p! {: c2 h+ |& B. m
  18.                         this.controller.listen(
    4 m7 H5 _. P' R/ L9 I3 ~2 x
  19. -                                        this.controller.get("infopad"),
    2 |) F% B2 W, V& n0 i
  20. -                                        Mojo.Event.tap,* `9 W! _1 S4 B1 L4 B
  21. -                                        function(event){6 Q- C- m+ s, N, L+ b3 a1 Q
  22. -                                                if (event.count == 3)
    6 T" I4 a2 `! b8 }
  23. -                                                        this.controller.get("infopad").style.display = "none";6 |2 R9 P6 f. f- X
  24. -                                                }.bindAsEventListener(this)4 J2 S6 B4 N* p! L) ~! h6 ]2 p/ T, W
  25. +                                        this.controller.document,
    ' L  O0 p" Z, S2 u) P6 t
  26. +                                        Mojo.Event.dragging,
    5 p4 a# O: V8 z8 ]! \9 P. ~- T# ^
  27. +                                        this.handleDragingMap.bindAsEventListener(this)0 |# m2 g) }  m7 n) y% O! C
  28. +                                        );" U' k8 y$ M; ~- Z% V
  29. +                        this.controller.listen(
    # q  N" u0 `* J# n7 y
  30. +                                        this.controller.document,
    , N0 w5 |8 u! G" S
  31. +                                        Mojo.Event.dragStart,) N% K% Y" g" n6 S" E  q) y3 i# r
  32. +                                        this.handleDragMapStart.bindAsEventListener(this)( \4 g3 R7 g) _
  33. +                                        );
    $ l2 w: ~) A7 H2 Z0 \+ t: ^
  34. +                        this.controller.listen(
    4 X7 P# B6 _1 x6 K' G. J
  35. +                                        this.controller.document,
    ! L5 R9 S% K! b( ~8 q) |& p0 {9 r
  36. +                                        Mojo.Event.dragEnd,8 z$ X6 Q/ E( s8 V  W0 ]
  37. +                                        this.handleDragMapEnd.bindAsEventListener(this)
    " H& b1 x& m% F1 ]1 c: @
  38.                                         );
    5 M" M) w- X6 @# d! F6 i: W

  39. " l% M0 W- x+ T8 D
  40.                         // Pan to where you tap.1 A: |6 U  L/ R2 h2 C4 T
  41. @@ -172,6 +180,9 @@
    ) p, I' ~% d2 x! G3 M# W4 C3 o
  42.                         // - GAFC -: S5 M7 X6 c+ T
  43.                         this.LAT = (25.213604 + this.offset_lat).toFixed(6); // 22.698998 -shuitian lat-: q! c0 G* x' L  f8 D- ]
  44.                         this.LON = (110.285375 + this.offset_lon).toFixed(6); // 113.961740 -shuitian lng-
    3 F9 C/ e# g. S4 `- E( O
  45. +                       
    # a1 D6 t, o# A) A4 u1 e
  46. +                        this.dragStartCentX = this.dragStartCentY = 0;7 ?$ R: H7 W( ^0 i, O2 L. m
  47. +                        this.initDragX = this.initDragY =0;# T8 z9 u- N9 r8 D
  48.                
    $ ?0 V" h- i  L5 m; z1 j
  49.                         // the cache point of your last location & zoom level- I6 A) R* G/ o# E
  50.                         this.cachePointCookie = new Mojo.Model.Cookie("cachePoint");( ~; Y. y; B# j% A
  51. @@ -656,33 +667,68 @@
    $ P; c% v1 E: H% q1 d' b
  52.                 handleGestureStart : function(evnet) {- w4 Q6 h) b/ w' d
  53.                         // Stop listen while we zoom in/out the map.8 p5 l- f) f0 J: {0 @
  54.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    ' @% O" Z8 e3 {+ B
  55. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));
    # ~$ X& a; E- b2 E$ E3 V- }1 ?
  56. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));
    - h) q2 t" q2 D1 U* V  R
  57. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));
    $ c5 i1 v" r/ \7 d! d0 y
  58.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";
    + g& V( ]" M8 X: M  x3 Q
  59.                 },7 R+ r8 h3 q5 T0 R4 N1 U7 I2 V/ X6 h
  60. * G% h3 H$ W( \2 W
  61.                 handleGestureChange : function(evnet) {+ e9 ]; Z6 s1 ^6 q
  62. -                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv*evnet.scale) + "</font>";2 j# y4 o* h" M( i# |
  63. +                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv * evnet.scale) + "</font>";0 {; Z# @4 P( A+ Z' b: `
  64.                 },
    ) K) @; r, x6 a+ X- ~
  65. 8 I( a) L4 }, E' f
  66.                 handleGestureEnd : function(evnet) {+ G* k! k( m2 s# j) z" T7 K
  67. -                        this.zoomLv = Math.round(this.zoomLv * evnet.scale);
    / y& S) H- s+ V) M$ ~3 L/ {
  68. -                        if (this.zoomLv >= 18) this.zoomLv = 18;" n: W. P. ~: x* H1 t
  69. -                        if (this.zoomLv <= 1) this.zoomLv = 1;& ^. b8 C; n8 R
  70. -                        this.map.setZoom(this.zoomLv);5 I$ X! `' _6 y6 z
  71. +                        if (event.scale != 1){3 E+ P, I) s2 q$ ?- E" E
  72. +                                // If scale has been changed, zoom to a level that you want.
    ) F, B$ a7 f! v# X
  73. +                                this.zoomLv = Math.round(this.zoomLv * evnet.scale);! U$ m- o; q! Y: L  ^
  74. +                                if (this.zoomLv >= 18) this.zoomLv = 18;
    9 @% n* U% j! R! I# A' U& i# C* K  F2 P
  75. +                                if (this.zoomLv <= 1) this.zoomLv = 1;
    ! E- N+ f: e) P) g, S* m1 j
  76. +                                if (! this.isTracking){6 V& Y  n( G) n4 v6 I" X
  77. +                                        delete this.point;
    3 X5 Y. Z0 H9 q9 Y7 w& i9 X
  78. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));
    2 Q: h: n3 y8 F9 d
  79. +                                        // Tell our global VARs the map has been changed.
    0 y( a& D: ~; k8 `7 Z6 T. V# H
  80. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);
    . }0 U. P: r8 ^( N- H' U* V1 d
  81. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);9 e7 I' R8 A1 r; i' ]8 \  C9 x
  82. +                                        this.LAT = this.point.lat;+ r% g- n  ^* u$ j
  83. +                                        this.LON = this.point.lng;
    8 z$ M3 g4 |! c& }. d0 F2 ~
  84. +                                        this.map.centerAndZoom(this.point, this.zoomLv);0 R' H! E, A* n) n4 n
  85. +                                } else {
    9 @! X& }7 O  ?* }& P- F) {
  86. +                                        this.map.setZoom(this.zoomLv);
    3 f" S+ R% g1 ^. r( H$ Y1 j
  87. +                                }
    ! T2 T, O) C. s. U# L) p
  88. +                        } else {3 `; _1 q7 s1 |
  89. +                                // Zoom out if you tap screen with tow fingers at the same time.
    - a, L( W8 G& i, Z
  90. +                                this.zoomLv -= 1;. c9 V' o4 I! b+ X- H4 V6 @
  91. +                                if (! this.isTracking){* g7 D7 W$ `3 w
  92. +                                        delete this.point;
    * m* `# @+ v8 K$ N) r! p5 `$ E
  93. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));; p8 {; v$ W. [8 Y3 }- v
  94. +                                        // Tell our global VARs the map has been changed.
    * F1 D5 M' E  \$ _# A
  95. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);
    ' p+ n9 X% J; C1 Y
  96. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);
    ) I* t, ~5 j8 S( `' L
  97. +                                        this.LAT = this.point.lat;
    , \. ~# k/ z! u; i1 E3 g$ `* n
  98. +                                        this.LON = this.point.lng;
    7 M  Y/ p/ s3 _& E: l9 f" L
  99. +                                        this.map.centerAndZoom(this.point, this.zoomLv);. V' W/ m% u3 [
  100. +                                } else {# ^3 A7 k: u/ {+ G% N% r. @
  101. +                                        this.map.setZoom(this.zoomLv);* m0 n& b' v& s, f9 O3 U
  102. +                                }+ H% K9 W  y6 u' ~
  103. +                        }* O8 T) t( r$ l( ~% r
  104.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";/ ]3 K7 u! }6 E
  105.                         setTimeout(
    . V$ G) T3 ?. _8 U2 `' b1 D
  106.                                         function(){' r1 t4 T' z$ ]2 V# p
  107.                                                 this.controller.get("cross").innerHTML= "+";
    * Y& t- Z, @4 W5 ]: D8 S% Z
  108.                                         },
    4 s! y8 [; H' u6 r6 |% k, v
  109.                                         2000);1 D+ o8 n2 ~' w1 f5 \5 T
  110. -                       
    % L( J5 R% r/ y4 c( h8 y8 G
  111.                         // Relisten when zoom in/out ends.
    ; h% U* _% q& y4 Z* ?1 I
  112.                         this.controller.listen(this.controller.document, Mojo.Event.tap, this.handleTap.bindAsEventListener(this));
    7 Q4 o8 U0 v* Z  @! N1 G  a# r7 N) j
  113. +                        this.controller.listen(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));
    # `* K9 K) K$ a& q6 H0 c) B( x. r) p
  114. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));! [, e* ]7 _# v
  115. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));
    # k2 S% v8 C8 s$ {8 L: L  W
  116.                 },
    ) i) m0 c: G  b+ v5 A. T6 g! y. T( `

  117. * r  A- m* `, f& x( C9 t
  118.                 handleTap  : function(evnet) {
    8 u) k$ H. S9 ?. R9 q
  119.                         if (event.count == 2){7 ~# |6 L* ?9 V8 Z+ s6 M# ^4 F
  120.                                 // Stop tracking, and pan to where you tap.  T- G2 ~$ H6 g! d: H3 v
  121.                                 this.stopTracking();/ w8 u; ~0 C+ t* c6 T- I
  122. +                                delete this.point;
    ) q. u, G% t6 M" n4 Z- y$ s
  123.                                 this.point = this.map.pixelToPoint(new BMap.Pixel(event.down.x, event.down.y));
    * a8 l* [3 b* U; |- ]
  124. $ N% J8 _. _# O" i* f6 H
  125.                                 // Tell our global VARs the map has been changed.
    ( [! P( {) {2 |2 t
  126. @@ -690,10 +736,8 @@
    % J6 d& z8 Q3 H$ w6 H: O
  127.                                 this.offsetY = this.offsetY + (this.point.lng - this.LON);
    ; x2 U7 N9 `4 ^" V  Z9 i
  128.                                 this.LAT = this.point.lat;
    ! p, ~! |/ B+ K4 }$ z; K- p/ D
  129.                                 this.LON = this.point.lng;3 H1 a# y7 S( ~( u! V
  130. -                                this.map.panTo(this.point);. X) N5 l5 _# L8 N  E& j  a, p& F
  131. -                                Mojo.Log.info("this.zoomLv>>>>>>>>"+this.zoomLv);1 g' X9 n: G/ l' Q
  132. -                                Mojo.Log.info("PanTo>>>>>>>>"+this.LON+","+this.LAT);
    9 Z% I* {; H8 I* f. L! ]5 |
  133. -                                Mojo.Log.info("offsetXY>>>>>>>>"+this.offsetX+","+this.offsetY);# D8 o. U# F+ B6 J! b) v& I
  134. +                                this.zoomLv +=1;: ~$ u& S2 F8 S
  135. +                                this.map.centerAndZoom(this.point, this.zoomLv);
    % i8 f0 ~" W- p) T: G( e

  136. - {% V( E" i6 Z3 Z' ~
  137.                                 // Double tap on the screen will hide the search widget./ {: O2 D" i( o, E/ ^  `
  138.                                 this.searchElement.style.display = "none";
    & ^2 o/ a4 m3 H
  139. @@ -703,7 +747,38 @@4 H- _+ Z1 c8 f  e4 a( c
  140.                                 this.controller.get("infopad").style.display = "none";
    * n7 R# u, j) b# ]- n
  141.                         }
    8 H+ Q: {1 Y. h) x9 t8 G( ?
  142.                 },
    + o2 L) m: Y  P
  143. -                $ G, z; P) w' e& l. C3 a
  144. +* n8 C! z7 g) g# s- |
  145. +                handleDragMapStart : function(event) {
    " b* Z& L& a: ^  T
  146. +                        this.getDragStartPixel(event.down.x, event.down.y);
    ( W0 s3 V( y! c) q3 u. b0 `* [
  147. +                },/ d- c. G7 `. y& a
  148. +
    ' W5 u  h6 F7 |  B
  149. +                handleDragingMap : function(event) {
    # q: w* ~  b4 H# x% w+ U
  150. +                        this.captureNewCenter(event.move.x, event.move.y);
    % {8 J& z0 M4 o6 l
  151. +                },: @0 B! c. [9 H' q, J
  152. +; I) H! p3 ^2 x9 H. k! E/ }
  153. +                handleDragMapEnd : function(event) {' E& X: I1 i$ G7 V- m+ Q
  154. +                        clearTimeout(this.delayMapPanning);
    + H# H8 i+ l# s9 d; H% i
  155. +                },& P0 H# z; J' U
  156. +# T" O" K! A0 v- f
  157. +                getDragStartPixel : function(x, y){* ?/ u, I1 T8 W8 ^" W% o, W7 u
  158. +                        this.dragStartCentX = this.map.pointToPixel(this.map.getCenter()).x;
    ) P% f0 R! p3 B
  159. +                        this.dragStartCentY = this.map.pointToPixel(this.map.getCenter()).y;6 }. U2 d5 A. [5 Y" p6 h
  160. +                        this.initDragX = x;
    ) p$ q5 d* l8 ~) l
  161. +                        this.initDragY = y;. A( S( Z  i0 G
  162. +                },) Z$ C' D6 ^$ i, E
  163. +
    . U, O$ j! K1 y
  164. +                delayMapPanning : function(){
    7 h+ O) |; k5 {  @; h" P
  165. +                        this.map.panTo(this.point);0 c2 Z' l/ \5 l9 F  a4 T
  166. +                },
    . h6 @" c% e. H. A0 [: ]* X
  167. +
    ' {" X# q8 T* u6 X% A& ]3 y
  168. +                captureNewCenter : function(x, y){/ w/ T. S0 H* k: |( n0 W
  169. +                        delete this.point;2 v; X4 d  L1 D* |
  170. +                        this.point = this.map.pixelToPoint(new BMap.Pixel(this.dragStartCentX + x - this.initDragX, this.dragStartCentY + y - this.initDragY));
    6 ~. ?/ q( V- ~& P
  171. +                        this.LAT = this.point.lat;- U1 a  p+ w5 k( C2 H5 W! b6 t
  172. +                        this.LON = this.point.lng;
    $ V4 o" K) @; f7 n0 H* @% c
  173. +                        this.delayMapPanning();9 p( G! i2 {# R; J& E
  174. +                },
    $ B( Y# t9 V7 q& v8 W, e
  175. +$ d. S! ]7 v/ W! A: G
  176.                 closeInfoWindow : function(T) {4 z" O+ }8 H! i
  177.                         // close info window in T seconds.
    " t! x* _4 O6 u1 |  ~# A
  178.                         setTimeout(this.map.closeInfoWindow(), T*1000);
    6 L' [+ d2 [1 O. g7 x
  179. @@ -726,7 +801,9 @@4 A9 I3 {9 [# T) \2 u; [2 ^+ j4 @
  180.                         this.controller.stopListening(this.controller.document, "gesturechange", this.handleGestureChange);: j9 x# _) S4 p% }% Z4 j
  181.                         this.controller.stopListening(this.controller.document, "gestureend", this.handleGestureEnd);, @# W$ P$ N* T* w
  182.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    0 H1 C7 D# Y5 m  j$ ^7 U
  183. -                        this.controller.stopListening(this.controller.get("infopad"), Mojo.Event.tap, function(event){ if (event.count == 3) this.controller.get("infopad").style.display = "none" }.bindAsEventListener(this) );6 |  ~+ s0 p1 s- K# a) ]* Q0 ~$ U* `
  184. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));
    ( ^" E; j: u% R' ~, N3 [
  185. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));
    ( h( [" @. F* c& M1 O: F* p, H& R
  186. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));! Q/ H2 w; k0 E$ ?0 d
  187.                 }
    / N* E& ~' t, y3 ?" w) X+ K
  188.         };* c- K- @9 [! B: u7 `! x! _
  189.         }());9 r5 g! V# P+ Q+ b
  190. \ No newline at end of file6 F8 x8 ^4 x8 f$ _
  191. divilis@DIVILIS-GentooLinux /mnt/1T2 $
    2 m" G; r% ]' V/ Q; R4 [
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入我们

×
回复 支持 反对

使用道具 举报

发表于 2011-8-25 09:34 | 显示全部楼层
pre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动,目前是地图向左移动了;
  I: _- [& \$ ~7 m* E2 q% l如果滑动屏幕后手指不离开屏幕则地图的移动将不会停止,远大于手指移动的距离;
$ X& A3 c0 j. ?! x: P# Z地图移动存在抖动,这个需要优化下吧- o" n, p. [7 b
滑动的时候地图上被手指点到的区域没法跟随手指运动,操控感也就变的比较差了;
# M2 U1 q- G* p8 o! `感谢又一更新,越来越好用了,对代码和算法实在不懂,也就只能提些使用感受了

点评

听说存在抖动的现象,请在屏幕上划手势来移动..手势你懂吧.就是在屏幕上用手势来指挥拖动, 暂时的.后续版本会改善的.  发表于 2011-8-26 01:48
我本来想是这样的, 因为你想看右边,一般正常情况下你会往左拉动,显然你的手现在已经挡住你看地图视线了. 所以,我弄了非大众的东西. 不过,我现在改回来, 以合大众口味. 哈哈. 地图拉动的原因现在已经查明,之后再修复.  发表于 2011-8-26 01:33
回复 支持 反对

使用道具 举报

发表于 2011-8-25 11:31 | 显示全部楼层
auttom 发表于 2011-8-25 09:34 ) o! |7 M" O' P) }  d- j6 B+ i
pre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动, ...
) V2 A6 _1 `3 a: c
操作方式与系统本身相同会更好
回复 支持 反对

使用道具 举报

发表于 2011-8-25 13:57 | 显示全部楼层
divilis 发表于 2011-8-25 02:17
; k, k# N7 [& |8 v拖动地图的实现方式及代码.

7 A& x( x7 Q& h5 h0 S# Y更新反馈:% @4 H: I: ]$ k6 A
' o, Q. c$ s( w. V- f& l. }
首先我用的是3P 1.4.5 ... 以下是1.2.7版本的试用状况。7 a6 P! i7 G8 \7 V' m6 J+ y

# C- O0 s+ D, L+ O) U1 B3 s" }2 _地图缩放:% G# _) Y: H7 L4 n$ }5 V

7 Y5 r8 n( n& l9 K1. 单指单击可以放大, 但是貌似放大到特别大,大概有3x级.0 j! N6 ]( z) W2 K/ o" Z1 h6 \1 s
2. 双指同时单击不能缩小.
  s* ]% ~7 {# L+ Q# y! Y3, 老问题, 双指合拢/扩张的话,建议只缩放一个级别,我现在一合拢,直接变世界地图了(1,2级别,缩放太快了, 很难控制缩放级别)./ w' Y. z, R; r

6 p8 P. e4 J, F8 J8 j地图校准:
) y4 q" G7 E* }% o* w: ]3 |
, o& ^( R" Q( H8 S6 z8 h* ^( v) G1. 建议楼主写个简单教程,比如那个十字架代表什么,那个红圈代表什么,怎么校准等." B& I4 a% U8 \9 M  I! L9 z
2. 可能我比较笨,掌握不到楼主的想法 :(
3 r! [. F" ?7 Z2 U  V3. 另外我总感觉校准的时候挪动地图非常的苦难,很难校准。
; V& F2 C4 i3 V! ~2 f$ W8 `$ u) W) G8 p3 D
地图拖曳:
* J) {( S8 u5 j7 d
8 _; S4 h& U% f) P% H7 m# a' ^1. 楼主响应非常快, 地图已经可以拖曳,不过好像方向和IPHONE/ANDRIO是反的,建议和他们一样,毕竟习惯的力量很大,同时也可以提升用户体验.
: N4 `% V, d1 X( F: w
% F, s5 W9 `4 m离线地图:7 s  c) T' M4 R- r

6 h& z4 y+ U/ p7 n% Q1. 楼主这个可能是众望所归, 不知难度到底多大? 现在的MAPTOOL实在是不好用,地图太大(没有用数据库), 巨量的小文件,程序响应慢 ... 等等.6 G, j3 I* E+ c0 \3 p
2, Baidu的地图包是否是封闭的数据格式? 能否像NOKIA, IPHONE, ANDRIOD把离线地图下载,然后用Larry Maps打开呢?. y7 z" e  {2 a+ F6 x/ L6 s7 A
, \7 f. i3 U7 n
我的位置:
& T7 C, b- e( W
' d  R$ }$ A$ F( H1. 目前软件是用一个十字架来表示自己的位置,个人感觉是否可以吧图标加大 + 醒目一些? 十字架不是很明显。# [! u9 q7 ~+ h$ q, [
2. 另外,我如果直接点"me"或者"m"键的时候, 十字架位置直接出现一个红圈, 那个什么意思啊? 提示正在定位吗?
0 N/ g1 b# }1 ]! R) @/ X' L3. 如果点了M或者Me的话,地图会一直跟踪用户当前的位置,这个在开车或者实时看线路的时候比较有用. 但在地图浏览的时候,就比较麻烦,所以这个Me,建议做成开关. 按一下开,自动跟踪,在按一下就取消跟踪,用户可以自由拖动地图./ R" D1 z. V3 o' k0 A8 w. E; G2 M
4. 不知能否计算误差范围, 类似Google Map一样,如果是基站定位的话,可以出现一个圈,以告知目前定位的精度.
5 g! |9 e7 k9 f6 V0 {. X: h) C

点评

听说存在抖动的现象,请大家在屏幕上划手势来移动..手势你懂吧.就是在屏幕上用手势来指挥拖动, 暂时的.后续版本会改善的.  发表于 2011-8-26 01:50
稍候我慢慢研究你的回复 .哈哈...真详细.有心了.  发表于 2011-8-26 01:35
回复 支持 反对

使用道具 举报

发表于 2011-8-25 14:33 | 显示全部楼层
本帖最后由 dgpeterpan 于 2011-8-25 14:37 编辑 5 G. H( K3 ]9 y
0 ^$ O0 G7 {# r" `$ T" k
支持divilis!!!
回复 支持 反对

使用道具 举报

发表于 2011-8-25 15:47 | 显示全部楼层
楼主放一个捐助账号吧.看大家资助一下..尽量把这小软件搞得好用一些

点评

WOW, 此建议本身就给了此小作品极大的肯定. 目前还没有这方面的打算. 非常感谢大家的精神支持. 显然生活是物质的.  发表于 2011-8-26 01:08
回复 支持 反对

使用道具 举报

发表于 2011-8-25 16:59 | 显示全部楼层
寂夜清风 发表于 2011-8-25 15:47
) _  y2 j4 ]. }) R6 d; P  {楼主放一个捐助账号吧.看大家资助一下..尽量把这小软件搞得好用一些

' H$ A* z. [2 b& N+ I/ `& B2 y! ^% q我也支持,毕竟是辛苦所得

点评

非常感谢大家的精神支持. WOW, 你也很有激情...  发表于 2011-8-26 01:09
回复 支持 反对

使用道具 举报

发表于 2011-8-26 00:31 | 显示全部楼层
支持了。。。
回复 支持 反对

使用道具 举报

发表于 2011-8-26 00:53 | 显示全部楼层
为何我的位置永远在桂林的某地。。

点评

应该是GPS应该没有打开. 或者定位服务没有设置对. 再或者是你所处的地方没GPS定位信号.. 室外比较好.  发表于 2011-8-26 01:36
回复 支持 反对

使用道具 举报

发表于 2011-8-26 11:43 | 显示全部楼层
非常 的赞一个 ,试用了下,觉得不错,速度也还可以
回复 支持 反对

使用道具 举报

发表于 2011-8-26 13:29 | 显示全部楼层
南京 坐标修正 offset_lon:0.011621  offset_lat:0.002805  还是比较准的 偏差不大 加油啊!!希望可以用离线地图包

点评

很捧~~  发表于 2011-8-27 22:46
回复 支持 反对

使用道具 举报

发表于 2011-8-26 15:11 | 显示全部楼层
这个必须要先支持一下啦!
回复 支持 反对

使用道具 举报

发表于 2011-8-26 17:35 | 显示全部楼层
使用状况 1.2.7 (新版) + 3p% X; X8 T9 C, Q% K; W/ j" B
嘿嘿  因为同时在使用纠偏补丁,所以我是直接在LARRY MAPS里面加偏移量的。不过具体步骤该怎么操作呢?还是不明白啊。
# o/ @2 x! N( ]- @) t: q" M$ y1,打开地图,屏幕自动定位到我的位置(是偏移的位置)。
- k7 H1 c; Z" w4 L2,出现小小的提示 - 定位功能已经启动- B& ]3 [7 _$ Z& |; T, Z% J
3,点击Larry Maps标题栏,选择调正偏差 (对了,这个时候上下左右的四个矩形是干啥的?)
( d8 f3 E9 t& K- C! S4,把地图中心移到自己实际所在位,点击“m“,出现红点和”十字架“重合,然后停止调整。' \' S! b$ _- t
5,地图中心又回到了原来便宜的位置 (奇怪啊?)
! v7 ^( S1 X' t6,重启地图,感觉一切都没变。

点评

今天打算另开一贴.出个1.2.8版...还包括一个完整的帮助界面...也许你的这些问题都有答案...  发表于 2011-8-27 22:46
回复 支持 反对

使用道具 举报

发表于 2011-8-26 18:53 | 显示全部楼层
我每次来看,你每次都刚好更新
回复 支持 反对

使用道具 举报

发表于 2011-8-26 19:17 | 显示全部楼层
牛牛!!!
回复 支持 反对

使用道具 举报

发表于 2011-8-27 12:24 | 显示全部楼层
顶顶~~~~坐等更新
回复 支持 反对

使用道具 举报

发表于 2011-8-27 17:14 | 显示全部楼层
原创支持啊.
回复 支持 反对

使用道具 举报

发表于 2011-8-27 18:06 | 显示全部楼层
老大 今天我用地图我在西安 把握定到了桂林了  奇怪,到学校用WIFI就定位正确了

点评

嘿嘿. 兄弟,桂林是地图默认打开的地理位置...你需要等候几分钟,这样GPS才真正开始定位.  发表于 2011-9-8 11:16
回复 支持 反对

使用道具 举报

发表于 2011-9-27 10:25 | 显示全部楼层
向高手致敬!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

QQ|Archiver|手机版|小黑屋|吹友吧 ( 京ICP备05078561号 )

GMT+8, 2025-2-21 03:23 , Processed in 0.392529 second(s), 15 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表