0
python-geohex aita (twitter id: @ryoaita)
• aita (twitter id: @ryoaita)
python-geohex• GeoHex v2 Python• aita• https://bitbucket.org/__aita__/python-  geohex• PyPI                      ......
Geohex
GeoHex• twitter id: @sa2da• JavaScript• aita                 v2   JavaScript••
GeoHex•       Hex•• Hex• Hex
http://geohex.net/
v2•                 v1•                                 Level:0         1m    60cm          Level:24   25•                ...
GeoHex•                   v1, v2, v3••   python-geohex      v2•   v1•   v3       JavaScript•                              ...
http://geogames.net/
JS•••• namespace
(function (win) { //// namspace GeoHex;if (!win.GeoHex) win.GeoHex = function(){};// version: 2.03GeoHex.version = "2.03";...
var h_l = xy2loc(h_x - 2 * h_size, h_y).lon;   var h_r = xy2loc(h_x + 2 * h_size, h_y).lon;   var h_cl = xy2loc(h_x - 1 * ...
// var h_x_100000 = Math.floor(h_x_abs/777600000);  var h_x_10000 = Math.floor((h_x_abs%777600000)/12960000);  var h_x_1000 ...
if (h_max >= 12960000 / 2) {   h_x = h_key.indexOf(code.charAt(1)) * 12960000 +       h_key.indexOf(code.charAt(3)) * 2160...
JSer   desune
aita
#flagboy
><
python-geohex
python-geohex• Python• Apache License• JavaScript•            GeoHex
••   geodjango••
python-geohex• aita   GeoHex•• __eq__•
#flagboy
><
declass RandomZoneTest(unittest.TestCase):   def testLocationToCode(self):       for i in range(10000):           lat = 85...
python-geohex
python-geohex
python-geohex
Upcoming SlideShare
Loading in...5
×

python-geohex

212

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
212
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Transcript of "python-geohex"

    1. 1. python-geohex aita (twitter id: @ryoaita)
    2. 2. • aita (twitter id: @ryoaita)
    3. 3. python-geohex• GeoHex v2 Python• aita• https://bitbucket.org/__aita__/python- geohex• PyPI ......
    4. 4. Geohex
    5. 5. GeoHex• twitter id: @sa2da• JavaScript• aita v2 JavaScript••
    6. 6. GeoHex• Hex•• Hex• Hex
    7. 7. http://geohex.net/
    8. 8. v2• v1• Level:0 1m 60cm Level:24 25• 1:4• 3 1311
    9. 9. GeoHex• v1, v2, v3•• python-geohex v2• v1• v3 JavaScript• ( v2 85• v1, v2 v3
    10. 10. http://geogames.net/
    11. 11. JS•••• namespace
    12. 12. (function (win) { //// namspace GeoHex;if (!win.GeoHex) win.GeoHex = function(){};// version: 2.03GeoHex.version = "2.03";// *** Share with all instances ***var h_key ="abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";var h_base = 20037508.34;var h_deg = Math.PI*(30/180);var h_k = Math.tan(h_deg);// private staticvar _zoneCache = {};
    13. 13. var h_l = xy2loc(h_x - 2 * h_size, h_y).lon; var h_r = xy2loc(h_x + 2 * h_size, h_y).lon; var h_cl = xy2loc(h_x - 1 * h_size, h_y).lon; var h_cr = xy2loc(h_x + 1 * h_size, h_y).lon; return [ {lat: h_lat, lon: h_l}, {lat: h_top, lon: h_cl}, {lat: h_top, lon: h_cr}, {lat: h_lat, lon: h_r}, {lat: h_btm, lon: h_cr}, {lat: h_btm, lon: h_cl} ];};
    14. 14. // var h_x_100000 = Math.floor(h_x_abs/777600000); var h_x_10000 = Math.floor((h_x_abs%777600000)/12960000); var h_x_1000 = Math.floor((h_x_abs%12960000)/216000); var h_x_100 = Math.floor((h_x_abs%216000)/3600); var h_x_10 = Math.floor((h_x_abs%3600)/60); var h_x_1 = Math.floor((h_x_abs%3600)%60);// var h_y_100000 = Math.floor(h_y_abs/777600000); var h_y_10000 = Math.floor((h_y_abs%777600000)/12960000); var h_y_1000 = Math.floor((h_y_abs%12960000)/216000); var h_y_100 = Math.floor((h_y_abs%216000)/3600); var h_y_10 = Math.floor((h_y_abs%3600)/60); var h_y_1 = Math.floor((h_y_abs%3600)%60); if(h_max >=60/2) h_code += h_key.charAt(h_x_10) + h_key.charAt(h_y_10); h_code += h_key.charAt(h_x_1) + h_key.charAt(h_y_1); if (!!_zoneCache[h_code]) return _zoneCache[h_code]; return (_zoneCache[h_code] = new Zone(z_loc_y, z_loc_x, h_x, h_y, h_code));
    15. 15. if (h_max >= 12960000 / 2) { h_x = h_key.indexOf(code.charAt(1)) * 12960000 + h_key.indexOf(code.charAt(3)) * 216000 + h_key.indexOf(code.charAt(5)) * 3600 + h_key.indexOf(code.charAt(7)) * 60 + h_key.indexOf(code.charAt(9)); h_y = h_key.indexOf(code.charAt(2)) * 12960000 + h_key.indexOf(code.charAt(4)) * 216000 + h_key.indexOf(code.charAt(6)) * 3600 + h_key.indexOf(code.charAt(8)) * 60 + h_key.indexOf(code.charAt(10));} else if (h_max >= 216000 / 2) { h_x = h_key.indexOf(code.charAt(1)) * 216000 + h_key.indexOf(code.charAt(3)) * 3600 + h_key.indexOf(code.charAt(5)) * 60 + h_key.indexOf(code.charAt(7)); h_y = h_key.indexOf(code.charAt(2)) * 216000 + h_key.indexOf(code.charAt(4)) * 3600 + h_key.indexOf(code.charAt(6)) * 60 + h_key.indexOf(code.charAt(8));
    16. 16. JSer desune
    17. 17. aita
    18. 18. #flagboy
    19. 19. ><
    20. 20. python-geohex
    21. 21. python-geohex• Python• Apache License• JavaScript• GeoHex
    22. 22. •• geodjango••
    23. 23. python-geohex• aita GeoHex•• __eq__•
    24. 24. #flagboy
    25. 25. ><
    26. 26. declass RandomZoneTest(unittest.TestCase): def testLocationToCode(self): for i in range(10000): lat = 85 * random.random() lon = 85 * random.random() level = random.randint(0,24) zone = geohex2.get_zone_by_location(lat, lon, level) code_zone = geohex2.get_zone_by_code(zone.code) self.assertEqual(zone, code_zone) def testLocationToXY(self): for i in range(10000): lat = 90 * random.random() lon = 90 * random.random() level = random.randint(0,24) zone = geohex2.get_zone_by_location(lat, lon, level) xy_zone = geohex2.get_zone_by_xy(zone.x, zone.y, zone.level) self.assertEqual(zone, xy_zone)
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×