找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
楼主: divilis

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

[复制链接]
 楼主| 发表于 2011-8-23 01:19 | 显示全部楼层
今天主要解决大家回帖所提到的建议和意见...所以下一个小版本主要是修复BUG及小功能更新.
8 M+ W& }' d4 b! u另:公交搜索需要点技巧,
5 |6 f% ^4 o* L' A' m比如:视野在某城市可以输入 A, B  ; 想搜索其它城市公交可以输入 A城市 B, A城市 C ;注意城市与地点间的空格. 目前公交搜索是很吃内存的. 貌似还有同学会卡死. 所以我会再考虑是否把显示到地图上的线临时取消, 减少因内存耗尽而假死.
# h( f% k/ z  A' q$ B
# ?4 i7 ?- N3 q' C5 c  f. A+ e# O1 S8 r# @! T/ ^

( A" a2 C" Y- C- T" `$ z" h& j; Y-

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

点评

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

使用道具 举报

 楼主| 发表于 2011-8-23 04:43 | 显示全部楼层
最新更新2011.8.23,下载请移步二楼.
: D4 ~+ w% v; P! ]5 U9 P% V6 t欢迎建设性回复

* N. T8 x* ~* c6 o8 c8 F
回复 支持 反对

使用道具 举报

发表于 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 | 显示全部楼层
安装成功。定位很准。
8 l7 _0 Y3 c, N# W看了帖子才知道是双击移动地图。不习惯啊,还是拖动的方式更好更直观。0 A3 ^! A& e: C( R1 C9 [
缩放很灵敏,需要小心翼翼的控制幅度尝试几次,才能将地图缩放到想要的大小。6 t" }% l: G4 F: A9 y; D' ]
搜索什么的还没有尝试。在这里生活多年,活动范围有限,很少用到搜索啦。。) b# k% t' y: f& A! c8 a
搜狗地图容易出现白屏,体验稍差。
5 o2 _5 `5 u7 t+ E* T( H另外,图标看上去很杂乱,脏乎乎的感觉。不如换个简洁点的。

点评

地图已经可以拖动了。哈哈。  发表于 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
: b* U. U7 M% J! o  O, B  z  P# Q# Q0 s& q/ B
GPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置- R# O, W! p. g: j9 V0 G& D

# F; J! U4 l- G  D" }$ o% h8 B. Y缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
- n% D+ u! F% q2 N/ X! c# @+ y. h9 B7 S) M$ `
搜索功能最好参考下 五月的搜狗地图 比较直观 人性化
回复 支持 反对

使用道具 举报

发表于 2011-8-24 16:16 | 显示全部楼层
版本1.2.6
& I& W: N0 e5 n. }; a! o, P5 s
2 ~# E! z. Q7 B$ `, }: SGPS没有打开的提示没有了  但还是有问题 就是双击移动地图后 点@me 第一次会屏幕闪动一下然后把红圈定位在当前地图的中央,在点一次@me才会回到实际所在的位置
0 u! U" X! \$ ~% l2 L3 u
2 ]1 j% d, f# _8 X/ V# P3 M% w缩放地图过于灵敏,我觉得最理想的状态还是拖动移动地图 双击放大一级地图 手势快速缩放(目前间距过窄)
  f9 S5 _5 x- I0 |
! b% U1 X) f. e- t6 }2 Q搜索功能最好参考下 五月的搜狗地图 比较直观 人性化

点评

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

使用道具 举报

发表于 2011-8-24 18:24 | 显示全部楼层
divilis 发表于 2011-8-23 04:43
3 `) m' [, X; z8 h; \0 y最新更新2011.8.23,下载请移步二楼.. `  x: O% E9 k; |* G6 X7 Y' R6 F" K
欢迎建设性回复
! l5 X5 H1 y; `
感谢楼主,支持! 几点建议:
: A) [& d( O- d! @; c: C( n; U8 Y
1. 地图缩放,建议学习下IPHONE上的Google Map,双指敲击缩小一个级别,单指双击扩大一个界别。双指合拢/扩张的话,也建议只缩放一个级别,我现在已合拢,直接变世界地图了(1,2级别)。地图缩放基本比较流畅了,做的很好。7 v+ m' L+ h7 V3 Q) _9 ?
2. 好像地图的移动还不是很流畅,且需要单指双击移动(与第一点重复),不能拖曳,比较影响用户体验:)5 T/ W* m$ F) ?
3. 离线地图,这个可能比较难,不过BAIDU已经提供数据包下载了,不知道软件设计难度有多大...5 ?5 k$ f: F# c4 {

1 d2 l' `2 Y6 Z. a! {* ]5 C总体而言,楼主更新频繁,是个勤奋的好同志:) 不过这个地图是否能放到那个feeds上去,这样更新的话也能及时收到,不用天天到这里来抓最新的软件了." _2 R! b: y/ O' l, \* V4 o

. t' {/ n" a% B0 s) S. f4 h2 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 编辑 $ R7 Q5 f9 {6 ?$ A
* G. T' m& r: v- L4 \
拖动地图的实现方式及代码.
3 S& ?; I( b' @, M( p( H
9 o; F0 y8 r' d9 u
3 o( F0 P5 I5 X8 I5 }7 Z# j& _& c& W' h
  1. divilis@DIVILIS-GentooLinux /mnt/1T2 $ diff -Naur ./mapsbody-assistant_v1.2.6.js ./mapsbody-assistant_v1.2.7.js
    * k/ v4 S. \' o& t
  2. --- ./mapsbody-assistant_v1.2.6.js        2011-08-23 04:24:13.000000000 +08009 d2 `( P7 I7 x1 V( ?1 L/ D
  3. +++ ./mapsbody-assistant_v1.2.7.js        2011-08-25 01:29:56.000000000 +0800
    ) g3 v! t' h, N# I' r6 q
  4. @@ -47,7 +47,7 @@- R! R2 y' f; U' Z  M0 x5 `/ t  \! a
  5.                                                 { visable: true} ,5 _# W3 F" b& y7 m
  6.                                                 { items: [ 7 z3 v3 b5 i" N! A7 F
  7.                                                            { icon : "search" , command : 'enterKeyword'},
    ( @" W4 b! z0 C& _/ q* m( k5 U
  8. -                                                           { label : "Me", command : 'panTome' }2 y9 E3 a: t1 f! l3 G  [  J  K5 Z
  9. +                                                           { label : "M", command : 'panTome' }
    ) J7 t; r) K3 W' _$ `2 M" \9 I1 N4 |
  10.                                                            ]}# Z* F* n# h8 x, M- z2 J
  11.                                                         ]
    7 k" t: G( a2 M+ W/ B3 w
  12.                                         };
    % [. X8 I5 Z2 l4 \+ X$ R
  13. @@ -116,13 +116,21 @@, h" L) K* Z( q
  14.                                         this.handleGestureEnd.bindAsEventListener(this)
    4 f3 B7 b4 G, l9 K, {9 Q" X( p
  15.                                         );
    % `' U  S: q) k+ v" q. I

  16.   c0 i. n& L4 U
  17. +                        // I want to handle the Drag event.
    # |3 {. A7 x; ~
  18.                         this.controller.listen(3 R3 M- |9 X" f; U! H
  19. -                                        this.controller.get("infopad"),. s  L" k' A, r' p6 G) g
  20. -                                        Mojo.Event.tap,
    4 F+ h% j, I) e
  21. -                                        function(event){7 _7 y' K/ M- p* k
  22. -                                                if (event.count == 3)! j' C' ~' Q1 q' H$ t
  23. -                                                        this.controller.get("infopad").style.display = "none";
    ; W" D+ Z& z4 z. y5 _( d
  24. -                                                }.bindAsEventListener(this)  G+ {, b& m$ c6 ~( S# O
  25. +                                        this.controller.document,
    : `2 t7 c( h* y! ~; h
  26. +                                        Mojo.Event.dragging,
    % X( Z# v# b9 K  c5 H
  27. +                                        this.handleDragingMap.bindAsEventListener(this)
    ; }4 ^; n- V/ }$ I- h
  28. +                                        );
    6 e# S" ^+ }* g( X8 G: r: c
  29. +                        this.controller.listen(
    9 a5 Z0 a/ s: o/ y% |& l: X$ b
  30. +                                        this.controller.document,1 e! T7 J0 ?; ^- _5 q
  31. +                                        Mojo.Event.dragStart,
    $ x9 c/ c5 o  p; Q1 {1 U$ Z, v- G
  32. +                                        this.handleDragMapStart.bindAsEventListener(this)) y8 v. @' X* z) T; w4 z; \
  33. +                                        );
    7 ]8 O6 R7 i5 n; }2 V8 O4 M
  34. +                        this.controller.listen(9 q7 u9 i  u3 q; \" L- ?' Y5 n
  35. +                                        this.controller.document,
    5 E+ ^! U  F9 a" }/ u$ ^+ B* [
  36. +                                        Mojo.Event.dragEnd,
    - I" h9 W  Q+ `( L. \4 `$ k
  37. +                                        this.handleDragMapEnd.bindAsEventListener(this)
    # k) s! P4 ~- c0 B
  38.                                         );
    7 U( Z  f" K, N8 T* \
  39. ' n0 p, f5 W6 B( J
  40.                         // Pan to where you tap.
    / Z6 D6 V! @2 H
  41. @@ -172,6 +180,9 @@# D' \" B% r! |( e  K$ ]' a
  42.                         // - GAFC -7 x+ {/ W( w3 K9 V  P
  43.                         this.LAT = (25.213604 + this.offset_lat).toFixed(6); // 22.698998 -shuitian lat-
    ; Y3 N. {* L7 q! s
  44.                         this.LON = (110.285375 + this.offset_lon).toFixed(6); // 113.961740 -shuitian lng-
    4 e, i1 I# r' T# S
  45. +                        9 ~9 Q% ~! b% A  j3 u
  46. +                        this.dragStartCentX = this.dragStartCentY = 0;6 s4 i, W$ }. i/ K
  47. +                        this.initDragX = this.initDragY =0;7 ]3 F4 N; ]1 b5 q3 ]4 C
  48.                
    : z8 @' d0 w( D! P/ Z
  49.                         // the cache point of your last location & zoom level' W: E1 A: V# I6 d) X! W
  50.                         this.cachePointCookie = new Mojo.Model.Cookie("cachePoint");
    ' T( P6 D* Z6 o2 n7 [- o' N
  51. @@ -656,33 +667,68 @@
    , H, C; W* q/ y* ?; I
  52.                 handleGestureStart : function(evnet) {3 M' V' g% u  z# k+ k; _* y% t/ L5 C
  53.                         // Stop listen while we zoom in/out the map.
    4 ?* A% d' e7 B* ~/ r
  54.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    & h3 A* |2 f5 B" a8 l$ Y
  55. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));! b& e  Z7 C, K% O, o+ O) [$ x) h
  56. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));
    7 _0 H$ d# E' h1 X. x' D
  57. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));2 l- b1 {% F# R
  58.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";
    ! I  A+ c( T% }- B4 [
  59.                 },
    - A0 e7 U- U1 `

  60. 8 y! O: R# U+ w8 N( L
  61.                 handleGestureChange : function(evnet) {0 v3 `) L6 S% d8 I& h9 s( m2 z
  62. -                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv*evnet.scale) + "</font>";
    ) l; b2 ^" T6 G5 P( `6 |- X
  63. +                        this.controller.get("cross").innerHTML= "+ <font size=-2>" + Math.round(this.zoomLv * evnet.scale) + "</font>";
    # W; E4 c. E" i" S4 O! m  k
  64.                 }," Z7 R" H8 L% ?3 c6 Z# s

  65. 1 A$ _3 l) Z$ k4 h. S7 p( S/ u( H8 N
  66.                 handleGestureEnd : function(evnet) {6 h( X) `9 U- r" q
  67. -                        this.zoomLv = Math.round(this.zoomLv * evnet.scale);. Z! Q0 ^* m% N' [+ |
  68. -                        if (this.zoomLv >= 18) this.zoomLv = 18;  f: M+ U) N3 b! a( g
  69. -                        if (this.zoomLv <= 1) this.zoomLv = 1;
    ! w) \0 R/ o4 }2 D
  70. -                        this.map.setZoom(this.zoomLv);* w1 b! D( Z: Z1 ]
  71. +                        if (event.scale != 1){, O5 A/ i& \+ K3 B$ l" c; D/ l
  72. +                                // If scale has been changed, zoom to a level that you want.
    + A2 M  m! L. s
  73. +                                this.zoomLv = Math.round(this.zoomLv * evnet.scale);# N, d7 X% f# y  ]8 ]
  74. +                                if (this.zoomLv >= 18) this.zoomLv = 18;# n! r' ^6 ]: `
  75. +                                if (this.zoomLv <= 1) this.zoomLv = 1;0 R( E' L2 p: v; g$ S' R, q, z" S9 V
  76. +                                if (! this.isTracking){+ u6 p$ R2 u/ D8 v. {2 Z  Q# |
  77. +                                        delete this.point;
      w- R- l0 v2 P/ S! D; V) l
  78. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));4 w; T, R, J' D9 U. S! w2 O
  79. +                                        // Tell our global VARs the map has been changed.
    6 T8 j( {* @) _5 r6 F
  80. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);* O- V/ h4 b1 R' ]' i
  81. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);
    - U# ^) b4 \! s  V- z
  82. +                                        this.LAT = this.point.lat;) n/ W7 c# N/ d4 z9 C
  83. +                                        this.LON = this.point.lng;( G: S2 ~2 F8 |! W! m$ j
  84. +                                        this.map.centerAndZoom(this.point, this.zoomLv);
    8 R) r8 N9 k/ E7 e
  85. +                                } else {
    7 J& I. W7 b, W2 W0 v- j! Z
  86. +                                        this.map.setZoom(this.zoomLv);; b* O8 s9 p1 O
  87. +                                }
    ) H5 M2 l& f9 U, [+ Z
  88. +                        } else {) X# c- C& L, z; h7 p3 [
  89. +                                // Zoom out if you tap screen with tow fingers at the same time.( w" i# d7 Y# K7 \' s
  90. +                                this.zoomLv -= 1;; e  J1 {2 K% I- a% U% p
  91. +                                if (! this.isTracking){
    ' j( V) A; `5 n8 I1 [0 ^$ c
  92. +                                        delete this.point;
    ) s% b) b' t/ H( o5 I
  93. +                                        this.point = this.map.pixelToPoint(new BMap.Pixel(event.centerX, event.centerY));
    + O' n: S  ^4 L" Z
  94. +                                        // Tell our global VARs the map has been changed.
    ' ^0 v. a+ l& G0 d7 J" {& |  _
  95. +                                        this.offsetX = this.offsetX + (this.point.lat - this.LAT);
    " Z0 \0 l4 p% D& s& q3 E3 x
  96. +                                        this.offsetY = this.offsetY + (this.point.lng - this.LON);
    " A) ~1 [& {+ f, `
  97. +                                        this.LAT = this.point.lat;
    ! j1 f6 V( L" @5 U5 O' ]' U
  98. +                                        this.LON = this.point.lng;+ @$ }: _! f6 P. ~# Z7 A2 [8 `
  99. +                                        this.map.centerAndZoom(this.point, this.zoomLv);' h3 J3 H& h' n2 z) e
  100. +                                } else {
    3 u; X  _4 S5 l1 K3 h
  101. +                                        this.map.setZoom(this.zoomLv);. t* U( m' ]' X" w; |, R
  102. +                                }" b* F. O+ k' j7 J2 t, T
  103. +                        }7 W) l, S' r/ y) o+ D
  104.                         this.controller.get("cross").innerHTML= "+ <font size=-2>" + this.zoomLv + "</font>";9 B& [) ?( u1 t9 y
  105.                         setTimeout(0 p. T" p# L6 b% V, J6 G6 g
  106.                                         function(){
    % @* }9 t9 v! \3 u" k
  107.                                                 this.controller.get("cross").innerHTML= "+";
    6 T. t7 L# v! A; v8 s+ N$ B
  108.                                         },
    * x. [) a! w+ n0 E7 J
  109.                                         2000);6 r) \5 t* g- t; f
  110. -                        ! V% q" O! G8 d3 m' m
  111.                         // Relisten when zoom in/out ends.3 H% L: {' U% C$ T, j
  112.                         this.controller.listen(this.controller.document, Mojo.Event.tap, this.handleTap.bindAsEventListener(this));
    ) S8 {4 u/ h4 E. M9 V" u
  113. +                        this.controller.listen(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));
    5 g( y8 K/ q+ e
  114. +                        this.controller.listen(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));& `+ n  Q0 P8 u
  115. +                        this.controller.listen(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));
    , d5 X& i- R7 x8 ]% D
  116.                 },# K1 U% G$ f  h/ P8 y$ [2 V
  117. . X+ b1 ?' a5 z. C( p' \
  118.                 handleTap  : function(evnet) {
    + q! C4 ?( _) ?/ Y
  119.                         if (event.count == 2){! L# H: d/ p2 y9 A9 M# `
  120.                                 // Stop tracking, and pan to where you tap.
    - q2 X! a% _! T6 g7 {- Y$ ~  ]
  121.                                 this.stopTracking();! O( V3 }( T! E7 L& S3 @$ k
  122. +                                delete this.point;
    1 z; U. M, C$ H7 _; _3 a( d
  123.                                 this.point = this.map.pixelToPoint(new BMap.Pixel(event.down.x, event.down.y));( {( {7 P( d- q+ T/ C- N
  124. - h7 a8 L) d- J2 ^
  125.                                 // Tell our global VARs the map has been changed.6 V! \! D  z" G! a+ J1 Z; U: Y# l5 F
  126. @@ -690,10 +736,8 @@
    . F% z2 K7 j' k; w) i
  127.                                 this.offsetY = this.offsetY + (this.point.lng - this.LON);
    $ |9 B% N; y/ b6 t1 x, I- `
  128.                                 this.LAT = this.point.lat;
    / ]7 W/ G+ m/ Q
  129.                                 this.LON = this.point.lng;- l( T. t  h0 x" j
  130. -                                this.map.panTo(this.point);6 h' j9 i5 ?" N; M- U- M
  131. -                                Mojo.Log.info("this.zoomLv>>>>>>>>"+this.zoomLv);
    8 C/ l+ h6 s: D+ a$ s
  132. -                                Mojo.Log.info("PanTo>>>>>>>>"+this.LON+","+this.LAT);; O4 J' I6 U9 Y/ o3 A
  133. -                                Mojo.Log.info("offsetXY>>>>>>>>"+this.offsetX+","+this.offsetY);% s9 @5 }* @) q  W* H4 L
  134. +                                this.zoomLv +=1;
    ( y7 c7 |: x/ R" O( ?
  135. +                                this.map.centerAndZoom(this.point, this.zoomLv);
    6 `, k9 l5 a6 b+ e% N( \

  136. ; y7 S7 u, I% v+ O! z
  137.                                 // Double tap on the screen will hide the search widget.0 U0 |3 R2 Z  t1 ^) L% N
  138.                                 this.searchElement.style.display = "none";
    3 {8 g* K4 ]' o
  139. @@ -703,7 +747,38 @@- q% p9 i1 s# d- n# q8 W. {6 ?0 Q
  140.                                 this.controller.get("infopad").style.display = "none";2 j6 ]; S& S; f- `
  141.                         }1 ^6 W, j) j8 Q' z
  142.                 },
    2 o1 u1 n1 J, W/ X6 @; d0 y
  143. -                8 H/ y6 m+ i! {- E, D3 T- A
  144. +  R$ T* s8 S+ h/ f: F
  145. +                handleDragMapStart : function(event) {# R  `* `  T: K8 }
  146. +                        this.getDragStartPixel(event.down.x, event.down.y);
    $ g8 ^7 f- V" J2 O
  147. +                },
    " N# Q, `* D( L  Q7 m
  148. +
    ( W9 T! j8 X% i% H- |7 J3 l
  149. +                handleDragingMap : function(event) {
    0 l) h; r2 n& C4 C
  150. +                        this.captureNewCenter(event.move.x, event.move.y);
      I: }* m- X0 `
  151. +                },
    - l8 h0 `( p. {& s1 X
  152. +4 F: B: g: O9 k+ i
  153. +                handleDragMapEnd : function(event) {2 K8 X& X' W/ P& u
  154. +                        clearTimeout(this.delayMapPanning);6 h) M8 c. b2 p
  155. +                },
    . D) a: p2 e# e9 |7 ~) c# ?! H
  156. +
    ! D+ n2 ^# ^& R7 C. ^% t
  157. +                getDragStartPixel : function(x, y){
    5 {7 o  k! X- B: y) w% V
  158. +                        this.dragStartCentX = this.map.pointToPixel(this.map.getCenter()).x;
    & z2 f, _0 G: z* p+ v
  159. +                        this.dragStartCentY = this.map.pointToPixel(this.map.getCenter()).y;
    1 T& N* e: D5 m% Z
  160. +                        this.initDragX = x;
    / y: }# z" X5 L; Q# Y  ~3 v
  161. +                        this.initDragY = y;
    4 r0 T- q. _- m+ M  n6 `+ `
  162. +                },8 \- v" k' z: b( ]# l' f# }8 V/ q
  163. +
    7 g; w' D, w/ A3 @( f9 C$ }# V# O
  164. +                delayMapPanning : function(){
    5 r/ a+ n4 }4 y) T* x+ L
  165. +                        this.map.panTo(this.point);+ Y# a& S) U/ n
  166. +                },
    5 m( s5 G$ |- @
  167. +
    . L+ s* S7 g7 z; r, [( U$ K, [
  168. +                captureNewCenter : function(x, y){! V  K7 w9 x& c5 W- t% m
  169. +                        delete this.point;  {8 Q% P) u* q
  170. +                        this.point = this.map.pixelToPoint(new BMap.Pixel(this.dragStartCentX + x - this.initDragX, this.dragStartCentY + y - this.initDragY));
    ' @  w) B, v2 e+ [( x  U. R
  171. +                        this.LAT = this.point.lat;; v4 K! O' F# b. J  ~  \
  172. +                        this.LON = this.point.lng;
    ; J5 D4 J/ U% {) @
  173. +                        this.delayMapPanning();" h- {2 E; U. u" m8 x
  174. +                },) ]$ z/ }/ d& n4 U7 e
  175. +
    6 w# y" b/ R, Y( p- j, H; Y
  176.                 closeInfoWindow : function(T) {
    7 T/ |7 N; w8 `# Q
  177.                         // close info window in T seconds.& H' X8 f$ y; v; t* p
  178.                         setTimeout(this.map.closeInfoWindow(), T*1000);
    + C5 ^7 D' Z; t* k% t+ v
  179. @@ -726,7 +801,9 @@' w: T9 e% D- @! e  I
  180.                         this.controller.stopListening(this.controller.document, "gesturechange", this.handleGestureChange);
    6 g; K: i, |) A( [' p' o0 a
  181.                         this.controller.stopListening(this.controller.document, "gestureend", this.handleGestureEnd);
    $ X4 O2 _4 ?7 y0 v2 j' L/ F
  182.                         this.controller.stopListening(this.controller.document, Mojo.Event.tap, this.handleTap);
    : Z8 S3 Q6 t7 X# p
  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) );
    4 U$ W4 e, z) O; s
  184. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragging, this.handleDragingMap.bindAsEventListener(this));
    ) A% j$ D" A9 r& h% E7 V/ U
  185. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragStart, this.handleDragMapStart.bindAsEventListener(this));9 m( r# p6 A$ D% C! J
  186. +                        this.controller.stopListening(this.controller.document, Mojo.Event.dragEnd, this.handleDragMapEnd.bindAsEventListener(this));5 c4 @( [" a8 T* F# _
  187.                 }
    ) O1 j3 i. P! Z8 b7 e6 K
  188.         };
    : q# m. J  x6 y* ]" [( i" v. I, v
  189.         }());( Z( k: s+ O8 P( I8 O
  190. \ No newline at end of file/ A" _7 ?& v; V" M
  191. divilis@DIVILIS-GentooLinux /mnt/1T2 $
    + G$ Q8 w! `- q5 Q! ?6 u
复制代码

本帖子中包含更多资源

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

×
回复 支持 反对

使用道具 举报

发表于 2011-8-25 09:34 | 显示全部楼层
pre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动,目前是地图向左移动了;1 T# i' B% {  w
如果滑动屏幕后手指不离开屏幕则地图的移动将不会停止,远大于手指移动的距离;
$ M( B  r! a. C* N8 ]# |地图移动存在抖动,这个需要优化下吧9 c. T8 J7 n7 A! q
滑动的时候地图上被手指点到的区域没法跟随手指运动,操控感也就变的比较差了;) q! D( _2 y2 x/ I: B! \9 ~
感谢又一更新,越来越好用了,对代码和算法实在不懂,也就只能提些使用感受了

点评

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

使用道具 举报

发表于 2011-8-25 11:31 | 显示全部楼层
auttom 发表于 2011-8-25 09:34
6 b" T; i0 W  M7 t! lpre 1.2.7,拖动地图和正常的使用习惯有些不同吧,例如在屏幕上向右滑动,一般的使用习惯是图片向右边移动, ...
' R& H! q5 e6 o! u
操作方式与系统本身相同会更好
回复 支持 反对

使用道具 举报

发表于 2011-8-25 13:57 | 显示全部楼层
divilis 发表于 2011-8-25 02:17
& g# U$ ~/ V/ T( s  E拖动地图的实现方式及代码.
1 S3 g+ E+ x0 q
更新反馈:
" ~; h# a" [( G  D$ X* I2 e9 O8 K) J! G  n$ u0 [$ g
首先我用的是3P 1.4.5 ... 以下是1.2.7版本的试用状况。
* e4 h  E* g0 Y, V5 Y6 S3 i: W: P, T& f) m, z* m
地图缩放:" Q1 u) a6 l$ I5 F( J
& ~; j% J9 L5 ^' ]6 T
1. 单指单击可以放大, 但是貌似放大到特别大,大概有3x级.* }$ X) U4 H+ s3 i7 h& F  {
2. 双指同时单击不能缩小.
" O" s7 G- _! w" v3, 老问题, 双指合拢/扩张的话,建议只缩放一个级别,我现在一合拢,直接变世界地图了(1,2级别,缩放太快了, 很难控制缩放级别).3 M0 x* S2 v- E% o5 y& `

. @) t# K# H7 M4 l$ _地图校准:% T; V1 \5 d( b# b3 n" T, `

1 v" m; g/ v$ O; m. Z* W1. 建议楼主写个简单教程,比如那个十字架代表什么,那个红圈代表什么,怎么校准等.0 D! K( U% {) _2 S4 c. p1 V
2. 可能我比较笨,掌握不到楼主的想法 :(8 I3 C; S$ J6 D, Y+ [
3. 另外我总感觉校准的时候挪动地图非常的苦难,很难校准。* m7 r! X6 N6 [: ?3 E1 t

5 q& ^7 g1 W# T( g; j地图拖曳:* o+ D0 x  t, f) \2 `! d, F6 D
: R( e  s" O0 d+ `4 r& p9 [2 C
1. 楼主响应非常快, 地图已经可以拖曳,不过好像方向和IPHONE/ANDRIO是反的,建议和他们一样,毕竟习惯的力量很大,同时也可以提升用户体验.
! P' V4 B: ^1 N3 W
. S- o% |. L  m) g5 |8 C$ g离线地图:
$ Y' Q  H. d  k- F9 d$ n4 g7 _9 m/ N9 R9 U3 y
1. 楼主这个可能是众望所归, 不知难度到底多大? 现在的MAPTOOL实在是不好用,地图太大(没有用数据库), 巨量的小文件,程序响应慢 ... 等等.
  b/ K- f' b% F2, Baidu的地图包是否是封闭的数据格式? 能否像NOKIA, IPHONE, ANDRIOD把离线地图下载,然后用Larry Maps打开呢?
2 M1 J  M; |. _
% {' @7 Z" R% I0 c( e% C& S" Q我的位置:  q8 E4 P6 O3 E" n" r

! h3 L) O9 A9 b) S( E/ V1. 目前软件是用一个十字架来表示自己的位置,个人感觉是否可以吧图标加大 + 醒目一些? 十字架不是很明显。
) i4 r6 r$ Y: W* b2. 另外,我如果直接点"me"或者"m"键的时候, 十字架位置直接出现一个红圈, 那个什么意思啊? 提示正在定位吗?
) b& ?/ H. a& }) Z) D9 O3. 如果点了M或者Me的话,地图会一直跟踪用户当前的位置,这个在开车或者实时看线路的时候比较有用. 但在地图浏览的时候,就比较麻烦,所以这个Me,建议做成开关. 按一下开,自动跟踪,在按一下就取消跟踪,用户可以自由拖动地图.7 b% C% v& @0 n3 l# E9 H! A* k
4. 不知能否计算误差范围, 类似Google Map一样,如果是基站定位的话,可以出现一个圈,以告知目前定位的精度.
3 \4 p4 L! Z$ o- y5 ^* N0 {0 f2 s

点评

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

使用道具 举报

发表于 2011-8-25 14:33 | 显示全部楼层
本帖最后由 dgpeterpan 于 2011-8-25 14:37 编辑
6 i9 e+ l% u7 p0 u- W' Z; N) }. p1 j( z1 g1 s
支持divilis!!!
回复 支持 反对

使用道具 举报

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

点评

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

使用道具 举报

发表于 2011-8-25 16:59 | 显示全部楼层
寂夜清风 发表于 2011-8-25 15:47 6 l5 D7 ?' K. w0 f% i$ h/ [* |
楼主放一个捐助账号吧.看大家资助一下..尽量把这小软件搞得好用一些

1 ^) V! g5 Q5 m9 @我也支持,毕竟是辛苦所得

点评

非常感谢大家的精神支持. 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
. J% s7 n8 G. i4 Y( }嘿嘿  因为同时在使用纠偏补丁,所以我是直接在LARRY MAPS里面加偏移量的。不过具体步骤该怎么操作呢?还是不明白啊。, P- N$ Y4 |& d
1,打开地图,屏幕自动定位到我的位置(是偏移的位置)。# X4 B% @2 C5 k8 R" S
2,出现小小的提示 - 定位功能已经启动# E% E& T0 w# ~( h) a/ w
3,点击Larry Maps标题栏,选择调正偏差 (对了,这个时候上下左右的四个矩形是干啥的?)
8 x5 c; n! {  V5 R* I! P6 C4,把地图中心移到自己实际所在位,点击“m“,出现红点和”十字架“重合,然后停止调整。% a3 T+ P4 [4 z$ }
5,地图中心又回到了原来便宜的位置 (奇怪啊?)1 m9 S3 F$ ~. v2 M0 C/ y
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-11-3 02:34 , Processed in 0.394438 second(s), 33 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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