地理院タイルを使いたいのである。
外歩きのお供には、余計な情報が少なくて標高と地形が読みやすい地理院地図の方がふさわしいのである。
なんだ簡単だ、と:
1 # -*- coding: utf-8 -*-
2 import sys
3 # please edit next line for your environment.
4 sys.path.append("/sdcard/kivy-my-site-packages")
5
6 from kivy.lang import Builder
7 from kivy.app import App
8 from kivy.properties import StringProperty
9 from kivy.uix.boxlayout import BoxLayout
10 from kivy.garden.mapview import MapView, MapMarker, MapSource
11
12 Builder.load_string('''
13 <GardenMapviewDemo>:
14 orientation: 'vertical'
15
16 detail: detail
17 map: map
18
19 RstDocument:
20 id: detail
21 text: root.detail_text
22 size_hint: (1, None)
23 height: 300
24
25 MapView:
26 id: map
27 zoom: 17
28
29 Button:
30 id: draw_btn
31 text: 'draw'
32 on_press: root.draw()
33 size_hint: (1, None)
34 height: self.texture_size[1] * 2
35 ''')
36
37 class GardenMapviewDemo(BoxLayout):
38 detail_text = StringProperty()
39
40 def __init__(self):
41 super(GardenMapviewDemo, self).__init__()
42 self.map.map_source = MapSource(
43 url='http://cyberjapandata.gsi.go.jp/xyz/std/{z}/{x}/{y}.png',
44 attribution='http://maps.gsi.go.jp/development/ichiran.html')
45
46 def draw(self, *args):
47 lat, lon = 35.624720, 139.775467
48 self.map.center_on(lat, lon)
49 self.map.add_marker(
50 MapMarker(lon=lon, lat=lat))
51 self.detail_text = """
52 Mapview Demo
53 ============
54 center_on({}, {})
55 """.format(lat, lon)
56
57 class GardenMapviewDemoApp(App):
58 def build(self):
59 return GardenMapviewDemo()
60
61
62 if __name__ == '__main__':
63 GardenMapviewDemoApp().run()
(地理院タイルの一覧については地理院タイル一覧参照。)
と思うだろう? #17 参照。garden/mapview/mapview/downloader.py に一部手を入れれば問題なく使えます、てこと。