rubybikes 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (118) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +12 -0
  3. data/CONTRIBUTING.md +33 -0
  4. data/LICENSE +662 -0
  5. data/NOTICE +10 -0
  6. data/PROVIDERS.md +123 -0
  7. data/README.md +108 -0
  8. data/RELEASING.md +44 -0
  9. data/data/ATTRIBUTION.txt +290 -0
  10. data/data/geojson/ch_cantons.json +53 -0
  11. data/data/geojson/japan_prefectures.json +49 -0
  12. data/data/geojson/penang.json +63 -0
  13. data/data/graphql/charichari.graphql +12 -0
  14. data/data/graphql/ganxeta.graphql +22 -0
  15. data/data/graphql/otp.graphql +68 -0
  16. data/data/providers.json +1 -0
  17. data/data/pybikes/aksu.json +49 -0
  18. data/data/pybikes/ambici.json +166 -0
  19. data/data/pybikes/baksi.json +41 -0
  20. data/data/pybikes/batumvelo.json +19 -0
  21. data/data/pybikes/bcycle.json +326 -0
  22. data/data/pybikes/beryl.json +195 -0
  23. data/data/pybikes/bicicard.json +205 -0
  24. data/data/pybikes/bicicas.json +20 -0
  25. data/data/pybikes/bicielx.json +19 -0
  26. data/data/pybikes/biciferrolterra.json +21 -0
  27. data/data/pybikes/bicimad.json +16 -0
  28. data/data/pybikes/bicincitta.json +1551 -0
  29. data/data/pybikes/bicing.json +37 -0
  30. data/data/pybikes/bikeshare_ie.json +46 -0
  31. data/data/pybikes/bikeu.json +17 -0
  32. data/data/pybikes/bixi.json +21 -0
  33. data/data/pybikes/bizkaibizi.json +105 -0
  34. data/data/pybikes/careem.json +40 -0
  35. data/data/pybikes/charichari.json +106 -0
  36. data/data/pybikes/chartered_bike.json +86 -0
  37. data/data/pybikes/clujbike.json +17 -0
  38. data/data/pybikes/cyclocity.json +211 -0
  39. data/data/pybikes/cyclopolis.json +78 -0
  40. data/data/pybikes/cykleo.json +39 -0
  41. data/data/pybikes/decobike.json +18 -0
  42. data/data/pybikes/derp.json +114 -0
  43. data/data/pybikes/deutschebahn.json +97 -0
  44. data/data/pybikes/digitransit.json +123 -0
  45. data/data/pybikes/docomo.json +215 -0
  46. data/data/pybikes/easybike.json +160 -0
  47. data/data/pybikes/ecovelo.json +307 -0
  48. data/data/pybikes/emovity.json +17 -0
  49. data/data/pybikes/encicla.json +17 -0
  50. data/data/pybikes/fifteen.json +50 -0
  51. data/data/pybikes/fsm.json +16 -0
  52. data/data/pybikes/ganxeta.json +20 -0
  53. data/data/pybikes/gbfs.json +1578 -0
  54. data/data/pybikes/gira.json +20 -0
  55. data/data/pybikes/gyorbike.json +19 -0
  56. data/data/pybikes/hellocycling.json +248 -0
  57. data/data/pybikes/joco.json +22 -0
  58. data/data/pybikes/keolis.json +22 -0
  59. data/data/pybikes/kolumbus.json +18 -0
  60. data/data/pybikes/lastenvelo.json +30 -0
  61. data/data/pybikes/linkbike.json +17 -0
  62. data/data/pybikes/meiob.json +18 -0
  63. data/data/pybikes/mobhis.json +43 -0
  64. data/data/pybikes/movus.json +72 -0
  65. data/data/pybikes/nextbike.json +2443 -0
  66. data/data/pybikes/nextbike_gbfs.json +5 -0
  67. data/data/pybikes/nubija.json +18 -0
  68. data/data/pybikes/open_source_bike_share.json +28 -0
  69. data/data/pybikes/open_source_bike_share_v2.json +17 -0
  70. data/data/pybikes/openmove.json +20 -0
  71. data/data/pybikes/ov_fiets.json +20 -0
  72. data/data/pybikes/pedalada.json +66 -0
  73. data/data/pybikes/publibike.json +127 -0
  74. data/data/pybikes/qrobici.json +20 -0
  75. data/data/pybikes/roovee.json +245 -0
  76. data/data/pybikes/samba.json +52 -0
  77. data/data/pybikes/sejong.json +19 -0
  78. data/data/pybikes/seoulbike.json +18 -0
  79. data/data/pybikes/sharedmobility.json +63 -0
  80. data/data/pybikes/slovnaft_bajk.json +21 -0
  81. data/data/pybikes/smartbike.json +28 -0
  82. data/data/pybikes/smoove.json +26 -0
  83. data/data/pybikes/soltrafego.json +39 -0
  84. data/data/pybikes/tashu.json +20 -0
  85. data/data/pybikes/urbansharing.json +22 -0
  86. data/data/pybikes/velib.json +23 -0
  87. data/data/pybikes/velobike_kz.json +17 -0
  88. data/data/pybikes/velok.json +16 -0
  89. data/data/pybikes/veloway.json +20 -0
  90. data/data/pybikes/weelo.json +45 -0
  91. data/data/pybikes/wegoshare.json +141 -0
  92. data/data/pybikes/xian.json +19 -0
  93. data/data/pybikes/yelovelo.json +22 -0
  94. data/data/pybikes/youbike.json +173 -0
  95. data/data/upstream.json +7 -0
  96. data/lib/rubybikes/engine.rb +3 -0
  97. data/lib/rubybikes/native/authenticated.rb +95 -0
  98. data/lib/rubybikes/native/engine.rb +103 -0
  99. data/lib/rubybikes/native/gbfs.rb +169 -0
  100. data/lib/rubybikes/native/geometry.rb +53 -0
  101. data/lib/rubybikes/native/graphql.rb +135 -0
  102. data/lib/rubybikes/native/html_clients.rb +313 -0
  103. data/lib/rubybikes/native/json_providers.rb +174 -0
  104. data/lib/rubybikes/native/more_json.rb +126 -0
  105. data/lib/rubybikes/native/nextbike.rb +50 -0
  106. data/lib/rubybikes/native/provider.rb +84 -0
  107. data/lib/rubybikes/native/remaining_clients.rb +102 -0
  108. data/lib/rubybikes/native/response_cache.rb +78 -0
  109. data/lib/rubybikes/native/transport.rb +163 -0
  110. data/lib/rubybikes/native/xml_details.rb +159 -0
  111. data/lib/rubybikes/native.rb +30 -0
  112. data/lib/rubybikes/version.rb +5 -0
  113. data/lib/rubybikes.rb +201 -0
  114. data/sig/external.rbs +30 -0
  115. data/sig/manifest.yaml +8 -0
  116. data/sig/native.rbs +230 -0
  117. data/sig/rubybikes.rbs +143 -0
  118. metadata +230 -0
@@ -0,0 +1,215 @@
1
+ {
2
+ "instances": [
3
+ {
4
+ "uid": 47,
5
+ "tag": "docomo-cycle-okinawa",
6
+ "meta": {
7
+ "city": "沖縄県 (Okinawa)",
8
+ "name": "Docomo Bike Share Okinawa",
9
+ "country": "JP",
10
+ "latitude": 26.2097,
11
+ "longitude": 127.6841
12
+ }
13
+ },
14
+ {
15
+ "uid": 34,
16
+ "tag": "docomo-cycle-hiroshima",
17
+ "meta": {
18
+ "city": "広島県 (Hiroshima)",
19
+ "name": "Docomo Bike Share Hiroshima",
20
+ "country": "JP",
21
+ "latitude": 34.3904,
22
+ "longitude": 132.4527
23
+ }
24
+ },
25
+ {
26
+ "uid": 33,
27
+ "tag": "docomo-cycle-okayama",
28
+ "meta": {
29
+ "city": "岡山県 (Okayama)",
30
+ "name": "Docomo Bike Share Okayama",
31
+ "country": "JP",
32
+ "latitude": 34.6030,
33
+ "longitude": 133.7650
34
+ }
35
+ },
36
+ {
37
+ "uid": 28,
38
+ "tag": "docomo-cycle-hyogo",
39
+ "meta": {
40
+ "city": "兵庫県 (Hyōgo)",
41
+ "name": "Docomo Bike Share Hyōgo",
42
+ "country": "JP",
43
+ "latitude": 34.8147,
44
+ "longitude": 134.6890
45
+ }
46
+ },
47
+ {
48
+ "uid": 27,
49
+ "tag": "docomo-cycle-osaka",
50
+ "meta": {
51
+ "city": "大阪府 (Osaka)",
52
+ "name": "Docomo Bike Share Osaka",
53
+ "country": "JP",
54
+ "latitude": 34.6930,
55
+ "longitude": 135.5028
56
+ }
57
+ },
58
+ {
59
+ "uid": 26,
60
+ "tag": "docomo-cycle-kyoto",
61
+ "meta": {
62
+ "city": "京都府 (Kyoto)",
63
+ "name": "Docomo Bike Share Kyoto",
64
+ "country": "JP",
65
+ "latitude": 35.0001,
66
+ "longitude": 135.7587
67
+ }
68
+ },
69
+ {
70
+ "uid": 25,
71
+ "tag": "docomo-cycle-shiga",
72
+ "meta": {
73
+ "city": "滋賀県 (Shiga)",
74
+ "name": "Docomo Bike Share Shiga",
75
+ "country": "JP",
76
+ "latitude": 35.03780,
77
+ "longitude": 135.9801
78
+ }
79
+ },
80
+ {
81
+ "uid": 17,
82
+ "tag": "docomo-cycle-ishikawa",
83
+ "meta": {
84
+ "city": "石川県 (Ishikawa)",
85
+ "name": "Docomo Bike Share Ishikawa",
86
+ "country": "JP",
87
+ "latitude": 36.5594,
88
+ "longitude": 136.6580
89
+ }
90
+ },
91
+ {
92
+ "uid": 21,
93
+ "tag": "docomo-cycle-gifu",
94
+ "meta": {
95
+ "city": "岐阜県 (Gifu)",
96
+ "name": "Docomo Bike Share Gifu",
97
+ "country": "JP",
98
+ "latitude": 35.4512,
99
+ "longitude": 137.02627
100
+ }
101
+ },
102
+ {
103
+ "uid": 23,
104
+ "tag": "docomo-cycle-aichi",
105
+ "meta": {
106
+ "city": "愛知県 (Aichi)",
107
+ "name": "Docomo Bike Share Aichi",
108
+ "country": "JP",
109
+ "latitude": 35.1835,
110
+ "longitude": 136.9040
111
+ }
112
+ },
113
+ {
114
+ "uid": 18,
115
+ "tag": "docomo-cycle-fukui",
116
+ "meta": {
117
+ "city": "福井県 (Fukui)",
118
+ "name": "Docomo Bike Share Fukui",
119
+ "country": "JP",
120
+ "latitude": 36.0665,
121
+ "longitude": 136.2138
122
+ }
123
+ },
124
+ {
125
+ "uid": 19,
126
+ "tag": "docomo-cycle-yamanashi",
127
+ "meta": {
128
+ "city": "山梨県 (Yamanashi)",
129
+ "name": "Docomo Bike Share Yamanashi",
130
+ "country": "JP",
131
+ "latitude": 35.6848,
132
+ "longitude": 138.7330
133
+ }
134
+ },
135
+ {
136
+ "uid": 15,
137
+ "tag": "docomo-cycle-niigata",
138
+ "meta": {
139
+ "city": "新潟県 (Niigata)",
140
+ "name": "Docomo Bike Share Niigata",
141
+ "country": "JP",
142
+ "latitude": 37.9186,
143
+ "longitude": 139.0488
144
+ }
145
+ },
146
+ {
147
+ "uid": 14,
148
+ "tag": "docomo-cycle-kanagawa",
149
+ "meta": {
150
+ "city": "神奈川県 (Kanagawa)",
151
+ "name": "Docomo Bike Share Kanagawa",
152
+ "country": "JP",
153
+ "latitude": 35.4504,
154
+ "longitude": 139.6250
155
+ }
156
+ },
157
+ {
158
+ "uid": 8,
159
+ "tag": "docomo-cycle-ibaraki",
160
+ "meta": {
161
+ "city": "茨城県 (Ibaraki)",
162
+ "name": "Docomo Bike Share Ibaraki",
163
+ "country": "JP",
164
+ "latitude": 36.3732,
165
+ "longitude": 140.2549
166
+ }
167
+ },
168
+ {
169
+ "uid": 4,
170
+ "tag": "docomo-cycle-miyagi",
171
+ "meta": {
172
+ "city": "茨城県 (Miyagi)",
173
+ "name": "Docomo Bike Share Miyagi",
174
+ "country": "JP",
175
+ "latitude": 38.2607,
176
+ "longitude": 140.8814
177
+ }
178
+ },
179
+ {
180
+ "uid": 44,
181
+ "tag": "docomo-cycle-oita",
182
+ "meta": {
183
+ "city": "大分県 (Ōita)",
184
+ "name": "Docomo Bike Share Ōita",
185
+ "country": "JP",
186
+ "latitude": 33.2393,
187
+ "longitude": 131.6124
188
+ }
189
+ },
190
+ {
191
+ "uid": 46,
192
+ "tag": "docomo-cycle-kagoshima",
193
+ "meta": {
194
+ "city": "鹿児島県 (Kagoshima)",
195
+ "name": "Docomo Bike Share Kagoshima",
196
+ "country": "JP",
197
+ "latitude": 31.588,
198
+ "longitude": 130.5547
199
+ }
200
+ },
201
+ {
202
+ "uid": 29,
203
+ "tag": "docomo-cycle-nara",
204
+ "meta": {
205
+ "city": "奈良県 (Nara)",
206
+ "name": "Docomo Bike Share Nara",
207
+ "country": "JP",
208
+ "latitude": 34.6839,
209
+ "longitude": 135.8087
210
+ }
211
+ }
212
+ ],
213
+ "system": "docomo",
214
+ "class": "Docomo"
215
+ }
@@ -0,0 +1,160 @@
1
+ {
2
+ "class": {
3
+ "EasyBike": {
4
+ "instances": [
5
+ {
6
+ "tag": "easybike-didymoteicho",
7
+ "meta": {
8
+ "latitude": 41.3502539849,
9
+ "city": "Didymoteicho",
10
+ "name": "EasyBike",
11
+ "longitude": 26.4972960949,
12
+ "country": "GR"
13
+ },
14
+ "city_uid": "didymoteicho"
15
+ },
16
+ {
17
+ "tag": "easybike-glyfada",
18
+ "meta": {
19
+ "latitude": 37.8715809825,
20
+ "city": "Glyfada",
21
+ "name": "EasyBike",
22
+ "longitude": 23.7355544376,
23
+ "country": "GR"
24
+ },
25
+ "city_uid": "glyfada"
26
+ },
27
+ {
28
+ "tag": "easybike-igoumenitsa",
29
+ "meta": {
30
+ "latitude": 39.5005770633,
31
+ "city": "Igoumenitsa",
32
+ "name": "EasyBike",
33
+ "longitude": 20.2635206985,
34
+ "country": "GR"
35
+ },
36
+ "city_uid": "igoumenitsa"
37
+ },
38
+ {
39
+ "tag": "easybike-ioannina",
40
+ "meta": {
41
+ "latitude": 39.6639818,
42
+ "city": "Ioannina",
43
+ "name": "EasyBike",
44
+ "longitude": 20.8522784,
45
+ "country": "GR"
46
+ },
47
+ "city_uid": "ioannina"
48
+ },
49
+ {
50
+ "tag": "easybike-karditsa",
51
+ "meta": {
52
+ "latitude": 39.3634604,
53
+ "city": "Karditsa",
54
+ "name": "EasyBike",
55
+ "longitude": 21.9211192,
56
+ "country": "GR"
57
+ },
58
+ "city_uid": "karditsa"
59
+ },
60
+ {
61
+ "tag": "easybike-kinouria",
62
+ "meta": {
63
+ "latitude": 37.1476704305,
64
+ "city": "Kinouria",
65
+ "name": "EasyBike",
66
+ "longitude": 22.8933729935,
67
+ "country": "GR"
68
+ },
69
+ "city_uid": "kinouria"
70
+ },
71
+ {
72
+ "tag": "easybike-komotini",
73
+ "meta": {
74
+ "latitude": 41.117833,
75
+ "city": "Komotini",
76
+ "name": "EasyBike",
77
+ "longitude": 25.4041307,
78
+ "country": "GR"
79
+ },
80
+ "city_uid": "komotini"
81
+ },
82
+ {
83
+ "tag": "easybike-patra",
84
+ "meta": {
85
+ "latitude": 38.2410966371,
86
+ "city": "Patra",
87
+ "name": "EasyBike",
88
+ "longitude": 21.7259683418,
89
+ "country": "GR"
90
+ },
91
+ "city_uid": "patra"
92
+ },
93
+ {
94
+ "tag": "easybike-rethymno",
95
+ "meta": {
96
+ "latitude": 35.3667571777,
97
+ "city": "Rethymno",
98
+ "name": "EasyBike",
99
+ "longitude": 24.4832845736,
100
+ "country": "GR"
101
+ },
102
+ "city_uid": "rethymno"
103
+ },
104
+ {
105
+ "tag": "easybike-samos",
106
+ "meta": {
107
+ "latitude": 37.754065919,
108
+ "city": "Samos",
109
+ "name": "EasyBike",
110
+ "longitude": 26.9787850189,
111
+ "country": "GR"
112
+ },
113
+ "city_uid": "samos"
114
+ },
115
+ {
116
+ "tag": "easybike-mani",
117
+ "meta": {
118
+ "latitude": 41.4097472,
119
+ "city": "Mani",
120
+ "name": "EasyBike",
121
+ "longitude": 26.4024952,
122
+ "country": "GR"
123
+ },
124
+ "city_uid": "anatoliki_mani"
125
+ },
126
+ {
127
+ "tag": "athens-bikes",
128
+ "meta": {
129
+ "latitude": 37.9838,
130
+ "city": "Athens",
131
+ "name": "AthensBikes",
132
+ "longitude": 23.7275,
133
+ "country": "GR"
134
+ },
135
+ "city_uid": "athens",
136
+ "bbox": [
137
+ [38.0328563, 23.7896925],
138
+ [37.9488181, 23.6869861]
139
+ ]
140
+ }
141
+ ]
142
+ },
143
+ "EasyBikeNew": {
144
+ "instances": [
145
+ {
146
+ "tag": "thessbike",
147
+ "city_uid": "tbo",
148
+ "meta": {
149
+ "latitude": 40.6403167,
150
+ "city": "Thessaloniki",
151
+ "name": "ThessBike",
152
+ "longitude": 22.9352716,
153
+ "country": "GR"
154
+ }
155
+ }
156
+ ]
157
+ }
158
+ },
159
+ "system": "easybike"
160
+ }
@@ -0,0 +1,307 @@
1
+ {
2
+ "system": "ecovelo",
3
+ "class": {
4
+ "Ecovelo": {
5
+ "instances": [
6
+ {
7
+ "tag": "rubis-velo",
8
+ "meta": {
9
+ "city": "Bourg-en-Bresse",
10
+ "name": "Rubis'Vélo",
11
+ "latitude": 46.2056,
12
+ "longitude": 5.2289,
13
+ "country": "FR"
14
+ },
15
+ "dataset": "beb"
16
+ },
17
+ {
18
+ "tag": "zebullo",
19
+ "meta": {
20
+ "city": "Reims",
21
+ "name": "ZébullO",
22
+ "ebikes": true,
23
+ "latitude": 49.2628,
24
+ "longitude": 4.0347,
25
+ "country": "FR"
26
+ },
27
+ "dataset": "zebullo"
28
+ },
29
+ {
30
+ "tag": "tanlib",
31
+ "meta": {
32
+ "city": "Niort",
33
+ "name": "Vélo tanlib",
34
+ "ebikes": true,
35
+ "latitude": 46.3258,
36
+ "longitude": -0.4606,
37
+ "country": "FR"
38
+ },
39
+ "dataset": "tanlib"
40
+ },
41
+ {
42
+ "tag": "marseillan",
43
+ "meta": {
44
+ "city": "Marseillan",
45
+ "name": "Marseillan vélo libre-service",
46
+ "latitude": 43.3572,
47
+ "longitude": 3.5283,
48
+ "country": "FR"
49
+ },
50
+ "dataset": "marseillan"
51
+ },
52
+ {
53
+ "tag": "velectin",
54
+ "meta": {
55
+ "city": "Calais",
56
+ "name": "Velect’in",
57
+ "ebikes": true,
58
+ "latitude": 50.948056,
59
+ "longitude": 1.856389,
60
+ "country": "FR"
61
+ },
62
+ "dataset": "calais"
63
+ },
64
+ {
65
+ "tag": "tlp-velo",
66
+ "meta": {
67
+ "city": "Tarbes, Lourdes",
68
+ "name": "Tarbes et Lourdes vls",
69
+ "ebikes": true,
70
+ "latitude": 43.23,
71
+ "longitude": 0.07,
72
+ "country": "FR"
73
+ },
74
+ "dataset": "tlpmobilites"
75
+ },
76
+ {
77
+ "tag": "via-velo",
78
+ "meta": {
79
+ "city": "Val d'Ille-Aubigné",
80
+ "name": "VIA Vélo",
81
+ "ebikes": true,
82
+ "latitude": 48.2181,
83
+ "longitude": -1.6947,
84
+ "country": "FR"
85
+ },
86
+ "dataset": "via"
87
+ },
88
+ {
89
+ "tag": "velocite-laon",
90
+ "meta": {
91
+ "city": "Laon",
92
+ "name": "Vélo'Cité",
93
+ "ebikes": true,
94
+ "latitude": 49.5639,
95
+ "longitude": 3.6244,
96
+ "country": "FR"
97
+ },
98
+ "dataset": "velocite"
99
+ },
100
+ {
101
+ "tag": "velo-baulois",
102
+ "meta": {
103
+ "city": "La Baule-Escoublac",
104
+ "name": "Le Vélo Baulois",
105
+ "ebikes": true,
106
+ "latitude": 47.2867,
107
+ "longitude": -2.3908,
108
+ "country": "FR"
109
+ },
110
+ "dataset": "labaule"
111
+ },
112
+ {
113
+ "tag": "velyceo",
114
+ "meta": {
115
+ "city": "Saint-Nazaire",
116
+ "name": "vélYcéo",
117
+ "ebikes": true,
118
+ "latitude": 47.2806,
119
+ "longitude": -2.2086,
120
+ "country": "FR"
121
+ },
122
+ "dataset": "velyceo"
123
+ },
124
+ {
125
+ "tag": "le-marcel",
126
+ "meta": {
127
+ "city": "Troyes",
128
+ "name": "Le Marcel",
129
+ "ebikes": true,
130
+ "latitude": 48.2997,
131
+ "longitude": 4.0792,
132
+ "country": "FR"
133
+ },
134
+ "dataset": "lemarcel"
135
+ },
136
+ {
137
+ "tag": "semo",
138
+ "meta": {
139
+ "city": "Communauté d'agglomération Seine-Eure",
140
+ "name": "semo",
141
+ "latitude": 49.22,
142
+ "longitude": 1.17,
143
+ "country": "FR"
144
+ },
145
+ "dataset": "semo"
146
+ },
147
+ {
148
+ "tag": "cyclovis",
149
+ "meta": {
150
+ "city": "Soissons",
151
+ "name": "Cyclovis",
152
+ "ebikes": true,
153
+ "latitude": 49.3817,
154
+ "longitude": 3.3236,
155
+ "country": "FR"
156
+ },
157
+ "dataset": "cyclovis"
158
+ },
159
+ {
160
+ "tag": "tempo-velo",
161
+ "meta": {
162
+ "city": "Agen",
163
+ "name": "Tempo Vélo",
164
+ "ebikes": true,
165
+ "latitude": 44.2049,
166
+ "longitude": 0.6212,
167
+ "country": "FR"
168
+ },
169
+ "dataset": "tempovelo"
170
+ },
171
+ {
172
+ "tag": "chantrerie-captainbike",
173
+ "meta": {
174
+ "city": "La Chantrerie, Nantes",
175
+ "name": "Chantrerie VLS (Captain Bike)",
176
+ "ebikes": true,
177
+ "scooters": true,
178
+ "latitude": 47.2868203,
179
+ "longitude": -1.5210917,
180
+ "country": "FR"
181
+ },
182
+ "dataset": "chantrerie"
183
+ },
184
+ {
185
+ "tag": "petites-reines",
186
+ "meta": {
187
+ "city": "Les Sables d'Olonne",
188
+ "name": "Les Petites Reines",
189
+ "ebikes": true,
190
+ "latitude": 46.4971,
191
+ "longitude": -1.7805,
192
+ "country": "FR"
193
+ },
194
+ "dataset": "petitesreines"
195
+ },
196
+ {
197
+ "tag": "cyclolibre",
198
+ "meta": {
199
+ "city": "Carcassonne",
200
+ "name": "CYCLOlibre",
201
+ "ebikes": true,
202
+ "latitude": 43.2127,
203
+ "longitude": 2.3492,
204
+ "country": "FR"
205
+ },
206
+ "dataset": "cyclolibre"
207
+ },
208
+ {
209
+ "tag": "karuvelo",
210
+ "meta": {
211
+ "city": "Pointe-à-Pitre",
212
+ "name": "Karu'Vélo",
213
+ "ebikes": true,
214
+ "latitude": 16.2411,
215
+ "longitude": -61.5331,
216
+ "country": "FR"
217
+ },
218
+ "dataset": "karu"
219
+ },
220
+ {
221
+ "tag": "velibeo",
222
+ "meta": {
223
+ "city": "Brive-la-Gaillarde",
224
+ "name": "Vélibéo",
225
+ "ebikes": true,
226
+ "latitude": 45.1583,
227
+ "longitude": 1.5321,
228
+ "country": "FR"
229
+ },
230
+ "dataset": "velibeo"
231
+ },
232
+ {
233
+ "tag": "cyclam",
234
+ "meta": {
235
+ "city": "Ardenne Métropole",
236
+ "name": "Cycl’AM",
237
+ "ebikes": true,
238
+ "latitude": 49.7719,
239
+ "longitude": 4.7161,
240
+ "country": "FR"
241
+ },
242
+ "dataset": "cyclam"
243
+ },
244
+ {
245
+ "tag": "perivelo",
246
+ "meta": {
247
+ "city": "Grand Périgueux",
248
+ "name": "Périvélo",
249
+ "ebikes": true,
250
+ "latitude": 45.1929,
251
+ "longitude": 0.7217,
252
+ "country": "FR"
253
+ },
254
+ "dataset": "perivelo"
255
+ },
256
+ {
257
+ "tag": "velodaqui",
258
+ "meta": {
259
+ "city": "Argelès-sur-Mer",
260
+ "name": "Vélos d’Aquí",
261
+ "ebikes": true,
262
+ "latitude": 42.5449,
263
+ "longitude": 3.0235,
264
+ "country": "FR"
265
+ },
266
+ "dataset": "velodaqui"
267
+ },
268
+ {
269
+ "tag": "choletbus",
270
+ "meta": {
271
+ "city": "Cholet",
272
+ "name": "Choletbus 2 roues",
273
+ "ebikes": true,
274
+ "latitude": 47.06,
275
+ "longitude": -0.8783,
276
+ "country": "FR"
277
+ },
278
+ "dataset": "choletbus"
279
+ },
280
+ {
281
+ "tag": "altervelo",
282
+ "meta": {
283
+ "city": "Saint-Pierre",
284
+ "name": "alterVélo libre service",
285
+ "ebikes": true,
286
+ "latitude": -21.3414,
287
+ "longitude": 55.4777,
288
+ "country": "FR"
289
+ },
290
+ "dataset": "altervelo"
291
+ },
292
+ {
293
+ "tag": "nemovelo",
294
+ "meta": {
295
+ "city": "Nîmes",
296
+ "name": "NemoVélo",
297
+ "ebikes": true,
298
+ "latitude": 43.83819,
299
+ "longitude": 4.35997,
300
+ "country": "FR"
301
+ },
302
+ "dataset": "nemovelo"
303
+ }
304
+ ]
305
+ }
306
+ }
307
+ }