ãšã³ããªãŒ
空ãæéã«ã¯ããã³ã¹ã¯ã§ATMãèŠã€ããããã®ã¢ããªã±ãŒã·ã§ã³ãäœæããŸãã ãããŠãã©ãããããããäŒæã«è¡ããšãç§ã¯é»è©±ã§ã€ã³ã¿ãŒããããªãã§æŸçœ®ãããŸããã ãã¹ãŠã¯ããŸããããŸãããATMãèŠã€ããŠãéãåŒãåºããé»è»ã«é
ããªãããã«ããå¿
èŠããããŸããã ã¢ããªã±ãŒã·ã§ã³ãéãããªãã©ã€ã³ã§ã«ãŒãã䜿çšã§ããªãã£ãããšã«éåžžã«å€±æããŸããã ãã¡ãããç§ãã¡ã®æ代ã«ã¯ããããã¯ãŒã¯ã«æ¥ç¶ããã«å®¶ãåºãªãæ¹ãè¯ãã§ãããããã§ããªããéœåã®æªãæéã«ãæ°ã«å
¥ãã®ã¢ãã€ã«ããã€ã¹ã®ã€ã³ã¿ãŒãããããªããªãå¯èœæ§ããããŸãã
æºåž¯é»è©±ã§ä»ã®ã¢ããªã±ãŒã·ã§ã³ãèŠããšã以åã«ããŠã³ããŒããããããã®äžéšããã£ãã·ã¥ããŠããã ãã§ãã ããã¯éšåçã«ã¯åœ¹ç«ã€ãããããŸããããåé¡ãå®å
šã«è§£æ±ºããŸããã§ããã ãã®åŸããªãã©ã€ã³ã§å°å³ã衚瀺ã§ãããã©ããçåã«æããŸããã ç§ã®ã¢ããªã±ãŒã·ã§ã³ã¯ãã€ãã£ãã§ã¯ãªããPhoneGapã«åºã¥ããŠããããããã©ãŠã¶ãŒããŒã¹ã§ãããããç¹ã«google map api v3ã䜿çšããŠãã©ãŠã¶ãŒã¢ããªã±ãŒã·ã§ã³ã®ãããããã£ãã·ã¥ããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ã¢ã€ãã¢
äžåºŠããã¹ãŠã®åŸã«ãGoogleãããAPIã䜿çšãããšãç¬èªã®ãããå®è£
ãäœæã§ããããšãæãåºããŸããïŒããšãã°ã
OSMã«ã¢ããã€ã¹ããŸãïŒã ããã«å©çšå¯èœãªå®è£
ãã¹ãªãããããšããã¢ã€ãã¢ãããã«åºãŠããŸãããããã¯ãæ¥ç¶ãããå Žåã¯ãããããã£ãã·ã¥ã«ããŠã³ããŒãããããã¢ããªã±ãŒã·ã§ã³ã«ããããã£ãã·ã¥ãæäŸããããšã§å®è¡ã§ããŸãã
æåã¯ã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã䜿çšããããšãèããŠããŸãããããã®APIã¯ãã£ãã·ã¥ã®èªã¿èŸŒã¿ã管çããããã®åºç¯ãªãªãã·ã§ã³ãæäŸããªãããããã®ãã³ãã£ãŒãæŸæ£ããŸããã
æçµçã«ãã¢ããªã±ãŒã·ã§ã³ã«ãã£ãã·ã¥ãæäŸããããšã«ããŸããã
localStorageã«ã¹ãã©ã€ããä¿åãããšããã¢ã€ãã¢ãæãã€ããŸãããããã®å®è£
ã«ã¯å€§ããªæ¬ ç¹ããããŸãã
- localStorageã®ãµã€ãºå¶éã
- ããŒã¿ã¯ãå®éã®ãµã€ãºããçŽ30ïŒ
倧ããbase64ã«ä¿åããå¿
èŠããããŸãã
åæAPIã®å®è£
ãäžè¶³ããŠãããããindexedDBãŸãã¯webSQLã«ã¹ãã©ã€ããä¿åãããšããèããæšãŠãªããã°ãªããŸããã§ããã
ãããã©ãã
ç§ãèªåããæåã®è³ªåã¯ãã«ãŒãããã£ãã·ã¥ãã䟡å€ãããã®ãââãšããããšã§ããã ã€ãŸããç¹å®ã®éœåžã®å°å³ã䜿çšããã詳现ãªè©³çŽ°ãå¿
èŠãã©ããã決ãŸããŸãã ç§ã®å Žåãå°ããªãºãŒã ïŒ10ã15ïŒã®ããã«Minskãã£ãã·ã¥ãããã°ååã§ããã
2çªç®ã®è³ªåïŒãã£ãã·ã¥ã¯ã©ã®ãããã®ã¹ããŒã¹ãå æããŸããïŒ å¹³åã¹ãã©ã€ããµã€ãºã20 kbã®å Žåãçè«çã«ã¯ãºãŒã 10ïŒãã³ã¹ã¯ãå®å
šã«ãã£ããïŒã®å Žåã11-4ïŒ100 kbïŒã12-16ïŒ420 kbïŒã13-64ïŒ1.7 mbïŒã14-256ïŒ6.8 mbïŒã15-1024ïŒ27 mbïŒã 14ã®ãºãŒã ãã£ãã·ã¥ã§ååãªããã§ãã
ããŠã³ããŒããã
ãã£ãã·ã¥ãå®éã«ã©ãã ãã®ã¹ããŒã¹ã䜿çšããŠãããã調ã¹ãããã«ãå®éã®ããããšå®éã®ã¹ãã©ã€ããååŸããããšã«ããŸããã ãããè¡ãã«ã¯ãããã€ãã®åŠæ ¡ã®åé¡ã解決ããå¿
èŠããããŸããïŒå€ãã®ãã€ã³ãããæå°åšå²ãæã€ããªãŽã³ãäœæã
ã極座æšããããã¹ãã©ã€ãã®åº§æšã«å€æ ããããªãŽã³å
ã® ã¹ãã©ã€ãã
èŠã€ããŸã ã
ã¹ã¯ãªããã®æºåãæŽã£ãåŸãã¹ãã©ã€ããããŠã³ããŒããã次ã®çµæãåŸãŸããïŒæ¬åŒ§å
ã¯ãã®ãºãŒã ã®åèšã¹ããŒã¹ã§ãïŒã
ãºãŒã | ã¹ãã©ã€ãã®çè«çãªæ° | çè«äžã®ã¹ãã©ã€ããµã€ãº | ã¹ãã©ã€ãã®å®éã®æ° | ã¹ãã©ã€ãã®å®éã®ãµã€ãº |
---|
9 | 1 | 20 kbïŒ20 kbïŒ | 2 | 52 kbïŒ52 kbïŒ |
10 | 1 | 20 kbïŒ40 kbïŒ | 3 | 72 kbïŒ124 kbïŒ |
11 | 4 | 80 kbïŒ100 kbïŒ | 7 | 204 kbïŒ328 kbïŒ |
12 | 16 | 320 kbïŒ420 kbïŒ | 17 | 348 kbïŒ676 kbïŒ |
13 | 64 | 1.3 mbïŒ1.7 mbïŒ | 48 | 820 kbïŒ1.5 mbïŒ |
14 | 256 | 5.1 mbïŒ6.8 mbïŒ | 158 | 2.2 mbïŒ3.7 mbïŒ |
15 | 1024 | 20.5 mbïŒ27 mbïŒ | 586 | 5.5 mbïŒ9.3 mbïŒ |
16 | 4096 | 82 mbïŒ109 mbïŒ | 2264 | 15 mbïŒ24.3 mbïŒ |
ã¹ãã©ã€ãã¯ããã³ã¹ã¯ã®ç°ç¶éè·¯å
ã«ããå ŽåããŸãã¯å¿
èŠãªãªããžã§ã¯ãããããã®ã¹ãã©ã€ãäžã«ããå Žåã«ããŠã³ããŒããããŸããã ãããã£ãŠãã¹ãã©ã€ããå ããã¹ããŒã¹ã倧å¹
ã«åæžããããšãããããŸããã
ç§ã¯ã¹ãã©ã€ããæã£ãŠããã®ã§ããããããªãã©ã€ã³ã§åäœãããããã«æ®ã£ãŠããŸããã
ãããã¯ãŒã¯ãªã
ãã£ãã·ã¥ãããã¹ãã©ã€ãã§ã«ãŒããæ©èœããããã«ã¯ãã©ãããããŒã¿ãååŸããããæå®ããå¿
èŠããããŸããç°¡åã«è¡ãããšãã§ããŸãã
- å°å³ã mapTypes ã set ïŒ "LocalGmap" ã æ°ãã googleãmapsãImageMapType ïŒ {
- getTileUrl ïŒ function ïŒ coord ã zoom ïŒ {
- ããã£ãã·ã¥/ã +ãºãŒã + ã/ã +座æšãè¿ããŸãã x + "_" + coordã y + ".png"
- } ã
- tileSize ïŒ æ°ãã Googleã ããã ã ãµã€ãº ïŒ 256ã256 ïŒ ã
- åå ïŒ ãLocalGmapã ã
- maxZoom ïŒ 15
- } ïŒ ïŒ ;
getTileUrlé¢æ°ã¯ãç»åã®srcå±æ§ã«ä»£å
¥ãããå€ãè¿ããããç»åã®base64è¡šçŸãlocalStorageã«ä¿åãããŠããå Žåã次ã®ããã«ããããã£ãã·ã¥ãå®è£
ã§ããŸãã
- å°å³ã mapTypes ã set ïŒ "WebStorageGmap" ã æ°ãã googleãmapsãImageMapType ïŒ {
- getTileUrl ïŒ function ïŒ coord ã zoom ïŒ {
- localStorageãè¿ããŸãã getItem ïŒ [ zoom ã coordãxãcoordãy] .join ïŒ '_' ïŒ ïŒ ;
- } ã
- tileSize ïŒ æ°ãã Googleã ããã ã ãµã€ãº ïŒ 256ã256 ïŒ ã
- åå ïŒ ãWebStorageGmapã ã
- maxZoom ïŒ 15
- } ïŒ ïŒ ;
ãã ããçŸæç¹ã§ã¯ãGoogleãããã®APIã¹ã¯ãªãããç»åãã«ãŒãœã«ã«åŒãç¶ãé¢é£ä»ããããŠããŸãã
æãéèŠãªã¹ã¯ãªãã
http://maps.googleapis.com/maps/api/js?sensor=falseããå§ããŸãããã ã¹ã¯ãªãããããŠã³ããŒãããŠããŒã«ã«ããŒãžã§ã³ã«çœ®ãæããŸãããããgmapapi.jsãšåŒã³ãŸãã ãã®ã¹ã¯ãªããã¯ãããã€ãã®ããŒã¿ãžã®å€ãã®åç
§ã«èšåããŠããŸãã
ããäžåºŠèµ·åããŠãã©ã®ã¹ã¯ãªãããèªã¿èŸŒãŸããŠãããã確èªããŸãã ããã¯
http://maps.gstatic.com/cat_js/intl/en_us/mapfiles/api-3/8/5/main.jsããã³
http://maps.gstatic.com/cat_js/intl/ã«é¡äŒŒãããã®ä»ã®ã¹ã¯ãªããã§ã
ã en_us / mapfiles / api-3 / 8/5 / {mapãmarker} .jsæåã®ã¹ã¯ãªããã«ã¯ã«ãŒãã«ãå«ãŸããæ®ãã¯è¿œå ã³ã³ããŒãã³ãã§ãã main.jsãããŠã³ããŒãããŸããgmapapi.jsã«ã¯è¿œå ã®ã³ã³ããŒãã³ããèšèŒãããŠããªããããmain.jsãããã«ç¢ºèªããŠãé¢å¿ã®ãããã¹ãŠã®ã³ã³ããŒãã³ããååŸããcomponents.jsã§ããŠã³ããŒãããŸãã
googleã ããã .__ gjsload__ ïŒ 'common' ã ...
googleã ããã .__ gjsload__ ïŒ 'controls' ã ...
googleã ããã .__ gjsload__ ïŒ 'directions' ã ...
googleã ããã .__ gjsload__ ïŒ 'distance_matrix' ã ...
googleã ããã .__ gjsload__ ïŒ 'drawing_impl' ã ...
googleã ããã .__ gjsload__ ïŒ 'elevation' ã ...
googleã ããã .__ gjsload__ ïŒ ' geocoder ' ã ...
googleã ããã .__ gjsload__ ïŒ 'geometry' ã ...
googleã ããã .__ gjsload__ ïŒ ' infowindow ' ã ...
googleã ããã .__ gjsload__ ïŒ 'kml' ã ...
googleã ããã .__ gjsload__ ïŒ 'layers' ã ...
googleã ããã .__ gjsload__ ïŒ 'map' ã ...
googleã ããã .__ gjsload__ ïŒ 'marker' ã ...
googleã ããã .__ gjsload__ ïŒ 'maxzoom' ã ...
googleã ããã .__ gjsload__ ïŒ 'onion' ã ...
googleã ããã .__ gjsload__ ïŒ 'overlay' ã ...
googleã ããã .__ gjsload__ ïŒ 'places_impl' ã ...
googleã ããã .__ gjsload__ ïŒ 'poly' ã ...
googleã ããã .__ gjsload__ ïŒ 'search_impl' ã ...
googleã ããã .__ gjsload__ ïŒ 'stats' ã ...
googleã ããã .__ gjsload__ ïŒ 'streetview' ã ...
googleã ããã .__ gjsload__ ïŒ 'usage' ã ...
googleã ããã .__ gjsload__ ïŒ 'util' ã ...
次ã«ãgmapapi.jsã§å€éšãã¡ã€ã«ã®main.jsã®ããŒããããŒã«ã«ã®ãã¡ã€ã«ã«çœ®ãæããŸãããŸããã³ã³ããŒãã³ãã®åæååŸã«å¿
èŠãªã³ã³ããŒãã³ããããŒãããå¿
èŠããªãããã«components.jsãããŒãããŸãã
ããã«èª¿ã¹ãŸããhttpïŒ
//maps.googleapis.comãããç解ã§ããªãéæ³ãäœãããã€ãã®ã¹ã¯ãªãããããŒããããŸãã
- AuthenticationService.Authenticate
- QuotaService.RecordEvent
- StaticMapService.GetMapImage
- ViewportInfoService.GetViewportInfo
- gen_204
- ãã£ãŒã
ããããèšåãããŠããå ŽæããããŠãããå€æããããã«ãgmapapi.jsãæ¢ããŠããŸãã ãããã®ã¹ã¯ãªãããžã®ãªã³ã¯ãããŒã«ã«ã®ã¹ã¯ãªããã«çœ®ãæããŸãïŒã¢ããªã±ãŒã·ã§ã³ãã£ãã·ã¥ã§ãã©ãŒã«ããã¯ãæ©èœãããããïŒã äœãå®è¡ããªãempty.jsã¹ã¯ãªãããè¿œå ãããããã§ã¹ããã¡ã€ã«ã®ãã©ãŒã«ããã¯ã»ã¯ã·ã§ã³ã«ãmagic_ script empty.jsããªã³ã¯ãè¿œå ããŸãã
ãã©ãŒã«ããã¯ïŒ
gmapcache / googleapis / maps / api / js / AuthenticationService.Authenticate gmapcache / empty.js
gmapcache / googleapis / maps / api / js / QuotaService.RecordEvent gmapcache / empty.js
gmapcache / googleapis / maps / api / js / StaticMapService.GetMapImage gmapcache / empty.js
gmapcache / googleapis / maps / api / js / ViewportInfoService.GetViewportInfo gmapcache / empty.js
gmapcache / googleapis / maps / gen_204 gmapcache / empty.js
gmapcache / googleapis / mapslt / ft gmapcache / empty.js
ã¹ã¯ãªããã䜿çšããŠãä»ããåçã
ã¹ãã©ã€ãã§ã¯ãªããã¹ãŠã®ç»åã¯ã
http://maps.gstatic.com/mapfiles/ããããŒããããŸãã ãã¹ãŠã®ãã¡ã€ã«ããã°ããæ€çŽ¢ãããšããã®è¡ã¯gmapapi.jsã®1ã€ã®å Žæã§èšåãããŠããããšãããããŸãã ãã¹ãŠã®åçãããŒã«ã«ã«ããŠã³ããŒãããèŠã€ãã£ããªã³ã¯ãããŒã«ã«ã®ãªã³ã¯ã«çœ®ãæããŸãã
ãªãã©ã€ã³ã§äœæ¥ãå®äºããããã«ããã¹ãŠããããã§ã¹ããã¡ã€ã«ã«ããã·ã¥ããŸãã
ãã£ãã·ã¥ãããã§ã¹ã
ãããã¯ãŒã¯ïŒ
*
ãã£ãã·ã¥ïŒ
index.html
style.css
script.js
gmapapi.js
gmapcache / main.js
gmapcache / components.js
gmapcache / empty.js
gmapcache / gstatic / arrow-down.png
gmapcache / gstatic / cb / mod_cb_scout / cb_scout_sprite_api_003.png
gmapcache / gstatic / cb / target_locking.gif
gmapcache / gstatic / google_white.png
gmapcache / gstatic / iw3.png
gmapcache / gstatic / iws3.png
gmapcache / gstatic / mapcontrols3d7.png
gmapcache / gstatic / marker2 / marker_sprite.png
gmapcache / gstatic / mv / imgs8.png
gmapcache / gstatic / rotate2.png
gmapcache / gstatic / szc4.png
gmapcache / gstatic / transparent.png
gmapcache / gstatic / openhand_8_8.cur
gmapcache / gstatic / closedhand_8_8.cur
ãã¹ãŠãå®å
šã«æ©èœãããªãã©ã€ã³ãããã®æºåãã§ããŸããïŒ
gmapapi.jsã«ãã¹ãŠã®å€æŽãå ããŸãã
å®éãgmapapi.jsã«ã¯ãããã®ãã¹ãŠã®èšå®ãä¿åãããŠãããã¹ãã©ã€ããžã®ãªã³ã¯ãããã«æå®ããããšãã§ããŸãã
次ã¯ïŒ
å®éã«ã¯ããã ãã§ãã
ã ããç§ããã£ãããšïŒ
- ããŒã«ã«ã«ããŠã³ããŒããããã¹ãã©ã€ãã
- 䜿çšãããŠãããã¹ãŠã®ãªãœãŒã¹ïŒã¹ã¯ãªãããç»åãã«ãŒãœã«ïŒãããŒã«ã«ã«ããŠã³ããŒãããŸããã
- å€éšãªãœãŒã¹ã®èšåãããŒã«ã«ã®ãã®ã«çœ®ãæãããããã§ã¹ããã¡ã€ã«ã®ãã£ãã·ã¥ã»ã¯ã·ã§ã³ã«ãã¡ã€ã«ãè¿œå ããŸããã
- åæååŸã«å¿
èŠãªã¹ã¯ãªãããããŒããããªãããã«ããŸããã
- äžèŠãªãã¡ã€ã«ããããŒã«çœ®ãæãããã©ãŒã«ããã¯ã«ãã¡ã€ã«ãããã§ã¹ãã»ã¯ã·ã§ã³ãè¿œå ããŸããã
ãã®ãããžã§ã¯ãã¯github
https://github.com/tbicr/OfflineMapã«ããã
ããŒãµãŒãš
ãµã€ãã§æ§æãããŠã
ãŸã ã æ ãè
ã¯ãã
http://offline-map.appspot.comã§å°å³ãèŠãããšãã§ããŸãã
ãã©ãŠã¶ãŒã§ããã«ãªãã©ã€ã³ã§äœæ¥ã確èªããã«ã¯ã
httpïŒ//offline-map.appspot.comã«ã¢ã¯ã»ã¹ãã[Webã¹ãã¬ãŒãžã®æºå]ãã¯ãªãã¯ããã¹ãã©ã€ããèªã¿èŸŒãŸãããŸã§æ°ç§åŸ
ã£ãŠãããã€ã³ã¿ãŒãããããªãã«ããWebStorageGmapãã¯ãªãã¯ããŠã楜ãã¿ãã ããã
ãWebã¹ãã¬ãŒãžã®æºåããã¿ã³ã¯ã¹ãã©ã€ããlocalStorageã«ã¢ããããŒããããWebã¹ãã¬ãŒãžã®ã¯ãªã¢ãã¯ããã«å¿ããŠã¯ãªã¢ããŸãã
ã«ãŒãã®çš®é¡ïŒ
- ããã-æšæºã®Googleããããããã
- è¡æ-è¡æããã®æšæºã®Googleããããããã
- OSM-Google APIã䜿çšããOSMã«ãŒãã®å®è£
ã
- MyGmap-æšæºã®Googleããããããã®å®è£
ã
- LocalGmap-ããŒã«ã«ã«ïŒãµã€ããšåããã¹ãã«ïŒä¿åããããããã®å®è£
ã
- WebStorageGmap-localStorageã«ä¿åããããããã®å®è£
ïŒæåã«ãWebã¹ãã¬ãŒãžã®æºåããå®è¡ããå¿
èŠããããŸãïŒã
- LocalMyGmapã¯ãLocalGmapãšMyGmapã®ãã€ããªããå®è£
ã§ãããããŒã¿ããããäžã®ç¹å®ã®é åã«ããå ŽåãLocalGmapã®ããã«æ©èœãããã以å€ã®å Žåã¯MyGmapã®ããã«æ©èœããŸãã
- WebStorageMyGmapã¯ãWebStorageGmapãšMyGmapã®ãã€ããªããå®è£
ã§ãããããŒã¿ãlocalStorageã«ããå ŽåãWebStorageGmapã®ããã«æ©èœããããã§ãªãå Žåã¯MyGmapã®ããã«æ©èœããŸãã