找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: divilis

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

[复制链接]
 楼主| 发表于 2011-8-23 01:19 | 显示全部楼层
今天主要解决大家回帖所提到的建议和意见...所以下一个小版本主要是修复BUG及小功能更新.+ B$ ?0 A4 Q' K- |' p
另:公交搜索需要点技巧,
8 n1 D% \4 M) z' V8 t比如:视野在某城市可以输入 A, B  ; 想搜索其它城市公交可以输入 A城市 B, A城市 C ;注意城市与地点间的空格. 目前公交搜索是很吃内存的. 貌似还有同学会卡死. 所以我会再考虑是否把显示到地图上的线临时取消, 减少因内存耗尽而假死.
7 |  V4 m4 a' f8 D2 z7 ~; Q: }3 U
* v* T; ?' n2 {+ f
& v1 o) F! T0 A" L! X7 l3 n' F& `0 ?8 S4 P6 D; A( f7 e" l+ X7 O$ G$ Q3 [% {
-

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

点评

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

使用道具 举报

 楼主| 发表于 2011-8-23 04:43 | 显示全部楼层
最新更新2011.8.23,下载请移步二楼.
4 A0 @" ?/ g9 `3 c% Q欢迎建设性回复
5 ~: k, m7 `8 F% S$ i1 ], _
回复 支持 反对

使用道具 举报

发表于 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 | 显示全部楼层
安装成功。定位很准。
. D  f/ m. p6 P看了帖子才知道是双击移动地图。不习惯啊,还是拖动的方式更好更直观。# {* v* S1 I4 {1 X* Z
缩放很灵敏,需要小心翼翼的控制幅度尝试几次,才能将地图缩放到想要的大小。
; i8 P% E  A. C6 d1 R( }搜索什么的还没有尝试。在这里生活多年,活动范围有限,很少用到搜索啦。。
6 r' a& U+ a  f+ }搜狗地图容易出现白屏,体验稍差。
2 {( ]! M( a" A8 f# t8 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.6" w3 w* A# W; r

' L( z2 [3 K" N- G- _1 kGPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置: I% I; j9 \/ I9 ]6 e6 ?

# t7 h3 T: j  ?1 D  G缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)9 h" @" H: d6 X" q

4 _" D. f" w* r6 R搜索功能最好参考下 五月的搜狗地图 比较直观 人性化
回复 支持 反对

使用道具 举报

发表于 2011-8-24 16:16 | 显示全部楼层
版本1.2.6
: R- j6 Y7 W) h+ B8 j/ J. b3 Y' h; N+ i3 [6 M
GPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置
, k* w" U* R, l' M+ b
6 Y% V# n5 h- I$ J缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
5 Q1 q& Y  h) c7 b+ a  l* X/ P' w# z. L
搜索功能最好参考下 五月的搜狗地图 比较直观 人性化

点评

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

使用道具 举报

发表于 2011-8-24 18:24 | 显示全部楼层
divilis 发表于 2011-8-23 04:43
( {/ I8 y: ^/ }" ?; S5 d最新更新2011.8.23,下载请移步二楼.
1 j7 q% L: x8 L/ X8 o# l3 _3 H欢迎建设性回复

" T6 o! T1 {% l- V感谢楼主,支持! 几点建议:
/ D% ?! N; _! _" v
: Y, W* C  Y, ^; j' W1. 地图缩放,建议学习下IPHONE上的Google Map,双指敲击缩小一个级别,单指双击扩大一个界别。双指合拢/扩张的话,也建议只缩放一个级别,我现在已合拢,直接变世界地图了(1,2级别)。地图缩放基本比较流畅了,做的很好。  x# P- x1 R0 X( A
2. 好像地图的移动还不是很流畅,且需要单指双击移动(与第一点重复),不能拖曳,比较影响用户体验:)
; V/ E7 {- b: o$ h& o3. 离线地图,这个可能比较难,不过BAIDU已经提供数据包下载了,不知道软件设计难度有多大...
3 F( s( q3 p; t2 L; [" d& y, P
/ Z. ^- D( c9 Q. H- i( S4 B总体而言,楼主更新频繁,是个勤奋的好同志:) 不过这个地图是否能放到那个feeds上去,这样更新的话也能及时收到,不用天天到这里来抓最新的软件了.
( ]! `- Q/ p1 [4 \5 c; k  d) m7 x$ h) Z: [0 p% x- S
哈哈,说了那么多,有点为难楼主了,不过真的很喜欢这个本土化软件,才写那么多:)

点评

今天更新了功能,请下载新版本看看.... 你的建议非常捧!!!  发表于 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 编辑 # e( |! X. p0 h+ _* a$ B4 J
3 `7 a! w1 m9 ^- {* K
拖动地图的实现方式及代码.; H( [2 N1 v$ b6 o6 q

  P5 i3 U" F) r, x  Z9 o3 @3 @6 P7 e1 [2 W) |
' F3 u3 j/ t9 t- L
  1. divilis@DIVILIS-GentooLinux /mnt/1T2 $ diff -Naur ./mapsbody-assistant_v1.2.6.js ./mapsbody-assistant_v1.2.7.js 3 _( k# V: _. k- T7 J  B. m. ^$ A
  2. --- ./mapsbody-assistant_v1.2.6.js        2011-08-23 04:24:13.000000000 +0800$ F# X' c0 b5 y0 `! g
  3. +++ ./mapsbody-assistant_v1.2.7.js        2011-08-25 01:29:56.000000000 +0800
    ! h- A  f# K5 f0 p
  4. @@ -47,7 +47,7 @@
    5 _7 X; R) c2 f
  5.                                                 { visable: true} ,* m) t/ \. s$ ~8 j$ p. C: q
  6.                                                 { items: [
    ) E" c3 B- H$ I" E" |& ?5 E) |. s& f
  7.                                                            { icon : "search" , command : 'enterKeyword'},
    + J( [) y1 `; o! @7 Q, ?4 X
  8. -                                                           { label : "Me", command : 'panTome' }) t4 x+ Y* D" k5 u, S
  9. +                                                           { label : "M", command : 'panTome' }
    ' g3 K  i. g& ^' m7 e$ w- y
  10.                                                            ]}+ D+ G5 r4 B& a0 E9 q
  11.                                                         ]
    ' g8 }$ n+ q$ M$ Q* G
  12.                                         };
    ' z7 D: U+ O7 s
  13. @@ -116,13 +116,21 @@5 ?: `$ t9 i6 J9 F
  14.                                         this.handleGestureEnd.bindAsEventListener(this)
    . G7 Q: `/ Q7 `/ E( P" [8 |
  15.                                         );! `2 J! k& X, C: Z# y
  16. ) f5 B$ G( D* B& B6 T
  17. +                        // I want to handle the Drag event.
    0 ?4 t3 g) Y- T* }9 ^5 U! z
  18.                         this.controller.listen() E3 ~5 ?5 ^2 m# C  z
  19. -                                        this.controller.get("infopad"),+ }: E1 x. J; W# c
  20. -                                        Mojo.Event.tap,
    ! Z) \- u# h; h& w; P' ~
  21. -                                        function(event){( s( n: n9 U; o( p; K
  22. -                                                if (event.count == 3)
    - ]! m8 {9 b6 v) F( H3 N- C
  23. -                                                        this.controller.get("infopad").style.display = "none";
    # u% z7 T& j8 ]) b. H
  24. -                                                }.bindAsEventListener(this)
    3 c) i9 Q5 J. i3 o- S* g) U
  25. +                                        this.controller.document,
    - v) |0 B6 J$ P# h
  26. +                                        Mojo.Event.dragging,
    ! Q( O( y% P* o8 G  ?) W
  27. +                                        this.handleDragingMap.bindAsEventListener(this)
    8 S4 V7 d! U6 f# l
  28. +                                        );0 N0 K5 [; W, p. d
  29. +                        this.controller.listen(+ [8 A& L; Z2 g" B1 D) I% e
  30. +                                        this.controller.document,
    % @) h4 ]. ^/ O% w  d" g8 s6 O2 |
  31. +                                        Mojo.Event.dragStart,  s9 ^8 i2 D  R- Y' {0 G# B6 j
  32. +                                        this.handleDragMapStart.bindAsEventListener(this)
    ' g2 E: p6 ~. j7 @5 B
  33. +                                        );$ q6 z3 }9 \- W7 O
  34. +                        this.controller.listen(4 b& A) B" d; W* W" b9 {
  35. +                                        this.controller.document,
    7 F' j. ?  L' S* E& Q, |6 W- G2 b
  36. +                                        Mojo.Event.dragEnd,
    7 F6 A+ T! R; Z: P/ I+ D
  37. +                                        this.handleDragMapEnd.bindAsEventListener(this)4 K/ z5 O$ k! E7 Y* p
  38.                                         );
    # n! M+ P7 T. K1 ^
  39. + g; k" k2 ~2 K& \
  40.                         // Pan to where you tap.
    4 R6 g( i- s! g* B7 U
  41. @@ -172,6 +180,9 @@5 ^$ j- k  m: t" J9 }+ Y
  42.                         // - GAFC -& _, f* L2 B: K
  43.                         this.LAT = (25.213604 + this.offset_lat).toFixed(6); // 22.698998 -shuitian lat-+ v  E6 D3 L% ?9 N8 l; Y" S/ @3 `
  44.                         this.LON = (110.285375 + this.offset_lon).toFixed(6); // 113.961740 -shuitian lng-3 |4 v7 x3 q4 C
  45. +                       
    # h  @- }  y9 c8 Q8 [, {
  46. +                        this.dragStartCentX = this.dragStartCentY = 0;; V, Q) u) U( H5 |8 i  d9 r" r+ l+ S! w
  47. +                        this.initDragX = this.initDragY =0;
    9 M# D8 C' ], g7 b
  48.                
    5 X/ {, N# @, \" V/ }* I
  49.                         // the cache point of your last location & zoom level
    8 A5 J( W* ]( {. N% ]7 o4 `0 W8 K
  50.                         this.cachePointCookie = new Mojo.Model.Cookie("cachePoint");' `, k7 n/ O1 i& H, T! \: T
  51. @@ -656,33 +667,68 @@
    6 E2 q/ R5 a9 l8 d" C9 _5 g6 k6 w
  52.                 handleGestureStart : function(evnet) {1 F' `: V/ T, ~/ j4 R$ E
  53.                         // Stop listen while we zoom in/out the map., |: d5 }$ f8 f: h' v$ U8 F: M
  54.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    ( K6 K3 T  k) |: u
  55. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));% r7 N0 j- \$ o  J: }& }
  56. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));  ]& {7 V/ S: X+ h) g2 L
  57. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));
    9 Y9 N/ n% W3 y
  58.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";5 {0 [& \. G3 X
  59.                 },
    ' {& ^3 k7 s# ~" m- ?

  60. 4 t0 {; ~0 \3 a/ n: k# L" Y
  61.                 handleGestureChange : function(evnet) {
    : ?" x7 n4 x% V/ o* g& o
  62. -                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv*evnet.scale) + "</font>";
    , y" q. W( r' l- @( `3 U: H$ q5 G1 ^
  63. +                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv * evnet.scale) + "</font>";- }- {1 d  [8 n' w5 q% @4 d7 j1 Z/ K
  64.                 },& M" M" }. K1 R0 C! H

  65. 6 U& f6 G$ Z% J( q9 U
  66.                 handleGestureEnd : function(evnet) {
    - ~8 t  |% {8 ?& h6 \3 m$ z9 L
  67. -                        this.zoomLv = Math.round(this.zoomLv * evnet.scale);2 N5 _' S, a' c- x" d" g
  68. -                        if (this.zoomLv >= 18) this.zoomLv = 18;
    ; X+ `7 D/ m) F3 U2 r
  69. -                        if (this.zoomLv <= 1) this.zoomLv = 1;
    # T( L9 o1 Q( Z
  70. -                        this.map.setZoom(this.zoomLv);9 P2 F8 ~2 e0 e, K; e" p# M
  71. +                        if (event.scale != 1){7 o: |! f. ^* Q1 z7 ?8 e
  72. +                                // If scale has been changed, zoom to a level that you want., K( X( @* P) ~% C$ a. v
  73. +                                this.zoomLv = Math.round(this.zoomLv * evnet.scale);, I. i7 c" T# R) M
  74. +                                if (this.zoomLv >= 18) this.zoomLv = 18;
    2 o, d$ x9 w# v! ?7 ?. n; n
  75. +                                if (this.zoomLv <= 1) this.zoomLv = 1;! K4 P3 n+ S3 h% L
  76. +                                if (! this.isTracking){) K# N8 z# g/ P2 ~% m
  77. +                                        delete this.point;' p0 v5 C8 _0 I2 k6 i% M! M
  78. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));
    : u' c' W: ~' z. S5 g1 |
  79. +                                        // Tell our global VARs the map has been changed.9 q; m& U' Q+ b
  80. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);5 Y/ j. ~0 k. G4 n
  81. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);
    2 J( \$ G. j2 l9 p1 O% J! H
  82. +                                        this.LAT = this.point.lat;$ {+ P  K8 @5 u' o8 I1 R/ f4 _7 q
  83. +                                        this.LON = this.point.lng;
    2 T$ I$ U3 k0 _3 g7 m+ u
  84. +                                        this.map.centerAndZoom(this.point, this.zoomLv);
    " _0 W7 E1 f! n5 K
  85. +                                } else {4 `& s- @& @& J' `- r
  86. +                                        this.map.setZoom(this.zoomLv);" k: |8 l2 f* t7 L
  87. +                                }4 E4 y, {+ t: h/ E
  88. +                        } else {# R+ J5 f. B) G
  89. +                                // Zoom out if you tap screen with tow fingers at the same time.
    % H1 Q/ U/ c. t* Y) ~8 D$ d& f
  90. +                                this.zoomLv -= 1;  K3 L  G; y0 L# t; k! k
  91. +                                if (! this.isTracking){# d1 |- x; c/ j  Y! }4 b
  92. +                                        delete this.point;
      m( A! L, z: F2 G' w, y5 K
  93. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));
    4 n8 m8 q) s1 M2 d" A, F; g
  94. +                                        // Tell our global VARs the map has been changed.* N4 |; |( g( @4 U# x# ?% ]
  95. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);  A9 f( @7 n# |! a5 n2 R
  96. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);
    9 o' h/ _% u4 [8 V
  97. +                                        this.LAT = this.point.lat;
    " ]2 P( S* R6 G3 u2 S
  98. +                                        this.LON = this.point.lng;  L) l( _6 _5 s8 ]9 N# @
  99. +                                        this.map.centerAndZoom(this.point, this.zoomLv);
    0 b/ X% q% r4 Z& [# \
  100. +                                } else {
    , K1 t6 N3 q) n: g( J, j7 O
  101. +                                        this.map.setZoom(this.zoomLv);' M/ L/ }1 ~% c" w- A; ?5 O
  102. +                                }, E6 c- O* Q7 c0 O% ^
  103. +                        }! u' m& B; Y& ]- c
  104.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";7 h/ \: O9 l0 m. P6 n' T) X4 u
  105.                         setTimeout(
    ; B" E6 j3 _* _9 p0 W. |7 K
  106.                                         function(){7 b6 \$ b" V9 y3 y0 u# B+ K
  107.                                                 this.controller.get("cross").innerHTML= "+";1 o. S% f. J/ ~3 Z7 f) [
  108.                                         },, a  U- R0 n3 j1 z# X) w7 F! Y
  109.                                         2000);- K2 b3 _: [0 I2 o
  110. -                       
      y+ o+ W+ R2 k/ b6 e, ^/ Y" j
  111.                         // Relisten when zoom in/out ends.: Z& O% y+ q& E" {; w0 Y0 Q  {
  112.                         this.controller.listen(this.controller.document, Mojo.Event.tap, this.handleTap.bindAsEventListener(this));3 z( w$ ^& K5 Y. z' w; j
  113. +                        this.controller.listen(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));+ o3 e+ N1 A5 ]/ M
  114. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));; C! e/ J$ w! D5 X0 p0 A
  115. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));
    % i: g* Q. _1 k5 A0 {4 t- e2 H: b
  116.                 },- l. H, c6 `8 T& s- v: L6 q; v

  117.   I2 M, V, f: S7 O
  118.                 handleTap  : function(evnet) {' L! r  a2 i( w5 H  I9 V- Z. ^. n, P3 }
  119.                         if (event.count == 2){5 B9 I% p( e: @( h
  120.                                 // Stop tracking, and pan to where you tap.6 F6 V" {) s* N; r$ h3 [! O2 o
  121.                                 this.stopTracking();% P4 q$ u. H. G# z# ^' _) n
  122. +                                delete this.point;
    6 U( Z3 }/ d) `6 }  m
  123.                                 this.point = this.map.pixelToPoint(new BMap.Pixel(event.down.x, event.down.y));: g- e# j( _3 z: Q# ~' _

  124. ) i% Y! R* p" k% s8 {4 \7 V9 G
  125.                                 // Tell our global VARs the map has been changed.
    2 I$ {1 J( j; v! Z; r& _8 p: d
  126. @@ -690,10 +736,8 @@
    4 G  N5 T8 O5 j
  127.                                 this.offsetY = this.offsetY + (this.point.lng - this.LON);1 O5 U1 u; I3 P! G
  128.                                 this.LAT = this.point.lat;6 `9 f7 h, v& ?5 n9 v6 H8 U+ X# j
  129.                                 this.LON = this.point.lng;
    $ w" y; x2 v: U. |
  130. -                                this.map.panTo(this.point);) t$ K7 A  N; c) O3 z( [
  131. -                                Mojo.Log.info("this.zoomLv>>>>>>>>"+this.zoomLv);5 {* X- j9 M5 A' d: k+ A
  132. -                                Mojo.Log.info("PanTo>>>>>>>>"+this.LON+","+this.LAT);$ H3 P' A# R; d+ {& N$ a: J
  133. -                                Mojo.Log.info("offsetXY>>>>>>>>"+this.offsetX+","+this.offsetY);
      \3 s8 V" ]* F4 h
  134. +                                this.zoomLv +=1;+ h2 D0 r$ Z5 l6 y# [4 `
  135. +                                this.map.centerAndZoom(this.point, this.zoomLv);/ a) |' x4 |( [' _+ }7 Z6 R

  136. - |$ B3 z% {+ T& k, m- `6 L
  137.                                 // Double tap on the screen will hide the search widget.
    2 F+ r) j) B& Q8 i$ I7 h' T$ h, V: f
  138.                                 this.searchElement.style.display = "none";
    * u+ y  b- W) J8 T% _
  139. @@ -703,7 +747,38 @@
    * m7 q; |. P9 a* |3 _
  140.                                 this.controller.get("infopad").style.display = "none";
    3 V, M* w6 q/ f7 W
  141.                         }
    ' s8 M7 \( g. i) L9 k2 G) k7 j
  142.                 },
    ! d' A& a/ J1 h. W5 u
  143. -               
    6 U* X; r, Y8 C  q' q0 c4 i, e
  144. +- b8 [6 a1 B, U; e- Z) J1 M
  145. +                handleDragMapStart : function(event) {  X: d: \6 c+ c9 f
  146. +                        this.getDragStartPixel(event.down.x, event.down.y);% _5 O. l/ g+ Z( i' o. |: V
  147. +                },
    ( T  F3 r) X! K, Z
  148. +) W  O4 a# V2 k8 q6 G) a$ u8 b
  149. +                handleDragingMap : function(event) {7 L& V2 u* Z- _) M
  150. +                        this.captureNewCenter(event.move.x, event.move.y);/ M$ I. \8 [% @6 h
  151. +                },
    : |) E* `+ L  t! B
  152. +
    1 K: x( W: O6 a, K1 v
  153. +                handleDragMapEnd : function(event) {& o* \, P% A5 Y; J
  154. +                        clearTimeout(this.delayMapPanning);: w& Y& @4 {9 d% Z' v6 {
  155. +                },5 [2 ~  i* O" B4 Q* `3 n: \
  156. +: ?" g8 k! F% m5 t6 S* ?
  157. +                getDragStartPixel : function(x, y){" V0 O. x$ a, E4 K$ ]% m+ y4 z+ {& \! ^
  158. +                        this.dragStartCentX = this.map.pointToPixel(this.map.getCenter()).x;- \, v, L& k9 c- }1 x1 ^/ Z  d$ |
  159. +                        this.dragStartCentY = this.map.pointToPixel(this.map.getCenter()).y;" c: @6 x( }0 J
  160. +                        this.initDragX = x;: D. V" t. T. T5 A: J! y& u% N
  161. +                        this.initDragY = y;
    + {: X3 w* u4 o) K& C
  162. +                },
    0 `$ q; C! g) ~) ~  l
  163. +0 T0 W8 j5 ^- s' Z3 a
  164. +                delayMapPanning : function(){
    . m# P5 q3 h! d& D3 Y
  165. +                        this.map.panTo(this.point);* w7 @- t, m; N9 G+ R
  166. +                },% X9 W9 q* Y/ T5 N) U1 e; N8 S7 o
  167. +6 E/ x# [& H& ?, f! _
  168. +                captureNewCenter : function(x, y){9 ^. e5 [2 e; W3 b& j
  169. +                        delete this.point;
    2 s* n) n* Y5 v. [
  170. +                        this.point = this.map.pixelToPoint(new BMap.Pixel(this.dragStartCentX + x - this.initDragX, this.dragStartCentY + y - this.initDragY));: y# H' Y- U' p1 y$ @6 h3 G6 X: N
  171. +                        this.LAT = this.point.lat;
    6 i# i. u# m. N
  172. +                        this.LON = this.point.lng;  P# @4 F  _: L8 ~2 \. m! X
  173. +                        this.delayMapPanning();& N# a* F) ]1 ]
  174. +                },7 E2 J5 v8 {( y7 J0 v% ?3 N
  175. +
    " h0 y9 {! ~& ~/ A2 D5 h; b% v
  176.                 closeInfoWindow : function(T) {$ ~/ C% {+ [/ y( \; z
  177.                         // close info window in T seconds.
    5 b% l% v- C8 i. S7 \$ M: H
  178.                         setTimeout(this.map.closeInfoWindow(), T*1000);+ W: X- a4 f' A+ ?
  179. @@ -726,7 +801,9 @@& y5 w2 o8 D2 F' P% t! _$ X
  180.                         this.controller.stopListening(this.controller.document, "gesturechange", this.handleGestureChange);# r) R/ H9 B8 K+ X& W
  181.                         this.controller.stopListening(this.controller.document, "gestureend", this.handleGestureEnd);
    # z7 s2 s- Z$ }4 N: d1 O* N, C
  182.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    3 t4 _9 b8 n. ~% I  {
  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) );
    3 q+ _) n0 R5 t: F  ]2 F* X. @2 x, |
  184. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));- X$ `* G+ r' y( N. A
  185. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));) V& t% |) R& g7 R- }' ]
  186. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));
    4 |) u) @5 |0 t& _+ c
  187.                 }
    9 z/ ^, V# o$ v: f8 _/ w* \8 g& X
  188.         };+ z! T  _* l) f/ F1 i% A( o
  189.         }());
    9 l8 z- p7 B" c) e# h! q, j/ h% I' a) g
  190. \ No newline at end of file) g1 C8 v, y. O( O, h. t
  191. divilis@DIVILIS-GentooLinux /mnt/1T2 $
    & k' p9 [, F8 b$ s2 `9 m
复制代码

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2011-8-25 09:34 | 显示全部楼层
pre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动,目前是地图向左移动了;. g/ J# {/ W0 c  Q  w
如果滑动屏幕后手指不离开屏幕则地图的移动将不会停止,远大于手指移动的距离;
* U& ^# O3 o2 I6 ?9 h" j3 a地图移动存在抖动,这个需要优化下吧# d0 h0 R( e- B+ p# x7 m
滑动的时候地图上被手指点到的区域没法跟随手指运动,操控感也就变的比较差了;
" h2 y# E6 z9 V/ L1 o感谢又一更新,越来越好用了,对代码和算法实在不懂,也就只能提些使用感受了

点评

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

使用道具 举报

发表于 2011-8-25 11:31 | 显示全部楼层
auttom 发表于 2011-8-25 09:34 ; F1 J: @, b: n; X, u- g$ c  I
pre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动, ...

0 ?# T0 G( D9 m  H) E+ p操作方式与系统本身相同会更好
回复 支持 反对

使用道具 举报

发表于 2011-8-25 13:57 | 显示全部楼层
divilis 发表于 2011-8-25 02:17 8 y0 ?% B* ^) y* F+ `
拖动地图的实现方式及代码.

$ C5 P. o  z$ p( G, e更新反馈:
3 L9 ?" }2 S7 S" ^% Q0 d8 k. I" M$ l% Y. [  ~0 ~% w+ e
首先我用的是3P 1.4.5 ... 以下是1.2.7版本的试用状况。  N: |' O4 U# a

" T4 S0 S: ?9 ]" O5 C& Q% S& n地图缩放:2 ~9 r0 p# D/ D/ Z- C( ?" D
  Q- S6 j) Y$ A$ \" a
1. 单指单击可以放大, 但是貌似放大到特别大,大概有3x级.4 j9 K% v1 a' V; a  ?' h
2. 双指同时单击不能缩小.- a! m6 b/ o7 D& N! u% g- }  ^
3, 老问题, 双指合拢/扩张的话,建议只缩放一个级别,我现在一合拢,直接变世界地图了(1,2级别,缩放太快了, 很难控制缩放级别).6 D! K8 b% ^4 H0 ~, }6 O; j
" m5 x( c. N, e& D7 w& ]
地图校准:  J! v, y+ k* w  i" {/ o4 W

4 a% G, y, j" e/ F1. 建议楼主写个简单教程,比如那个十字架代表什么,那个红圈代表什么,怎么校准等.  g9 r% `6 C+ [9 v4 i! v/ H
2. 可能我比较笨,掌握不到楼主的想法 :(
: y0 B$ a7 G, e4 P" i) e3. 另外我总感觉校准的时候挪动地图非常的苦难,很难校准。
4 w- v2 v3 I1 u" b
2 s4 K7 E& i  _# O+ G地图拖曳:
. q$ a- w& n4 F8 j2 h' A) b) S, P3 L
1. 楼主响应非常快, 地图已经可以拖曳,不过好像方向和IPHONE/ANDRIO是反的,建议和他们一样,毕竟习惯的力量很大,同时也可以提升用户体验.  Z6 \- z& W4 H9 K2 z/ i

+ [( d* s: `" e离线地图:! {4 x* N0 D. F# l: `, g

, Q) w8 Q( L5 K) ^1. 楼主这个可能是众望所归, 不知难度到底多大? 现在的MAPTOOL实在是不好用,地图太大(没有用数据库), 巨量的小文件,程序响应慢 ... 等等.6 t" r" [4 @( M1 w- b9 a
2, Baidu的地图包是否是封闭的数据格式? 能否像NOKIA, IPHONE, ANDRIOD把离线地图下载,然后用Larry Maps打开呢?
& T0 l% v4 Z' {  w
( X4 @9 y, ~6 d$ v6 p2 Q( A我的位置:" h7 p: L4 }$ O# Q2 J

; R& E" p7 ]! }+ v2 w) z1. 目前软件是用一个十字架来表示自己的位置,个人感觉是否可以吧图标加大 + 醒目一些? 十字架不是很明显。& o$ T" H  `$ e8 }3 m+ G
2. 另外,我如果直接点"me"或者"m"键的时候, 十字架位置直接出现一个红圈, 那个什么意思啊? 提示正在定位吗?
" J0 _3 H$ x6 }' x0 g3. 如果点了M或者Me的话,地图会一直跟踪用户当前的位置,这个在开车或者实时看线路的时候比较有用. 但在地图浏览的时候,就比较麻烦,所以这个Me,建议做成开关. 按一下开,自动跟踪,在按一下就取消跟踪,用户可以自由拖动地图.
9 |8 f9 X" {8 @$ p" K- M( C4. 不知能否计算误差范围, 类似Google Map一样,如果是基站定位的话,可以出现一个圈,以告知目前定位的精度.
. B5 [$ |8 c# @7 w- X8 o% b

点评

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

使用道具 举报

发表于 2011-8-25 14:33 | 显示全部楼层
本帖最后由 dgpeterpan 于 2011-8-25 14:37 编辑 ) M9 Z( c, N% I. C
& d' c8 h$ R1 A" g4 u6 v  N1 Q
支持divilis!!!
回复 支持 反对

使用道具 举报

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

点评

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

使用道具 举报

发表于 2011-8-25 16:59 | 显示全部楼层
寂夜清风 发表于 2011-8-25 15:47 4 K# F1 q3 m' `8 M5 E! t0 W& k6 b
楼主放一个捐助账号吧.看大家资助一下..尽量把这小软件搞得好用一些
& h! Z4 w1 }# U! r
我也支持,毕竟是辛苦所得

点评

非常感谢大家的精神支持. 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 (新版) + 3p3 t6 K" H7 m" \+ M; a0 @, A
嘿嘿  因为同时在使用纠偏补丁,所以我是直接在LARRY MAPS里面加偏移量的。不过具体步骤该怎么操作呢?还是不明白啊。# k: @  r7 \, L2 p) I" `* @
1,打开地图,屏幕自动定位到我的位置(是偏移的位置)。
8 y1 c) ~% N' I9 n8 Y9 h3 u2,出现小小的提示 - 定位功能已经启动! U6 x( v4 x8 F6 U9 k: ^' a; P; y
3,点击Larry Maps标题栏,选择调正偏差 (对了,这个时候上下左右的四个矩形是干啥的?)
3 @: E% f6 g) n4 P4,把地图中心移到自己实际所在位,点击“m“,出现红点和”十字架“重合,然后停止调整。0 f. Y) N* \5 G; }4 V, v
5,地图中心又回到了原来便宜的位置 (奇怪啊?)2 h7 [/ a. f- ]8 O5 n% o& L
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, 2025-4-4 10:06 , Processed in 0.691956 second(s), 33 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

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