找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: divilis

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

[复制链接]
 楼主| 发表于 2011-8-23 01:19 | 显示全部楼层
今天主要解决大家回帖所提到的建议和意见...所以下一个小版本主要是修复BUG及小功能更新./ s; `& T9 C& R2 n
另:公交搜索需要点技巧, . w" E; [6 s2 e  F$ G% }/ E
比如:视野在某城市可以输入 A, B  ; 想搜索其它城市公交可以输入 A城市 B, A城市 C ;注意城市与地点间的空格. 目前公交搜索是很吃内存的. 貌似还有同学会卡死. 所以我会再考虑是否把显示到地图上的线临时取消, 减少因内存耗尽而假死.9 D6 y" l5 u# Q$ M4 \5 ~6 x

" P& L- x0 O! A* W$ s6 O* c: i; z
6 \* i- z8 t- j$ ]% J
- S( I/ S4 `% F/ }" `0 @' B-

评分

参与人数 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& j1 O1 r/ u' p6 z6 K欢迎建设性回复
% t3 S4 F* O/ h* Y0 X
回复 支持 反对

使用道具 举报

发表于 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 | 显示全部楼层
安装成功。定位很准。! G" i4 m2 z- ?
看了帖子才知道是双击移动地图。不习惯啊,还是拖动的方式更好更直观。% R/ h4 P( b+ c9 P
缩放很灵敏,需要小心翼翼的控制幅度尝试几次,才能将地图缩放到想要的大小。
9 @- {6 Q0 |5 {1 m0 O, m/ y搜索什么的还没有尝试。在这里生活多年,活动范围有限,很少用到搜索啦。。
5 x" u3 Y: l! T( X$ d搜狗地图容易出现白屏,体验稍差。
$ S' J$ R; e7 I/ s  T% }& A% v另外,图标看上去很杂乱,脏乎乎的感觉。不如换个简洁点的。

点评

地图已经可以拖动了。哈哈。  发表于 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.64 ^* d6 i7 T. O* k! o2 v

% G5 B+ ?$ z2 a% _: }3 yGPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置5 |) j4 C) ~+ C, N2 Q

8 S$ E0 N/ w* y! H0 Y1 i4 l# s& H缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
/ O! q# I& ]8 U1 k' n0 _; }4 N3 `; O# R
搜索功能最好参考下 五月的搜狗地图 比较直观 人性化
回复 支持 反对

使用道具 举报

发表于 2011-8-24 16:16 | 显示全部楼层
版本1.2.6
3 g8 U' c5 ~- a4 O) \' A4 Q; z0 r) p( Q
GPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置; q: C( _) w5 F! V  M

5 _' [4 o: N, L2 n9 d7 G缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
' g9 X  t; m; u7 c! w' l
6 R# I( z0 g' U搜索功能最好参考下 五月的搜狗地图 比较直观 人性化

点评

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

使用道具 举报

发表于 2011-8-24 18:24 | 显示全部楼层
divilis 发表于 2011-8-23 04:43
& q6 e" B9 B0 C/ K) ?: ]最新更新2011.8.23,下载请移步二楼.6 ^$ d: [! z; @% p9 H" u& d/ a1 Q
欢迎建设性回复
  f5 C. f  |, o0 W- O- x
感谢楼主,支持! 几点建议:; Y6 H5 |( y5 b* v9 t5 \% }

2 ~; s9 K9 q3 H9 v1. 地图缩放,建议学习下IPHONE上的Google Map,双指敲击缩小一个级别,单指双击扩大一个界别。双指合拢/扩张的话,也建议只缩放一个级别,我现在已合拢,直接变世界地图了(1,2级别)。地图缩放基本比较流畅了,做的很好。
; s3 \+ y1 I* b( k2. 好像地图的移动还不是很流畅,且需要单指双击移动(与第一点重复),不能拖曳,比较影响用户体验:)6 z4 P: Z, @- \, h
3. 离线地图,这个可能比较难,不过BAIDU已经提供数据包下载了,不知道软件设计难度有多大...
: }" g: Q3 C1 d% y$ }8 w. k" k+ A( W/ E
总体而言,楼主更新频繁,是个勤奋的好同志:) 不过这个地图是否能放到那个feeds上去,这样更新的话也能及时收到,不用天天到这里来抓最新的软件了.
  R! g0 h3 m" `3 |3 Q: D2 {6 n5 o- \5 E* E: g
哈哈,说了那么多,有点为难楼主了,不过真的很喜欢这个本土化软件,才写那么多:)

点评

今天更新了功能,请下载新版本看看.... 你的建议非常捧!!!  发表于 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 H, q7 z. \! {
; J1 B$ d7 B( Z% }, X& x, a0 T; C拖动地图的实现方式及代码.
# d0 }7 b" v% l2 d  C" r5 Q( P
6 I" w0 T$ {' I/ H; N
5 t. |% B& ?! @1 a7 ]% b, G2 p2 W/ J9 f  O6 F
  1. divilis@DIVILIS-GentooLinux /mnt/1T2 $ diff -Naur ./mapsbody-assistant_v1.2.6.js ./mapsbody-assistant_v1.2.7.js 8 P  x( `4 y2 ]: G
  2. --- ./mapsbody-assistant_v1.2.6.js        2011-08-23 04:24:13.000000000 +08006 b/ ]! Y/ L4 L+ M
  3. +++ ./mapsbody-assistant_v1.2.7.js        2011-08-25 01:29:56.000000000 +0800# @+ y0 F$ {- B
  4. @@ -47,7 +47,7 @@
    & ?4 t6 [  g7 T7 p
  5.                                                 { visable: true} ,# \. p$ k9 r  V4 H
  6.                                                 { items: [ 6 y: R6 Z% M# I) J2 k4 q* a
  7.                                                            { icon : "search" , command : 'enterKeyword'},/ f/ Q! {5 h; Z9 L( L9 E
  8. -                                                           { label : "Me", command : 'panTome' }
    , A+ ?( |" _% d3 x6 {4 {  ~6 W& z
  9. +                                                           { label : "M", command : 'panTome' }
    , a- P1 e" y0 U' t) v5 Z: }
  10.                                                            ]}
    0 u' J0 X3 H5 O8 {6 _# P
  11.                                                         ]
    2 [9 l1 z. \' ?6 l6 [
  12.                                         };
    7 U( Y% [; d6 L2 S. n) Q$ N
  13. @@ -116,13 +116,21 @@/ R# v* j+ f8 V$ L/ @$ T
  14.                                         this.handleGestureEnd.bindAsEventListener(this)
    & u" Q- D+ ^5 ?  x
  15.                                         );
    4 ]( k2 X) I& W" f# v$ p

  16. 4 @% [: [; ?) z! ?7 g
  17. +                        // I want to handle the Drag event.0 F3 A$ M* J& e" s% _1 y0 C! a) q
  18.                         this.controller.listen(
    3 N. E% M# b/ Q5 d
  19. -                                        this.controller.get("infopad"),; p; `5 I/ _, }
  20. -                                        Mojo.Event.tap,
    : f2 S5 E( r  X/ d6 l) J* {
  21. -                                        function(event){
    $ P6 X# U0 B- D& S1 W8 _8 B" Z
  22. -                                                if (event.count == 3)
    + Q7 k5 q- T& r4 d
  23. -                                                        this.controller.get("infopad").style.display = "none";
    ; q/ D. I6 r/ A1 d
  24. -                                                }.bindAsEventListener(this)
    8 U5 O& J/ R% |) U) C
  25. +                                        this.controller.document,2 n9 ^4 M" o5 u& ]9 C( y1 j
  26. +                                        Mojo.Event.dragging,3 h# {  u3 }$ a' D
  27. +                                        this.handleDragingMap.bindAsEventListener(this)" d5 ~& k8 ^! v& I
  28. +                                        );
    0 A+ e# |! P+ m  w" f, ]# g
  29. +                        this.controller.listen(* V% w5 r$ ?; w$ L7 i: k
  30. +                                        this.controller.document,' a3 G' n& y* h: m& g! X* o/ e
  31. +                                        Mojo.Event.dragStart,
    1 y5 N7 ]: g2 y; L
  32. +                                        this.handleDragMapStart.bindAsEventListener(this)
    0 X, ~& P/ F6 y" m3 [/ W
  33. +                                        );
    7 h6 f2 C* z- f+ [3 b
  34. +                        this.controller.listen(8 [  \0 ^; F- c0 c! p9 j& D
  35. +                                        this.controller.document,; D( n+ S- Y) |4 {& L' p( ]
  36. +                                        Mojo.Event.dragEnd,
    7 M! ~4 U: Z$ [# W1 j" i
  37. +                                        this.handleDragMapEnd.bindAsEventListener(this)
    . T# g9 H$ X: @' `3 B
  38.                                         );
    & }6 W, P1 G8 x
  39. 3 t, }: w* o* h. C5 J/ x' X+ M
  40.                         // Pan to where you tap.
    0 H6 E  v4 @7 c8 M0 ~& @# w8 o
  41. @@ -172,6 +180,9 @@$ q5 M# [/ D0 {$ p$ q5 c5 ]; ?
  42.                         // - GAFC -% j$ r2 ~# D6 ^) Y) o
  43.                         this.LAT = (25.213604 + this.offset_lat).toFixed(6); // 22.698998 -shuitian lat-
    ) S2 x" j. R( Z- b  _0 }/ e: W
  44.                         this.LON = (110.285375 + this.offset_lon).toFixed(6); // 113.961740 -shuitian lng-
    ' M7 A& J! ^6 Q7 t0 G, s, j
  45. +                        , x" b9 G- m# A+ c" o
  46. +                        this.dragStartCentX = this.dragStartCentY = 0;# a, q+ A0 d+ I- p
  47. +                        this.initDragX = this.initDragY =0;
    % m2 N* X2 H" w& U) I
  48.                 # X+ i+ Z. ~/ j5 Z0 f
  49.                         // the cache point of your last location & zoom level
    $ g. W* t6 n9 a" |0 b. w, L
  50.                         this.cachePointCookie = new Mojo.Model.Cookie("cachePoint");; ~3 K1 b7 z* g+ A: M% b
  51. @@ -656,33 +667,68 @@
    - w+ T) g" }5 _' [% r
  52.                 handleGestureStart : function(evnet) {
    % U: h' E# M4 t8 Y( b0 A5 _, e: @
  53.                         // Stop listen while we zoom in/out the map.6 |1 i  n' j  Q# `. D
  54.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    9 ^) ]: {3 D( d6 B2 e
  55. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));3 C" L; {# g! G- M" w2 R+ c
  56. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));  Z3 Z. B" f9 }
  57. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));# [% _" c  ^; p( n0 x8 Y
  58.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";$ N3 \' w/ u, X; N; W4 V' }9 y
  59.                 },
    6 V  J( D9 v, G& q" K+ ]+ [) q
  60. * K; a7 a- V$ K" F0 Z
  61.                 handleGestureChange : function(evnet) {5 ^6 v/ {: r# V4 U
  62. -                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv*evnet.scale) + "</font>";% z( m+ x5 ~/ M( z$ r
  63. +                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv * evnet.scale) + "</font>";
    ) |( Q1 [( j0 D' B) n, l
  64.                 },% J: {) H: @  n# Y, F) l
  65. . k4 Q+ M, L7 A. M
  66.                 handleGestureEnd : function(evnet) {
    $ i. U$ f' z4 n; X8 x: G
  67. -                        this.zoomLv = Math.round(this.zoomLv * evnet.scale);7 Q7 z& G& S, Y8 v+ n: R/ o
  68. -                        if (this.zoomLv >= 18) this.zoomLv = 18;* l0 e( ~3 `4 O/ g# H- ?" }2 Z) x3 h) V
  69. -                        if (this.zoomLv <= 1) this.zoomLv = 1;4 F; S; I3 N9 k# r- W
  70. -                        this.map.setZoom(this.zoomLv);/ |7 C5 H/ s& L) A8 ?) D. y, O
  71. +                        if (event.scale != 1){
    ( C3 {, X- Q1 L& ]/ _( _4 b
  72. +                                // If scale has been changed, zoom to a level that you want.
    , m7 @' E' f* v$ Y
  73. +                                this.zoomLv = Math.round(this.zoomLv * evnet.scale);
    + v3 @4 j$ t" p7 y1 ]) W+ C
  74. +                                if (this.zoomLv >= 18) this.zoomLv = 18;; S2 S4 \: f" m8 z4 b3 F
  75. +                                if (this.zoomLv <= 1) this.zoomLv = 1;2 m: @! |' [  Y3 T6 H: R6 O
  76. +                                if (! this.isTracking){
      {( d2 N+ D! I8 M+ R
  77. +                                        delete this.point;/ v. N% k. X! r; w1 A3 j+ J
  78. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));0 E4 w  ?8 @) I, v; k8 c4 H
  79. +                                        // Tell our global VARs the map has been changed.
    0 ?0 w! C# k0 B4 o  c
  80. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);) f. M: X( d$ \
  81. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);7 ?) x0 W% T3 x' C3 l& m; z
  82. +                                        this.LAT = this.point.lat;# s9 s( S6 k, a) x. Q
  83. +                                        this.LON = this.point.lng;
    & M1 A& B8 X/ p; R4 p) y
  84. +                                        this.map.centerAndZoom(this.point, this.zoomLv);  y; ~% ?  x7 S* o8 ?1 ^
  85. +                                } else {& b' t  L) c/ O2 K6 `
  86. +                                        this.map.setZoom(this.zoomLv);7 r% A/ H3 M* z$ U' ?2 b! y: k
  87. +                                }
    $ V- O1 }/ r0 }  _
  88. +                        } else {
    ( n: s% i+ ?# s' _
  89. +                                // Zoom out if you tap screen with tow fingers at the same time.( i7 f2 M7 {0 K7 Q% O( c
  90. +                                this.zoomLv -= 1;
    + z: q* g& n; g: J8 h- m5 k
  91. +                                if (! this.isTracking){
    ' s' e& L. p& S6 z' }/ E
  92. +                                        delete this.point;
    7 w# N( k# _" j& B
  93. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));4 r- S1 f5 w( O. ^/ N, w+ U8 P3 ~
  94. +                                        // Tell our global VARs the map has been changed.  t- v0 j8 f& s6 t- _
  95. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);
    ! W* u/ w+ X0 z! C/ E1 x, l
  96. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);& R" c9 V: W. s9 ^6 G6 P: E; B
  97. +                                        this.LAT = this.point.lat;2 B+ b4 g7 \) b9 Z1 v
  98. +                                        this.LON = this.point.lng;
    % f) R. t# j- e, R$ P- t1 k6 t
  99. +                                        this.map.centerAndZoom(this.point, this.zoomLv);
    0 k9 O" z1 B1 ]7 c7 n7 H; _+ J! o
  100. +                                } else {
    4 V/ i4 z' O: ^# J
  101. +                                        this.map.setZoom(this.zoomLv);8 q: j+ ^1 Z9 B4 @4 m% G
  102. +                                }( m8 N% T: r& J- ~
  103. +                        }
    & F3 E$ X& C) h/ n9 V' ?
  104.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";2 p: v# J" l: U( v& C# O
  105.                         setTimeout(
    % A" i3 {2 M. L0 w0 X$ c; ?! H& E
  106.                                         function(){  u, ~  H# I7 c7 W% c% A
  107.                                                 this.controller.get("cross").innerHTML= "+";& N9 w" G9 J/ B- {1 r) u
  108.                                         },0 Y8 j! U, ~- v! S9 W1 X
  109.                                         2000);* i- L7 ~+ l& d: N8 ^
  110. -                       
    & R; S( O1 ?! ~$ g
  111.                         // Relisten when zoom in/out ends.. ~% x' x5 U7 d
  112.                         this.controller.listen(this.controller.document, Mojo.Event.tap, this.handleTap.bindAsEventListener(this));7 T  i& b4 z7 x" X8 i$ P
  113. +                        this.controller.listen(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));3 O# p& Z9 J/ {5 w
  114. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));" f& E5 o) H- y) \- F+ `
  115. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));9 e2 [2 _. I: v
  116.                 },( @. q' E3 w7 j* L9 }8 r
  117. " h7 I# E+ F* Z# N" a: C( `. t& `
  118.                 handleTap  : function(evnet) {! c. Q* r% ^! f: u# X: s7 m+ |. E
  119.                         if (event.count == 2){
    3 K( T" o- O& i
  120.                                 // Stop tracking, and pan to where you tap.: W2 G8 E6 B9 c7 M( h
  121.                                 this.stopTracking();
    $ r6 r: r( w+ y# ?3 i* p; S$ t2 L- ^
  122. +                                delete this.point;
    ; {( M$ g& j+ C4 d, \; m
  123.                                 this.point = this.map.pixelToPoint(new BMap.Pixel(event.down.x, event.down.y));
    1 b( t- h" H& R# G

  124. 6 ^" _# U# J7 \. E5 {
  125.                                 // Tell our global VARs the map has been changed.3 B9 L5 O; M  I: ^
  126. @@ -690,10 +736,8 @@& c1 d7 W/ q. a8 m
  127.                                 this.offsetY = this.offsetY + (this.point.lng - this.LON);3 F& O7 _5 n5 e( q6 l+ A
  128.                                 this.LAT = this.point.lat;
    7 F( H! R5 R' q% S9 W8 D& z! A9 p
  129.                                 this.LON = this.point.lng;+ O" u- e  B2 f, w! H! G# f# D
  130. -                                this.map.panTo(this.point);
    9 y$ U; X# H! f" f$ l
  131. -                                Mojo.Log.info("this.zoomLv>>>>>>>>"+this.zoomLv);
    ! G3 H2 _0 f4 |. v9 D  C/ C
  132. -                                Mojo.Log.info("PanTo>>>>>>>>"+this.LON+","+this.LAT);6 x: ~8 T! X' ?
  133. -                                Mojo.Log.info("offsetXY>>>>>>>>"+this.offsetX+","+this.offsetY);" U+ o" r5 E0 g$ m, S& B+ Z
  134. +                                this.zoomLv +=1;, @# T1 ]" q6 K8 m0 F
  135. +                                this.map.centerAndZoom(this.point, this.zoomLv);: c9 T+ k4 s. T" D! `4 ^

  136. * y, p8 ?, N8 k
  137.                                 // Double tap on the screen will hide the search widget.3 n3 w) m- ^% ?7 _5 e- i; \
  138.                                 this.searchElement.style.display = "none";
    7 G  C. {3 r& r3 a: l+ ~' U
  139. @@ -703,7 +747,38 @@+ T+ k( ^. `! t/ o. t7 T/ n: f
  140.                                 this.controller.get("infopad").style.display = "none";
    + v  l( l; B& Y- q/ _5 ?7 u/ g
  141.                         }
    . l6 n6 z1 U/ W( l" k
  142.                 },
    . w8 t) g# E4 C4 R5 Q5 @4 k/ `' A
  143. -               
    / q) ^2 b# B' S; i
  144. +
    ; \8 a  p/ N. M, V
  145. +                handleDragMapStart : function(event) {
    ) \2 o: e# {2 ]& ~* V, E7 O
  146. +                        this.getDragStartPixel(event.down.x, event.down.y);  V# t1 {5 O; H7 |, c( @/ F+ g0 w
  147. +                },- y+ y% h5 A; Q* O
  148. +
    & k3 I% p. U9 q/ M
  149. +                handleDragingMap : function(event) {! {; B0 ?5 B8 ?- ]
  150. +                        this.captureNewCenter(event.move.x, event.move.y);; [8 y) M1 v0 @3 ^2 q1 b; G5 c0 q
  151. +                },
    # Z8 m+ ~- o$ T' {  C* n" s4 a" n8 p
  152. +
    1 C; i% f: r. T$ o
  153. +                handleDragMapEnd : function(event) {( d" m) T: S+ [6 G$ l
  154. +                        clearTimeout(this.delayMapPanning);: d% b& s% F) P5 \' O2 ^
  155. +                },# M5 ^: C8 @( N! ?9 I
  156. +
    0 ]# c! \! v. B: u
  157. +                getDragStartPixel : function(x, y){
    8 W5 `! J/ q' h( a
  158. +                        this.dragStartCentX = this.map.pointToPixel(this.map.getCenter()).x;
    2 D& l0 ]. Z$ L6 T, p# i1 H
  159. +                        this.dragStartCentY = this.map.pointToPixel(this.map.getCenter()).y;
    ( W" ]+ }: [/ y) A) h- B5 {- @
  160. +                        this.initDragX = x;. H$ G, G! n8 [+ p
  161. +                        this.initDragY = y;2 j% l! S4 F, \2 A: f9 |$ n% |# A
  162. +                },6 m9 `( J4 l! G3 L5 [- `! G
  163. +
    ) N; d6 y6 L7 C5 H2 b# }4 W
  164. +                delayMapPanning : function(){% n9 k, v& R# p, Y
  165. +                        this.map.panTo(this.point);* d! J; S' M6 \' f) b; ]
  166. +                }," F% l, @" @: e- W
  167. +
    7 }, a/ N# K2 \8 P( m9 ^
  168. +                captureNewCenter : function(x, y){
    / A: `6 @  i% q/ F+ @
  169. +                        delete this.point;
    $ M/ r( a# A- }  @) o
  170. +                        this.point = this.map.pixelToPoint(new BMap.Pixel(this.dragStartCentX + x - this.initDragX, this.dragStartCentY + y - this.initDragY));) j) X% \5 q5 Q' a2 o: D
  171. +                        this.LAT = this.point.lat;1 U* Z* ]2 D7 h- O
  172. +                        this.LON = this.point.lng;
      [8 s6 p- C% X+ e# t' {  F
  173. +                        this.delayMapPanning();
    8 \$ S7 ~  E: q+ [) {; [) B
  174. +                },
    . ^0 Y6 g' [2 w9 g. K7 k( _7 B
  175. +
    7 F# J# N+ W4 @1 B5 o
  176.                 closeInfoWindow : function(T) {' b. |& ]1 C0 u; k! S
  177.                         // close info window in T seconds.& a. ~) u* _: O$ d- [# o7 f/ ]8 K
  178.                         setTimeout(this.map.closeInfoWindow(), T*1000);4 w0 c0 d( n  j# W9 n1 I0 X/ x* R2 ~
  179. @@ -726,7 +801,9 @@
    % |& N. r6 L  Y& X. N
  180.                         this.controller.stopListening(this.controller.document, "gesturechange", this.handleGestureChange);9 l" b* ], H9 Q7 b, I  Z0 H
  181.                         this.controller.stopListening(this.controller.document, "gestureend", this.handleGestureEnd);
    / r5 @% c$ h' m% N0 O$ a* d1 W
  182.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);; Z$ ]) j" ?* R  L
  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) );8 S, v5 ?+ ?7 K" U
  184. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));
    % h" E, V6 _! F% f
  185. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));
    * {  h) a6 C$ [+ l+ ], y
  186. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));! V4 r$ k/ q4 u' t% g# c* U
  187.                 }
    % f5 `/ Q# b" {' g. I5 x( x$ h
  188.         };
    / h9 G0 ~5 r" h- r3 I' ^1 I& l
  189.         }());
    8 l* P2 }$ X; B. A5 b; E% W, r
  190. \ No newline at end of file
    + ^* b! L6 w  `6 V  d# @4 g
  191. divilis@DIVILIS-GentooLinux /mnt/1T2 $ - `5 B0 W; f2 F! x* C
复制代码

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2011-8-25 09:34 | 显示全部楼层
pre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动,目前是地图向左移动了;) s% W9 p- Y/ H) A7 j/ c
如果滑动屏幕后手指不离开屏幕则地图的移动将不会停止,远大于手指移动的距离;7 k# O9 X4 D9 l  W1 |: L8 E
地图移动存在抖动,这个需要优化下吧; i) l4 D" O4 \4 v" H% s1 v
滑动的时候地图上被手指点到的区域没法跟随手指运动,操控感也就变的比较差了;
. F5 ?5 G- o: O' `& n  W感谢又一更新,越来越好用了,对代码和算法实在不懂,也就只能提些使用感受了

点评

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

使用道具 举报

发表于 2011-8-25 11:31 | 显示全部楼层
auttom 发表于 2011-8-25 09:34
3 a; ^: {7 V& F  S5 f) cpre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动, ...

9 D: [% O- S" W, H操作方式与系统本身相同会更好
回复 支持 反对

使用道具 举报

发表于 2011-8-25 13:57 | 显示全部楼层
divilis 发表于 2011-8-25 02:17
! v) F" A0 m; a3 a% @/ }% R' C2 g拖动地图的实现方式及代码.

$ u- Z8 f& L4 W2 s. J* W更新反馈:7 `9 I* w& {( y6 \9 f; W: {
: O& S* t% i) ?2 t& l8 w) J
首先我用的是3P 1.4.5 ... 以下是1.2.7版本的试用状况。
, ^& J  K2 ]2 ~) y; g8 }6 j& I; R% {/ [" _6 r
地图缩放:$ S$ |/ C3 z4 v  u4 ^
! ?" p  X+ E& R! g  R! l
1. 单指单击可以放大, 但是貌似放大到特别大,大概有3x级.
$ K* c8 k6 ]8 g8 @' O, W2. 双指同时单击不能缩小.5 {+ L1 J7 K. j; \! l
3, 老问题, 双指合拢/扩张的话,建议只缩放一个级别,我现在一合拢,直接变世界地图了(1,2级别,缩放太快了, 很难控制缩放级别).5 B; M* b8 ?0 j' z$ j; |1 m: s

: w$ R$ K# Z, W, Y地图校准:3 Z: D# v) E0 g; W/ r( k; |" b& u

4 S/ G% X7 @' k' I6 s1 }. D1. 建议楼主写个简单教程,比如那个十字架代表什么,那个红圈代表什么,怎么校准等.: L, M) [+ e( T; l6 G& V  _
2. 可能我比较笨,掌握不到楼主的想法 :(1 ^) `; Z. q/ d" B
3. 另外我总感觉校准的时候挪动地图非常的苦难,很难校准。
3 c* y& B' [4 \1 N3 a2 ^4 B0 f% k4 _: e% m) a8 ]
地图拖曳:8 f2 j: y2 p- S6 `+ }" V7 W
) n. @# X. F6 s7 ?* A
1. 楼主响应非常快, 地图已经可以拖曳,不过好像方向和IPHONE/ANDRIO是反的,建议和他们一样,毕竟习惯的力量很大,同时也可以提升用户体验.
( y4 {( S; I9 ]7 j* l' T
$ J* N8 p% U1 H( f离线地图:
. A. j: E" r9 r, i2 m5 g7 r( @* N9 v5 C' o% Y7 ?, p
1. 楼主这个可能是众望所归, 不知难度到底多大? 现在的MAPTOOL实在是不好用,地图太大(没有用数据库), 巨量的小文件,程序响应慢 ... 等等.' x6 I; j% R! E( q1 O8 _4 T
2, Baidu的地图包是否是封闭的数据格式? 能否像NOKIA, IPHONE, ANDRIOD把离线地图下载,然后用Larry Maps打开呢?
9 ?4 ^5 {) _4 l2 j6 U# W% ~0 p- {/ c% }0 S2 \/ s: m' Y/ d
我的位置:
7 L  b. u8 n* t# n) ~8 U: z$ k& _$ o  r+ z* G, t9 z. z* X
1. 目前软件是用一个十字架来表示自己的位置,个人感觉是否可以吧图标加大 + 醒目一些? 十字架不是很明显。
  p1 m5 U' t2 u& L2. 另外,我如果直接点"me"或者"m"键的时候, 十字架位置直接出现一个红圈, 那个什么意思啊? 提示正在定位吗?
. X4 [3 r& `! b4 c3. 如果点了M或者Me的话,地图会一直跟踪用户当前的位置,这个在开车或者实时看线路的时候比较有用. 但在地图浏览的时候,就比较麻烦,所以这个Me,建议做成开关. 按一下开,自动跟踪,在按一下就取消跟踪,用户可以自由拖动地图.
% ~, r) F* w1 d; S- V+ N( [& w4. 不知能否计算误差范围, 类似Google Map一样,如果是基站定位的话,可以出现一个圈,以告知目前定位的精度.
/ g0 |. b! I/ L% S- z. t) R  w

点评

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

使用道具 举报

发表于 2011-8-25 14:33 | 显示全部楼层
本帖最后由 dgpeterpan 于 2011-8-25 14:37 编辑
5 \4 w& F7 J; H! c; U/ Q$ y) {' n; r, o
支持divilis!!!
回复 支持 反对

使用道具 举报

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

点评

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

使用道具 举报

发表于 2011-8-25 16:59 | 显示全部楼层
寂夜清风 发表于 2011-8-25 15:47 5 g8 b& B2 |, w" u/ A1 B
楼主放一个捐助账号吧.看大家资助一下..尽量把这小软件搞得好用一些

: X3 a8 J! t6 `" r: w* x我也支持,毕竟是辛苦所得

点评

非常感谢大家的精神支持. 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" H; u& ]$ ?4 U2 [. p
嘿嘿  因为同时在使用纠偏补丁,所以我是直接在LARRY MAPS里面加偏移量的。不过具体步骤该怎么操作呢?还是不明白啊。8 g! ~; V8 K; l5 F. L3 Y
1,打开地图,屏幕自动定位到我的位置(是偏移的位置)。! X% S9 V# K0 l* |; E5 l
2,出现小小的提示 - 定位功能已经启动5 _/ b7 R% U+ q
3,点击Larry Maps标题栏,选择调正偏差 (对了,这个时候上下左右的四个矩形是干啥的?)2 r) E6 \) L5 j! ^1 s4 L/ E
4,把地图中心移到自己实际所在位,点击“m“,出现红点和”十字架“重合,然后停止调整。
: ^: |9 b6 x  ?3 ]5,地图中心又回到了原来便宜的位置 (奇怪啊?)2 Y1 {* C' z8 s8 i
6,重启地图,感觉一切都没变。

点评

今天打算另开一贴.出个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, 2024-12-22 21:06 , Processed in 0.444634 second(s), 33 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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