libgd-gis 0.1.2 → 0.2.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 (1140) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +80 -31
  3. data/examples/argentina_cities.rb +89 -0
  4. data/examples/argentina_museums.rb +70 -0
  5. data/examples/asia-peaks.rb +42 -0
  6. data/examples/avenue_ramirez.rb +44 -0
  7. data/examples/europe-peaks.rb +29 -0
  8. data/examples/flag.png +0 -0
  9. data/examples/ice-cream-shops.rb +37 -0
  10. data/examples/map.png +0 -0
  11. data/examples/mountains.rb +98 -0
  12. data/examples/output/argentina.png +0 -0
  13. data/examples/output/argentina_localidades.png +0 -0
  14. data/examples/parana-city.rb +29 -0
  15. data/examples/parana.osm +186897 -0
  16. data/examples/parana.png +0 -0
  17. data/examples/parana_museums.rb +48 -0
  18. data/examples/parana_streets.geojson +1 -0
  19. data/examples/parana_streets.rb +48 -0
  20. data/examples/streets.geojson +1 -0
  21. data/examples/streets.png +0 -0
  22. data/examples/streets_geojson.rb +33 -0
  23. data/examples/the_america_peaks.rb +43 -0
  24. data/examples/tmp/tiles/7_37_78.png +0 -0
  25. data/examples/tmp/tiles/7_37_79.png +0 -0
  26. data/examples/tmp/tiles/7_37_80.png +0 -0
  27. data/examples/tmp/tiles/7_37_81.png +0 -0
  28. data/examples/tmp/tiles/7_37_82.png +0 -0
  29. data/examples/tmp/tiles/7_37_83.png +0 -0
  30. data/examples/tmp/tiles/7_37_84.png +0 -0
  31. data/examples/tmp/tiles/7_37_85.png +0 -0
  32. data/examples/tmp/tiles/7_37_86.png +0 -0
  33. data/examples/tmp/tiles/7_38_71.png +0 -0
  34. data/examples/tmp/tiles/7_38_72.png +0 -0
  35. data/examples/tmp/tiles/7_38_73.png +0 -0
  36. data/examples/tmp/tiles/7_38_74.png +0 -0
  37. data/examples/tmp/tiles/7_38_75.png +0 -0
  38. data/examples/tmp/tiles/7_38_76.png +0 -0
  39. data/examples/tmp/tiles/7_38_77.png +0 -0
  40. data/examples/tmp/tiles/7_38_78.png +0 -0
  41. data/examples/tmp/tiles/7_38_79.png +0 -0
  42. data/examples/tmp/tiles/7_38_80.png +0 -0
  43. data/examples/tmp/tiles/7_38_81.png +0 -0
  44. data/examples/tmp/tiles/7_38_82.png +0 -0
  45. data/examples/tmp/tiles/7_38_83.png +0 -0
  46. data/examples/tmp/tiles/7_38_84.png +0 -0
  47. data/examples/tmp/tiles/7_38_85.png +0 -0
  48. data/examples/tmp/tiles/7_38_86.png +0 -0
  49. data/examples/tmp/tiles/7_38_87.png +0 -0
  50. data/examples/tmp/tiles/7_39_71.png +0 -0
  51. data/examples/tmp/tiles/7_39_72.png +0 -0
  52. data/examples/tmp/tiles/7_39_73.png +0 -0
  53. data/examples/tmp/tiles/7_39_74.png +0 -0
  54. data/examples/tmp/tiles/7_39_75.png +0 -0
  55. data/examples/tmp/tiles/7_39_76.png +0 -0
  56. data/examples/tmp/tiles/7_39_77.png +0 -0
  57. data/examples/tmp/tiles/7_39_78.png +0 -0
  58. data/examples/tmp/tiles/7_39_79.png +0 -0
  59. data/examples/tmp/tiles/7_39_80.png +0 -0
  60. data/examples/tmp/tiles/7_39_81.png +0 -0
  61. data/examples/tmp/tiles/7_39_82.png +0 -0
  62. data/examples/tmp/tiles/7_39_83.png +0 -0
  63. data/examples/tmp/tiles/7_39_84.png +0 -0
  64. data/examples/tmp/tiles/7_39_85.png +0 -0
  65. data/examples/tmp/tiles/7_39_86.png +0 -0
  66. data/examples/tmp/tiles/7_39_87.png +0 -0
  67. data/examples/tmp/tiles/7_40_71.png +0 -0
  68. data/examples/tmp/tiles/7_40_72.png +0 -0
  69. data/examples/tmp/tiles/7_40_73.png +0 -0
  70. data/examples/tmp/tiles/7_40_74.png +0 -0
  71. data/examples/tmp/tiles/7_40_75.png +0 -0
  72. data/examples/tmp/tiles/7_40_76.png +0 -0
  73. data/examples/tmp/tiles/7_40_77.png +0 -0
  74. data/examples/tmp/tiles/7_40_78.png +0 -0
  75. data/examples/tmp/tiles/7_40_79.png +0 -0
  76. data/examples/tmp/tiles/7_40_80.png +0 -0
  77. data/examples/tmp/tiles/7_40_81.png +0 -0
  78. data/examples/tmp/tiles/7_40_82.png +0 -0
  79. data/examples/tmp/tiles/7_40_83.png +0 -0
  80. data/examples/tmp/tiles/7_40_86.png +0 -0
  81. data/examples/tmp/tiles/7_40_87.png +0 -0
  82. data/examples/tmp/tiles/7_41_71.png +0 -0
  83. data/examples/tmp/tiles/7_41_72.png +0 -0
  84. data/examples/tmp/tiles/7_41_73.png +0 -0
  85. data/examples/tmp/tiles/7_41_74.png +0 -0
  86. data/examples/tmp/tiles/7_41_75.png +0 -0
  87. data/examples/tmp/tiles/7_41_76.png +0 -0
  88. data/examples/tmp/tiles/7_41_77.png +0 -0
  89. data/examples/tmp/tiles/7_41_78.png +0 -0
  90. data/examples/tmp/tiles/7_41_79.png +0 -0
  91. data/examples/tmp/tiles/7_41_80.png +0 -0
  92. data/examples/tmp/tiles/7_41_81.png +0 -0
  93. data/examples/tmp/tiles/7_41_87.png +0 -0
  94. data/examples/tmp/tiles/7_42_71.png +0 -0
  95. data/examples/tmp/tiles/7_42_72.png +0 -0
  96. data/examples/tmp/tiles/7_42_73.png +0 -0
  97. data/examples/tmp/tiles/7_42_74.png +0 -0
  98. data/examples/tmp/tiles/7_42_75.png +0 -0
  99. data/examples/tmp/tiles/7_42_76.png +0 -0
  100. data/examples/tmp/tiles/7_42_77.png +0 -0
  101. data/examples/tmp/tiles/7_42_78.png +0 -0
  102. data/examples/tmp/tiles/7_42_79.png +0 -0
  103. data/examples/tmp/tiles/7_42_85.png +0 -0
  104. data/examples/tmp/tiles/7_43_71.png +0 -0
  105. data/examples/tmp/tiles/7_43_72.png +0 -0
  106. data/examples/tmp/tiles/7_43_73.png +0 -0
  107. data/examples/tmp/tiles/7_43_74.png +0 -0
  108. data/examples/tmp/tiles/7_43_75.png +0 -0
  109. data/examples/tmp/tiles/7_43_76.png +0 -0
  110. data/examples/tmp/tiles/7_43_77.png +0 -0
  111. data/examples/tmp/tiles/7_43_78.png +0 -0
  112. data/examples/tmp/tiles/7_43_85.png +0 -0
  113. data/examples/tmp/tiles/7_44_71.png +0 -0
  114. data/examples/tmp/tiles/7_44_72.png +0 -0
  115. data/examples/tmp/tiles/7_44_73.png +0 -0
  116. data/examples/tmp/tiles/7_44_74.png +0 -0
  117. data/examples/tmp/tiles/7_44_75.png +0 -0
  118. data/examples/tmp/tiles/7_44_76.png +0 -0
  119. data/examples/tmp/tiles/7_44_77.png +0 -0
  120. data/examples/tmp/tiles/carto_light_15_10871_19430.png +0 -0
  121. data/examples/tmp/tiles/carto_light_15_10871_19431.png +0 -0
  122. data/examples/tmp/tiles/carto_light_15_10871_19432.png +0 -0
  123. data/examples/tmp/tiles/carto_light_15_10871_19433.png +0 -0
  124. data/examples/tmp/tiles/carto_light_15_10871_19434.png +0 -0
  125. data/examples/tmp/tiles/carto_light_15_10871_19435.png +0 -0
  126. data/examples/tmp/tiles/carto_light_15_10872_19430.png +0 -0
  127. data/examples/tmp/tiles/carto_light_15_10872_19431.png +0 -0
  128. data/examples/tmp/tiles/carto_light_15_10872_19432.png +0 -0
  129. data/examples/tmp/tiles/carto_light_15_10872_19433.png +0 -0
  130. data/examples/tmp/tiles/carto_light_15_10872_19434.png +0 -0
  131. data/examples/tmp/tiles/carto_light_15_10872_19435.png +0 -0
  132. data/examples/tmp/tiles/carto_light_15_10873_19430.png +0 -0
  133. data/examples/tmp/tiles/carto_light_15_10873_19431.png +0 -0
  134. data/examples/tmp/tiles/carto_light_15_10873_19432.png +0 -0
  135. data/examples/tmp/tiles/carto_light_15_10873_19433.png +0 -0
  136. data/examples/tmp/tiles/carto_light_15_10873_19434.png +0 -0
  137. data/examples/tmp/tiles/carto_light_15_10873_19435.png +0 -0
  138. data/examples/tmp/tiles/carto_light_15_10874_19430.png +0 -0
  139. data/examples/tmp/tiles/carto_light_15_10874_19431.png +0 -0
  140. data/examples/tmp/tiles/carto_light_15_10874_19432.png +0 -0
  141. data/examples/tmp/tiles/carto_light_15_10874_19433.png +0 -0
  142. data/examples/tmp/tiles/carto_light_15_10874_19434.png +0 -0
  143. data/examples/tmp/tiles/carto_light_15_10874_19435.png +0 -0
  144. data/examples/tmp/tiles/carto_light_15_10875_19430.png +0 -0
  145. data/examples/tmp/tiles/carto_light_15_10875_19431.png +0 -0
  146. data/examples/tmp/tiles/carto_light_15_10875_19432.png +0 -0
  147. data/examples/tmp/tiles/carto_light_15_10875_19433.png +0 -0
  148. data/examples/tmp/tiles/carto_light_15_10875_19434.png +0 -0
  149. data/examples/tmp/tiles/carto_light_15_10875_19435.png +0 -0
  150. data/examples/tmp/tiles/carto_light_15_10876_19430.png +0 -0
  151. data/examples/tmp/tiles/carto_light_15_10876_19431.png +0 -0
  152. data/examples/tmp/tiles/carto_light_15_10876_19432.png +0 -0
  153. data/examples/tmp/tiles/carto_light_15_10876_19433.png +0 -0
  154. data/examples/tmp/tiles/carto_light_15_10876_19434.png +0 -0
  155. data/examples/tmp/tiles/carto_light_15_10876_19435.png +0 -0
  156. data/examples/tmp/tiles/carto_light_15_10877_19430.png +0 -0
  157. data/examples/tmp/tiles/carto_light_15_10877_19431.png +0 -0
  158. data/examples/tmp/tiles/carto_light_15_10877_19432.png +0 -0
  159. data/examples/tmp/tiles/carto_light_15_10877_19433.png +0 -0
  160. data/examples/tmp/tiles/carto_light_15_10877_19434.png +0 -0
  161. data/examples/tmp/tiles/carto_light_15_10877_19435.png +0 -0
  162. data/examples/tmp/tiles/carto_light_15_9693_18365.png +0 -0
  163. data/examples/tmp/tiles/carto_light_15_9693_18366.png +0 -0
  164. data/examples/tmp/tiles/carto_light_15_9693_18367.png +0 -0
  165. data/examples/tmp/tiles/carto_light_15_9693_18368.png +0 -0
  166. data/examples/tmp/tiles/carto_light_15_9693_18369.png +0 -0
  167. data/examples/tmp/tiles/carto_light_15_9693_18370.png +0 -0
  168. data/examples/tmp/tiles/carto_light_15_9693_18371.png +0 -0
  169. data/examples/tmp/tiles/carto_light_15_9693_18372.png +0 -0
  170. data/examples/tmp/tiles/carto_light_15_9693_18373.png +0 -0
  171. data/examples/tmp/tiles/carto_light_15_9693_18374.png +0 -0
  172. data/examples/tmp/tiles/carto_light_15_9693_18375.png +0 -0
  173. data/examples/tmp/tiles/carto_light_15_9693_18376.png +0 -0
  174. data/examples/tmp/tiles/carto_light_15_9693_18377.png +0 -0
  175. data/examples/tmp/tiles/carto_light_15_9693_18378.png +0 -0
  176. data/examples/tmp/tiles/carto_light_15_9693_18379.png +0 -0
  177. data/examples/tmp/tiles/carto_light_15_9693_18380.png +0 -0
  178. data/examples/tmp/tiles/carto_light_15_9693_18381.png +0 -0
  179. data/examples/tmp/tiles/carto_light_15_9693_18382.png +0 -0
  180. data/examples/tmp/tiles/carto_light_15_9693_18383.png +0 -0
  181. data/examples/tmp/tiles/carto_light_15_9693_18384.png +0 -0
  182. data/examples/tmp/tiles/carto_light_15_9693_18385.png +0 -0
  183. data/examples/tmp/tiles/carto_light_15_9693_18386.png +0 -0
  184. data/examples/tmp/tiles/carto_light_15_9693_18387.png +0 -0
  185. data/examples/tmp/tiles/carto_light_15_9693_18388.png +0 -0
  186. data/examples/tmp/tiles/carto_light_15_9693_18389.png +0 -0
  187. data/examples/tmp/tiles/carto_light_15_9693_18390.png +0 -0
  188. data/examples/tmp/tiles/carto_light_15_9693_18391.png +0 -0
  189. data/examples/tmp/tiles/carto_light_15_9693_18392.png +0 -0
  190. data/examples/tmp/tiles/carto_light_15_9693_18393.png +0 -0
  191. data/examples/tmp/tiles/carto_light_15_9693_18394.png +0 -0
  192. data/examples/tmp/tiles/carto_light_15_9693_18395.png +0 -0
  193. data/examples/tmp/tiles/carto_light_15_9693_18396.png +0 -0
  194. data/examples/tmp/tiles/carto_light_15_9693_18397.png +0 -0
  195. data/examples/tmp/tiles/carto_light_15_9693_18398.png +0 -0
  196. data/examples/tmp/tiles/carto_light_15_9693_18399.png +0 -0
  197. data/examples/tmp/tiles/carto_light_15_9693_18400.png +0 -0
  198. data/examples/tmp/tiles/carto_light_15_9693_18401.png +0 -0
  199. data/examples/tmp/tiles/carto_light_15_9693_18402.png +0 -0
  200. data/examples/tmp/tiles/carto_light_15_9693_18403.png +0 -0
  201. data/examples/tmp/tiles/carto_light_15_9693_18404.png +0 -0
  202. data/examples/tmp/tiles/carto_light_15_9693_18405.png +0 -0
  203. data/examples/tmp/tiles/carto_light_15_9693_18406.png +0 -0
  204. data/examples/tmp/tiles/carto_light_15_9693_18407.png +0 -0
  205. data/examples/tmp/tiles/carto_light_15_9693_18408.png +0 -0
  206. data/examples/tmp/tiles/carto_light_15_9693_18409.png +0 -0
  207. data/examples/tmp/tiles/carto_light_15_9693_18410.png +0 -0
  208. data/examples/tmp/tiles/carto_light_15_9693_18411.png +0 -0
  209. data/examples/tmp/tiles/carto_light_15_9693_18412.png +0 -0
  210. data/examples/tmp/tiles/carto_light_15_9693_18413.png +0 -0
  211. data/examples/tmp/tiles/carto_light_15_9693_18414.png +0 -0
  212. data/examples/tmp/tiles/carto_light_15_9693_18415.png +0 -0
  213. data/examples/tmp/tiles/carto_light_15_9693_18416.png +0 -0
  214. data/examples/tmp/tiles/carto_light_15_9693_18417.png +0 -0
  215. data/examples/tmp/tiles/carto_light_15_9693_18418.png +0 -0
  216. data/examples/tmp/tiles/carto_light_15_9693_18419.png +0 -0
  217. data/examples/tmp/tiles/carto_light_15_9693_18420.png +0 -0
  218. data/examples/tmp/tiles/carto_light_15_9693_18421.png +0 -0
  219. data/examples/tmp/tiles/carto_light_15_9693_18422.png +0 -0
  220. data/examples/tmp/tiles/carto_light_15_9693_18423.png +0 -0
  221. data/examples/tmp/tiles/carto_light_15_9693_18424.png +0 -0
  222. data/examples/tmp/tiles/carto_light_15_9693_18425.png +0 -0
  223. data/examples/tmp/tiles/carto_light_15_9693_18426.png +0 -0
  224. data/examples/tmp/tiles/carto_light_15_9693_18427.png +0 -0
  225. data/examples/tmp/tiles/carto_light_15_9693_18428.png +0 -0
  226. data/examples/tmp/tiles/carto_light_15_9693_18429.png +0 -0
  227. data/examples/tmp/tiles/carto_light_15_9693_18430.png +0 -0
  228. data/examples/tmp/tiles/carto_light_15_9693_18431.png +0 -0
  229. data/examples/tmp/tiles/carto_light_15_9693_18432.png +0 -0
  230. data/examples/tmp/tiles/carto_light_15_9693_18433.png +0 -0
  231. data/examples/tmp/tiles/carto_light_15_9693_18434.png +0 -0
  232. data/examples/tmp/tiles/carto_light_15_9693_18435.png +0 -0
  233. data/examples/tmp/tiles/carto_light_15_9693_18436.png +0 -0
  234. data/examples/tmp/tiles/carto_light_15_9693_18437.png +0 -0
  235. data/examples/tmp/tiles/carto_light_15_9693_18438.png +0 -0
  236. data/examples/tmp/tiles/carto_light_15_9693_18439.png +0 -0
  237. data/examples/tmp/tiles/carto_light_15_9693_18440.png +0 -0
  238. data/examples/tmp/tiles/carto_light_15_9693_18441.png +0 -0
  239. data/examples/tmp/tiles/carto_light_15_9693_18442.png +0 -0
  240. data/examples/tmp/tiles/carto_light_15_9693_18443.png +0 -0
  241. data/examples/tmp/tiles/carto_light_15_9693_18444.png +0 -0
  242. data/examples/tmp/tiles/carto_light_15_9693_18445.png +0 -0
  243. data/examples/tmp/tiles/carto_light_15_9693_18446.png +0 -0
  244. data/examples/tmp/tiles/carto_light_15_9693_18447.png +0 -0
  245. data/examples/tmp/tiles/carto_light_15_9693_18448.png +0 -0
  246. data/examples/tmp/tiles/carto_light_15_9693_18449.png +0 -0
  247. data/examples/tmp/tiles/carto_light_15_9693_18450.png +0 -0
  248. data/examples/tmp/tiles/carto_light_15_9693_18451.png +0 -0
  249. data/examples/tmp/tiles/carto_light_15_9693_18452.png +0 -0
  250. data/examples/tmp/tiles/carto_light_15_9693_18453.png +0 -0
  251. data/examples/tmp/tiles/carto_light_15_9693_18454.png +0 -0
  252. data/examples/tmp/tiles/carto_light_15_9693_18455.png +0 -0
  253. data/examples/tmp/tiles/carto_light_15_9693_18456.png +0 -0
  254. data/examples/tmp/tiles/carto_light_15_9693_18457.png +0 -0
  255. data/examples/tmp/tiles/carto_light_15_9693_18458.png +0 -0
  256. data/examples/tmp/tiles/carto_light_15_9693_18459.png +0 -0
  257. data/examples/tmp/tiles/carto_light_15_9693_18460.png +0 -0
  258. data/examples/tmp/tiles/carto_light_15_9693_18461.png +0 -0
  259. data/examples/tmp/tiles/carto_light_15_9693_18462.png +0 -0
  260. data/examples/tmp/tiles/carto_light_15_9693_18463.png +0 -0
  261. data/examples/tmp/tiles/carto_light_15_9693_18464.png +0 -0
  262. data/examples/tmp/tiles/carto_light_15_9693_18465.png +0 -0
  263. data/examples/tmp/tiles/carto_light_15_9693_18466.png +0 -0
  264. data/examples/tmp/tiles/carto_light_15_9693_18467.png +0 -0
  265. data/examples/tmp/tiles/carto_light_15_9693_18468.png +0 -0
  266. data/examples/tmp/tiles/carto_light_15_9693_18469.png +0 -0
  267. data/examples/tmp/tiles/carto_light_15_9693_18470.png +0 -0
  268. data/examples/tmp/tiles/carto_light_15_9693_18471.png +0 -0
  269. data/examples/tmp/tiles/carto_light_15_9693_18472.png +0 -0
  270. data/examples/tmp/tiles/carto_light_15_9693_18473.png +0 -0
  271. data/examples/tmp/tiles/carto_light_15_9693_18474.png +0 -0
  272. data/examples/tmp/tiles/carto_light_15_9693_18475.png +0 -0
  273. data/examples/tmp/tiles/carto_light_15_9693_18476.png +0 -0
  274. data/examples/tmp/tiles/carto_light_15_9693_18477.png +0 -0
  275. data/examples/tmp/tiles/carto_light_15_9693_18478.png +0 -0
  276. data/examples/tmp/tiles/carto_light_15_9693_18479.png +0 -0
  277. data/examples/tmp/tiles/carto_light_15_9693_18480.png +0 -0
  278. data/examples/tmp/tiles/carto_light_15_9693_18481.png +0 -0
  279. data/examples/tmp/tiles/carto_light_15_9693_18482.png +0 -0
  280. data/examples/tmp/tiles/carto_light_15_9693_18483.png +0 -0
  281. data/examples/tmp/tiles/carto_light_15_9693_18484.png +0 -0
  282. data/examples/tmp/tiles/carto_light_15_9693_18485.png +0 -0
  283. data/examples/tmp/tiles/carto_light_15_9693_18486.png +0 -0
  284. data/examples/tmp/tiles/carto_light_15_9693_18487.png +0 -0
  285. data/examples/tmp/tiles/carto_light_15_9693_18488.png +0 -0
  286. data/examples/tmp/tiles/carto_light_15_9693_18489.png +0 -0
  287. data/examples/tmp/tiles/carto_light_15_9693_18490.png +0 -0
  288. data/examples/tmp/tiles/carto_light_15_9693_18491.png +0 -0
  289. data/examples/tmp/tiles/carto_light_15_9693_18492.png +0 -0
  290. data/examples/tmp/tiles/carto_light_15_9693_18493.png +0 -0
  291. data/examples/tmp/tiles/carto_light_15_9693_18494.png +0 -0
  292. data/examples/tmp/tiles/carto_light_15_9693_18495.png +0 -0
  293. data/examples/tmp/tiles/carto_light_15_9693_18496.png +0 -0
  294. data/examples/tmp/tiles/carto_light_15_9693_18497.png +0 -0
  295. data/examples/tmp/tiles/carto_light_15_9693_18498.png +0 -0
  296. data/examples/tmp/tiles/carto_light_15_9693_18499.png +0 -0
  297. data/examples/tmp/tiles/carto_light_15_9693_18500.png +0 -0
  298. data/examples/tmp/tiles/carto_light_15_9693_18501.png +0 -0
  299. data/examples/tmp/tiles/carto_light_15_9693_18502.png +0 -0
  300. data/examples/tmp/tiles/carto_light_15_9693_18503.png +0 -0
  301. data/examples/tmp/tiles/carto_light_15_9693_18504.png +0 -0
  302. data/examples/tmp/tiles/carto_light_15_9693_18505.png +0 -0
  303. data/examples/tmp/tiles/carto_light_15_9693_18506.png +0 -0
  304. data/examples/tmp/tiles/carto_light_15_9693_18507.png +0 -0
  305. data/examples/tmp/tiles/carto_light_15_9693_18508.png +0 -0
  306. data/examples/tmp/tiles/carto_light_15_9693_18509.png +0 -0
  307. data/examples/tmp/tiles/carto_light_15_9693_18510.png +0 -0
  308. data/examples/tmp/tiles/carto_light_15_9693_18511.png +0 -0
  309. data/examples/tmp/tiles/carto_light_15_9693_18512.png +0 -0
  310. data/examples/tmp/tiles/carto_light_15_9693_18513.png +0 -0
  311. data/examples/tmp/tiles/carto_light_15_9693_18514.png +0 -0
  312. data/examples/tmp/tiles/carto_light_15_9693_18515.png +0 -0
  313. data/examples/tmp/tiles/carto_light_15_9693_18516.png +0 -0
  314. data/examples/tmp/tiles/carto_light_15_9693_18517.png +0 -0
  315. data/examples/tmp/tiles/carto_light_15_9693_18518.png +0 -0
  316. data/examples/tmp/tiles/carto_light_15_9693_18519.png +0 -0
  317. data/examples/tmp/tiles/carto_light_15_9693_18520.png +0 -0
  318. data/examples/tmp/tiles/carto_light_15_9693_18521.png +0 -0
  319. data/examples/tmp/tiles/carto_light_15_9693_18522.png +0 -0
  320. data/examples/tmp/tiles/carto_light_15_9693_18523.png +0 -0
  321. data/examples/tmp/tiles/carto_light_15_9693_18524.png +0 -0
  322. data/examples/tmp/tiles/carto_light_15_9693_18525.png +0 -0
  323. data/examples/tmp/tiles/carto_light_15_9693_18526.png +0 -0
  324. data/examples/tmp/tiles/carto_light_15_9693_18527.png +0 -0
  325. data/examples/tmp/tiles/carto_light_15_9693_18528.png +0 -0
  326. data/examples/tmp/tiles/carto_light_15_9693_18529.png +0 -0
  327. data/examples/tmp/tiles/carto_light_15_9693_18530.png +0 -0
  328. data/examples/tmp/tiles/carto_light_15_9693_18531.png +0 -0
  329. data/examples/tmp/tiles/carto_light_15_9693_18532.png +0 -0
  330. data/examples/tmp/tiles/carto_light_15_9693_18533.png +0 -0
  331. data/examples/tmp/tiles/carto_light_15_9693_18534.png +0 -0
  332. data/examples/tmp/tiles/carto_light_15_9693_18535.png +0 -0
  333. data/examples/tmp/tiles/carto_light_15_9693_18536.png +0 -0
  334. data/examples/tmp/tiles/carto_light_15_9693_18537.png +0 -0
  335. data/examples/tmp/tiles/carto_light_15_9693_18538.png +0 -0
  336. data/examples/tmp/tiles/carto_light_15_9693_18539.png +0 -0
  337. data/examples/tmp/tiles/carto_light_15_9693_18540.png +0 -0
  338. data/examples/tmp/tiles/carto_light_15_9693_18541.png +0 -0
  339. data/examples/tmp/tiles/carto_light_15_9693_18542.png +0 -0
  340. data/examples/tmp/tiles/carto_light_15_9693_18543.png +0 -0
  341. data/examples/tmp/tiles/carto_light_15_9693_18544.png +0 -0
  342. data/examples/tmp/tiles/carto_light_15_9693_18545.png +0 -0
  343. data/examples/tmp/tiles/carto_light_15_9693_18546.png +0 -0
  344. data/examples/tmp/tiles/carto_light_15_9693_18547.png +0 -0
  345. data/examples/tmp/tiles/carto_light_15_9693_18548.png +0 -0
  346. data/examples/tmp/tiles/carto_light_15_9693_18549.png +0 -0
  347. data/examples/tmp/tiles/carto_light_15_9693_18550.png +0 -0
  348. data/examples/tmp/tiles/carto_light_15_9693_18551.png +0 -0
  349. data/examples/tmp/tiles/carto_light_15_9693_18552.png +0 -0
  350. data/examples/tmp/tiles/carto_light_15_9693_18553.png +0 -0
  351. data/examples/tmp/tiles/carto_light_15_9693_18554.png +0 -0
  352. data/examples/tmp/tiles/carto_light_15_9693_18555.png +0 -0
  353. data/examples/tmp/tiles/carto_light_15_9693_18556.png +0 -0
  354. data/examples/tmp/tiles/carto_light_15_9693_18557.png +0 -0
  355. data/examples/tmp/tiles/carto_light_15_9693_18558.png +0 -0
  356. data/examples/tmp/tiles/carto_light_15_9693_18559.png +0 -0
  357. data/examples/tmp/tiles/carto_light_15_9693_18560.png +0 -0
  358. data/examples/tmp/tiles/carto_light_15_9693_18561.png +0 -0
  359. data/examples/tmp/tiles/carto_light_15_9693_18562.png +0 -0
  360. data/examples/tmp/tiles/carto_light_15_9693_18563.png +0 -0
  361. data/examples/tmp/tiles/carto_light_15_9693_18564.png +0 -0
  362. data/examples/tmp/tiles/carto_light_15_9693_18565.png +0 -0
  363. data/examples/tmp/tiles/carto_light_15_9693_18566.png +0 -0
  364. data/examples/tmp/tiles/carto_light_15_9693_18567.png +0 -0
  365. data/examples/tmp/tiles/carto_light_15_9693_18568.png +0 -0
  366. data/examples/tmp/tiles/carto_light_15_9693_18569.png +0 -0
  367. data/examples/tmp/tiles/carto_light_15_9693_18570.png +0 -0
  368. data/examples/tmp/tiles/carto_light_15_9693_18571.png +0 -0
  369. data/examples/tmp/tiles/carto_light_15_9693_18572.png +0 -0
  370. data/examples/tmp/tiles/carto_light_15_9693_18573.png +0 -0
  371. data/examples/tmp/tiles/carto_light_15_9693_18574.png +0 -0
  372. data/examples/tmp/tiles/carto_light_15_9693_18575.png +0 -0
  373. data/examples/tmp/tiles/carto_light_15_9693_18576.png +0 -0
  374. data/examples/tmp/tiles/carto_light_15_9693_18577.png +0 -0
  375. data/examples/tmp/tiles/carto_light_15_9693_18578.png +0 -0
  376. data/examples/tmp/tiles/carto_light_15_9693_18579.png +0 -0
  377. data/examples/tmp/tiles/carto_light_15_9693_18580.png +0 -0
  378. data/examples/tmp/tiles/carto_light_15_9693_18581.png +0 -0
  379. data/examples/tmp/tiles/carto_light_15_9693_18582.png +0 -0
  380. data/examples/tmp/tiles/carto_light_15_9693_18583.png +0 -0
  381. data/examples/tmp/tiles/carto_light_15_9693_18584.png +0 -0
  382. data/examples/tmp/tiles/carto_light_15_9693_18585.png +0 -0
  383. data/examples/tmp/tiles/carto_light_15_9693_18586.png +0 -0
  384. data/examples/tmp/tiles/carto_light_15_9693_18587.png +0 -0
  385. data/examples/tmp/tiles/carto_light_15_9693_18588.png +0 -0
  386. data/examples/tmp/tiles/carto_light_15_9693_18589.png +0 -0
  387. data/examples/tmp/tiles/carto_light_15_9693_18590.png +0 -0
  388. data/examples/tmp/tiles/carto_light_15_9693_18591.png +0 -0
  389. data/examples/tmp/tiles/carto_light_15_9693_18592.png +0 -0
  390. data/examples/tmp/tiles/carto_light_15_9693_18593.png +0 -0
  391. data/examples/tmp/tiles/carto_light_15_9693_18594.png +0 -0
  392. data/examples/tmp/tiles/carto_light_15_9693_18595.png +0 -0
  393. data/examples/tmp/tiles/carto_light_15_9693_18596.png +0 -0
  394. data/examples/tmp/tiles/carto_light_15_9693_18597.png +0 -0
  395. data/examples/tmp/tiles/carto_light_15_9693_18598.png +0 -0
  396. data/examples/tmp/tiles/carto_light_15_9693_18599.png +0 -0
  397. data/examples/tmp/tiles/carto_light_15_9693_18600.png +0 -0
  398. data/examples/tmp/tiles/carto_light_15_9693_18601.png +0 -0
  399. data/examples/tmp/tiles/carto_light_15_9693_18602.png +0 -0
  400. data/examples/tmp/tiles/carto_light_15_9693_18603.png +0 -0
  401. data/examples/tmp/tiles/carto_light_15_9693_18604.png +0 -0
  402. data/examples/tmp/tiles/carto_light_15_9693_18605.png +0 -0
  403. data/examples/tmp/tiles/carto_light_15_9693_18606.png +0 -0
  404. data/examples/tmp/tiles/carto_light_15_9693_18607.png +0 -0
  405. data/examples/tmp/tiles/carto_light_15_9693_18608.png +0 -0
  406. data/examples/tmp/tiles/carto_light_15_9693_18609.png +0 -0
  407. data/examples/tmp/tiles/carto_light_15_9693_18610.png +0 -0
  408. data/examples/tmp/tiles/carto_light_15_9693_18611.png +0 -0
  409. data/examples/tmp/tiles/carto_light_15_9693_18612.png +0 -0
  410. data/examples/tmp/tiles/carto_light_15_9693_18613.png +0 -0
  411. data/examples/tmp/tiles/carto_light_15_9693_18614.png +0 -0
  412. data/examples/tmp/tiles/carto_light_15_9693_18615.png +0 -0
  413. data/examples/tmp/tiles/carto_light_15_9693_18616.png +0 -0
  414. data/examples/tmp/tiles/carto_light_15_9693_18617.png +0 -0
  415. data/examples/tmp/tiles/carto_light_15_9693_18618.png +0 -0
  416. data/examples/tmp/tiles/carto_light_15_9693_18619.png +0 -0
  417. data/examples/tmp/tiles/carto_light_15_9693_18620.png +0 -0
  418. data/examples/tmp/tiles/carto_light_15_9693_18621.png +0 -0
  419. data/examples/tmp/tiles/carto_light_15_9693_18622.png +0 -0
  420. data/examples/tmp/tiles/carto_light_15_9693_18623.png +0 -0
  421. data/examples/tmp/tiles/carto_light_15_9693_18624.png +0 -0
  422. data/examples/tmp/tiles/carto_light_15_9693_18625.png +0 -0
  423. data/examples/tmp/tiles/carto_light_15_9693_18626.png +0 -0
  424. data/examples/tmp/tiles/carto_light_15_9693_18627.png +0 -0
  425. data/examples/tmp/tiles/carto_light_15_9693_18628.png +0 -0
  426. data/examples/tmp/tiles/carto_light_15_9693_18629.png +0 -0
  427. data/examples/tmp/tiles/carto_light_15_9693_18630.png +0 -0
  428. data/examples/tmp/tiles/carto_light_15_9693_18631.png +0 -0
  429. data/examples/tmp/tiles/carto_light_15_9693_18632.png +0 -0
  430. data/examples/tmp/tiles/carto_light_15_9693_18633.png +0 -0
  431. data/examples/tmp/tiles/carto_light_15_9693_18634.png +0 -0
  432. data/examples/tmp/tiles/carto_light_15_9693_18635.png +0 -0
  433. data/examples/tmp/tiles/carto_light_15_9693_18636.png +0 -0
  434. data/examples/tmp/tiles/carto_light_15_9693_18637.png +0 -0
  435. data/examples/tmp/tiles/carto_light_15_9693_18638.png +0 -0
  436. data/examples/tmp/tiles/carto_light_15_9693_18639.png +0 -0
  437. data/examples/tmp/tiles/carto_light_15_9693_18640.png +0 -0
  438. data/examples/tmp/tiles/carto_light_15_9693_18641.png +0 -0
  439. data/examples/tmp/tiles/carto_light_15_9693_18642.png +0 -0
  440. data/examples/tmp/tiles/carto_light_15_9693_18643.png +0 -0
  441. data/examples/tmp/tiles/carto_light_15_9693_18644.png +0 -0
  442. data/examples/tmp/tiles/carto_light_15_9693_18645.png +0 -0
  443. data/examples/tmp/tiles/carto_light_15_9693_18646.png +0 -0
  444. data/examples/tmp/tiles/carto_light_15_9693_18647.png +0 -0
  445. data/examples/tmp/tiles/carto_light_15_9693_18648.png +0 -0
  446. data/examples/tmp/tiles/carto_light_15_9693_18649.png +0 -0
  447. data/examples/tmp/tiles/carto_light_15_9693_18650.png +0 -0
  448. data/examples/tmp/tiles/carto_light_15_9693_18651.png +0 -0
  449. data/examples/tmp/tiles/carto_light_15_9693_18652.png +0 -0
  450. data/examples/tmp/tiles/carto_light_15_9693_18653.png +0 -0
  451. data/examples/tmp/tiles/carto_light_15_9693_18654.png +0 -0
  452. data/examples/tmp/tiles/carto_light_15_9693_18655.png +0 -0
  453. data/examples/tmp/tiles/carto_light_15_9693_18656.png +0 -0
  454. data/examples/tmp/tiles/carto_light_15_9693_18657.png +0 -0
  455. data/examples/tmp/tiles/carto_light_15_9693_18658.png +0 -0
  456. data/examples/tmp/tiles/carto_light_15_9693_18659.png +0 -0
  457. data/examples/tmp/tiles/carto_light_15_9693_18660.png +0 -0
  458. data/examples/tmp/tiles/carto_light_15_9693_18661.png +0 -0
  459. data/examples/tmp/tiles/carto_light_15_9693_18662.png +0 -0
  460. data/examples/tmp/tiles/carto_light_15_9693_18663.png +0 -0
  461. data/examples/tmp/tiles/carto_light_15_9693_18664.png +0 -0
  462. data/examples/tmp/tiles/carto_light_15_9693_18665.png +0 -0
  463. data/examples/tmp/tiles/carto_light_15_9693_18666.png +0 -0
  464. data/examples/tmp/tiles/carto_light_15_9693_18667.png +0 -0
  465. data/examples/tmp/tiles/carto_light_15_9693_18668.png +0 -0
  466. data/examples/tmp/tiles/carto_light_15_9693_18669.png +0 -0
  467. data/examples/tmp/tiles/carto_light_15_9693_18670.png +0 -0
  468. data/examples/tmp/tiles/carto_light_15_9693_18671.png +0 -0
  469. data/examples/tmp/tiles/carto_light_15_9693_18672.png +0 -0
  470. data/examples/tmp/tiles/carto_light_15_9693_18673.png +0 -0
  471. data/examples/tmp/tiles/carto_light_15_9693_18674.png +0 -0
  472. data/examples/tmp/tiles/carto_light_15_9693_18675.png +0 -0
  473. data/examples/tmp/tiles/carto_light_15_9693_18676.png +0 -0
  474. data/examples/tmp/tiles/carto_light_15_9693_18677.png +0 -0
  475. data/examples/tmp/tiles/carto_light_15_9693_18678.png +0 -0
  476. data/examples/tmp/tiles/carto_light_15_9693_18679.png +0 -0
  477. data/examples/tmp/tiles/carto_light_15_9693_18680.png +0 -0
  478. data/examples/tmp/tiles/carto_light_15_9693_18681.png +0 -0
  479. data/examples/tmp/tiles/carto_light_15_9693_18682.png +0 -0
  480. data/examples/tmp/tiles/carto_light_15_9693_18683.png +0 -0
  481. data/examples/tmp/tiles/carto_light_15_9693_18684.png +0 -0
  482. data/examples/tmp/tiles/carto_light_15_9693_18685.png +0 -0
  483. data/examples/tmp/tiles/carto_light_15_9693_18686.png +0 -0
  484. data/examples/tmp/tiles/carto_light_15_9693_18687.png +0 -0
  485. data/examples/tmp/tiles/carto_light_15_9693_18688.png +0 -0
  486. data/examples/tmp/tiles/carto_light_15_9693_18689.png +0 -0
  487. data/examples/tmp/tiles/carto_light_15_9693_18690.png +0 -0
  488. data/examples/tmp/tiles/carto_light_15_9693_18691.png +0 -0
  489. data/examples/tmp/tiles/carto_light_15_9693_18692.png +0 -0
  490. data/examples/tmp/tiles/carto_light_15_9693_18693.png +0 -0
  491. data/examples/tmp/tiles/carto_light_15_9693_18694.png +0 -0
  492. data/examples/tmp/tiles/carto_light_15_9693_18695.png +0 -0
  493. data/examples/tmp/tiles/carto_light_15_9693_18696.png +0 -0
  494. data/examples/tmp/tiles/carto_light_15_9693_18697.png +0 -0
  495. data/examples/tmp/tiles/carto_light_15_9693_18698.png +0 -0
  496. data/examples/tmp/tiles/carto_light_15_9693_18699.png +0 -0
  497. data/examples/tmp/tiles/carto_light_15_9693_18700.png +0 -0
  498. data/examples/tmp/tiles/carto_light_15_9693_18701.png +0 -0
  499. data/examples/tmp/tiles/carto_light_15_9693_18702.png +0 -0
  500. data/examples/tmp/tiles/carto_light_15_9693_18703.png +0 -0
  501. data/examples/tmp/tiles/carto_light_15_9693_18704.png +0 -0
  502. data/examples/tmp/tiles/carto_light_15_9693_18705.png +0 -0
  503. data/examples/tmp/tiles/carto_light_15_9693_18706.png +0 -0
  504. data/examples/tmp/tiles/carto_light_15_9693_18707.png +0 -0
  505. data/examples/tmp/tiles/carto_light_15_9693_18708.png +0 -0
  506. data/examples/tmp/tiles/carto_light_15_9693_18709.png +0 -0
  507. data/examples/tmp/tiles/carto_light_15_9693_18710.png +0 -0
  508. data/examples/tmp/tiles/carto_light_15_9693_18711.png +0 -0
  509. data/examples/tmp/tiles/carto_light_15_9693_18712.png +0 -0
  510. data/examples/tmp/tiles/carto_light_15_9693_18713.png +0 -0
  511. data/examples/tmp/tiles/carto_light_15_9693_18714.png +0 -0
  512. data/examples/tmp/tiles/carto_light_15_9693_18715.png +0 -0
  513. data/examples/tmp/tiles/carto_light_15_9693_18716.png +0 -0
  514. data/examples/tmp/tiles/carto_light_15_9693_18717.png +0 -0
  515. data/examples/tmp/tiles/carto_light_15_9693_18718.png +0 -0
  516. data/examples/tmp/tiles/carto_light_15_9693_18719.png +0 -0
  517. data/examples/tmp/tiles/carto_light_15_9693_18720.png +0 -0
  518. data/examples/tmp/tiles/carto_light_15_9693_18721.png +0 -0
  519. data/examples/tmp/tiles/carto_light_15_9693_18722.png +0 -0
  520. data/examples/tmp/tiles/carto_light_15_9693_18723.png +0 -0
  521. data/examples/tmp/tiles/carto_light_15_9693_18724.png +0 -0
  522. data/examples/tmp/tiles/carto_light_15_9693_18725.png +0 -0
  523. data/examples/tmp/tiles/carto_light_15_9693_18726.png +0 -0
  524. data/examples/tmp/tiles/carto_light_15_9693_18727.png +0 -0
  525. data/examples/tmp/tiles/carto_light_15_9693_18728.png +0 -0
  526. data/examples/tmp/tiles/carto_light_15_9693_18729.png +0 -0
  527. data/examples/tmp/tiles/carto_light_15_9693_18730.png +0 -0
  528. data/examples/tmp/tiles/carto_light_15_9693_18731.png +0 -0
  529. data/examples/tmp/tiles/carto_light_15_9693_18732.png +0 -0
  530. data/examples/tmp/tiles/carto_light_15_9693_18733.png +0 -0
  531. data/examples/tmp/tiles/carto_light_15_9693_18734.png +0 -0
  532. data/examples/tmp/tiles/carto_light_15_9693_18735.png +0 -0
  533. data/examples/tmp/tiles/carto_light_15_9693_18736.png +0 -0
  534. data/examples/tmp/tiles/carto_light_15_9693_18737.png +0 -0
  535. data/examples/tmp/tiles/carto_light_15_9693_18738.png +0 -0
  536. data/examples/tmp/tiles/carto_light_15_9693_18739.png +0 -0
  537. data/examples/tmp/tiles/carto_light_15_9693_18740.png +0 -0
  538. data/examples/tmp/tiles/carto_light_15_9693_18741.png +0 -0
  539. data/examples/tmp/tiles/carto_light_15_9693_18742.png +0 -0
  540. data/examples/tmp/tiles/carto_light_15_9693_18743.png +0 -0
  541. data/examples/tmp/tiles/carto_light_15_9693_18744.png +0 -0
  542. data/examples/tmp/tiles/carto_light_15_9693_18745.png +0 -0
  543. data/examples/tmp/tiles/carto_light_15_9693_18746.png +0 -0
  544. data/examples/tmp/tiles/carto_light_15_9693_18747.png +0 -0
  545. data/examples/tmp/tiles/carto_light_15_9693_18748.png +0 -0
  546. data/examples/tmp/tiles/carto_light_15_9693_18749.png +0 -0
  547. data/examples/tmp/tiles/carto_light_15_9693_18750.png +0 -0
  548. data/examples/tmp/tiles/carto_light_15_9693_18751.png +0 -0
  549. data/examples/tmp/tiles/carto_light_15_9693_18752.png +0 -0
  550. data/examples/tmp/tiles/carto_light_15_9693_18753.png +0 -0
  551. data/examples/tmp/tiles/carto_light_15_9693_18754.png +0 -0
  552. data/examples/tmp/tiles/carto_light_15_9693_18755.png +0 -0
  553. data/examples/tmp/tiles/carto_light_15_9693_18756.png +0 -0
  554. data/examples/tmp/tiles/carto_light_15_9693_18757.png +0 -0
  555. data/examples/tmp/tiles/carto_light_15_9693_18758.png +0 -0
  556. data/examples/tmp/tiles/carto_light_15_9693_18759.png +0 -0
  557. data/examples/tmp/tiles/carto_light_15_9693_18760.png +0 -0
  558. data/examples/tmp/tiles/carto_light_15_9693_18761.png +0 -0
  559. data/examples/tmp/tiles/carto_light_15_9693_18762.png +0 -0
  560. data/examples/tmp/tiles/carto_light_15_9693_18763.png +0 -0
  561. data/examples/tmp/tiles/carto_light_15_9693_18764.png +0 -0
  562. data/examples/tmp/tiles/carto_light_15_9693_18765.png +0 -0
  563. data/examples/tmp/tiles/carto_light_15_9693_18766.png +0 -0
  564. data/examples/tmp/tiles/carto_light_15_9693_18767.png +0 -0
  565. data/examples/tmp/tiles/carto_light_15_9693_18768.png +0 -0
  566. data/examples/tmp/tiles/carto_light_15_9693_18769.png +0 -0
  567. data/examples/tmp/tiles/carto_light_15_9693_18770.png +0 -0
  568. data/examples/tmp/tiles/carto_light_15_9693_18771.png +0 -0
  569. data/examples/tmp/tiles/carto_light_15_9693_18772.png +0 -0
  570. data/examples/tmp/tiles/carto_light_15_9693_18773.png +0 -0
  571. data/examples/tmp/tiles/carto_light_15_9693_18774.png +0 -0
  572. data/examples/tmp/tiles/carto_light_15_9693_18775.png +0 -0
  573. data/examples/tmp/tiles/carto_light_15_9693_18776.png +0 -0
  574. data/examples/tmp/tiles/carto_light_15_9693_18777.png +0 -0
  575. data/examples/tmp/tiles/carto_light_15_9693_18778.png +0 -0
  576. data/examples/tmp/tiles/carto_light_15_9693_18779.png +0 -0
  577. data/examples/tmp/tiles/carto_light_15_9693_18780.png +0 -0
  578. data/examples/tmp/tiles/carto_light_15_9693_18781.png +0 -0
  579. data/examples/tmp/tiles/carto_light_15_9693_18782.png +0 -0
  580. data/examples/tmp/tiles/carto_light_15_9693_18783.png +0 -0
  581. data/examples/tmp/tiles/carto_light_15_9693_18784.png +0 -0
  582. data/examples/tmp/tiles/carto_light_15_9693_18785.png +0 -0
  583. data/examples/tmp/tiles/carto_light_15_9693_18786.png +0 -0
  584. data/examples/tmp/tiles/carto_light_15_9693_18787.png +0 -0
  585. data/examples/tmp/tiles/carto_light_15_9693_18788.png +0 -0
  586. data/examples/tmp/tiles/carto_light_15_9693_18789.png +0 -0
  587. data/examples/tmp/tiles/carto_light_15_9693_18790.png +0 -0
  588. data/examples/tmp/tiles/carto_light_15_9693_18791.png +0 -0
  589. data/examples/tmp/tiles/carto_light_15_9693_18792.png +0 -0
  590. data/examples/tmp/tiles/carto_light_15_9693_18793.png +0 -0
  591. data/examples/tmp/tiles/carto_light_15_9693_18794.png +0 -0
  592. data/examples/tmp/tiles/carto_light_15_9693_18795.png +0 -0
  593. data/examples/tmp/tiles/carto_light_15_9693_18796.png +0 -0
  594. data/examples/tmp/tiles/carto_light_15_9693_18797.png +0 -0
  595. data/examples/tmp/tiles/carto_light_15_9693_18798.png +0 -0
  596. data/examples/tmp/tiles/carto_light_15_9693_18799.png +0 -0
  597. data/examples/tmp/tiles/carto_light_15_9693_18800.png +0 -0
  598. data/examples/tmp/tiles/carto_light_15_9693_18801.png +0 -0
  599. data/examples/tmp/tiles/carto_light_15_9693_18802.png +0 -0
  600. data/examples/tmp/tiles/carto_light_15_9693_18803.png +0 -0
  601. data/examples/tmp/tiles/carto_light_15_9693_18804.png +0 -0
  602. data/examples/tmp/tiles/carto_light_15_9693_18805.png +0 -0
  603. data/examples/tmp/tiles/carto_light_15_9693_18806.png +0 -0
  604. data/examples/tmp/tiles/carto_light_15_9693_18807.png +0 -0
  605. data/examples/tmp/tiles/carto_light_15_9693_18808.png +0 -0
  606. data/examples/tmp/tiles/carto_light_15_9693_18809.png +0 -0
  607. data/examples/tmp/tiles/carto_light_15_9693_18810.png +0 -0
  608. data/examples/tmp/tiles/carto_light_15_9693_18811.png +0 -0
  609. data/examples/tmp/tiles/carto_light_15_9693_18812.png +0 -0
  610. data/examples/tmp/tiles/carto_light_15_9693_18813.png +0 -0
  611. data/examples/tmp/tiles/carto_light_15_9693_18814.png +0 -0
  612. data/examples/tmp/tiles/carto_light_15_9693_18815.png +0 -0
  613. data/examples/tmp/tiles/carto_light_15_9693_18816.png +0 -0
  614. data/examples/tmp/tiles/carto_light_15_9693_18817.png +0 -0
  615. data/examples/tmp/tiles/carto_light_15_9693_18818.png +0 -0
  616. data/examples/tmp/tiles/carto_light_15_9693_18819.png +0 -0
  617. data/examples/tmp/tiles/carto_light_15_9693_18820.png +0 -0
  618. data/examples/tmp/tiles/carto_light_15_9693_18821.png +0 -0
  619. data/examples/tmp/tiles/carto_light_15_9693_18822.png +0 -0
  620. data/examples/tmp/tiles/carto_light_15_9693_18823.png +0 -0
  621. data/examples/tmp/tiles/carto_light_15_9693_18824.png +0 -0
  622. data/examples/tmp/tiles/carto_light_15_9693_18825.png +0 -0
  623. data/examples/tmp/tiles/carto_light_15_9693_18826.png +0 -0
  624. data/examples/tmp/tiles/carto_light_15_9693_18827.png +0 -0
  625. data/examples/tmp/tiles/carto_light_15_9693_18828.png +0 -0
  626. data/examples/tmp/tiles/carto_light_15_9693_18829.png +0 -0
  627. data/examples/tmp/tiles/carto_light_15_9693_18830.png +0 -0
  628. data/examples/tmp/tiles/carto_light_15_9693_18831.png +0 -0
  629. data/examples/tmp/tiles/carto_light_15_9693_18832.png +0 -0
  630. data/examples/tmp/tiles/carto_light_15_9693_18833.png +0 -0
  631. data/examples/tmp/tiles/carto_light_15_9693_18834.png +0 -0
  632. data/examples/tmp/tiles/carto_light_15_9693_18835.png +0 -0
  633. data/examples/tmp/tiles/carto_light_15_9693_18836.png +0 -0
  634. data/examples/tmp/tiles/carto_light_15_9693_18837.png +0 -0
  635. data/examples/tmp/tiles/carto_light_15_9693_18838.png +0 -0
  636. data/examples/tmp/tiles/carto_light_15_9693_18839.png +0 -0
  637. data/examples/tmp/tiles/carto_light_15_9693_18840.png +0 -0
  638. data/examples/tmp/tiles/carto_light_15_9693_18841.png +0 -0
  639. data/examples/tmp/tiles/carto_light_15_9693_18842.png +0 -0
  640. data/examples/tmp/tiles/carto_light_15_9693_18843.png +0 -0
  641. data/examples/tmp/tiles/carto_light_15_9693_18844.png +0 -0
  642. data/examples/tmp/tiles/carto_light_15_9693_18845.png +0 -0
  643. data/examples/tmp/tiles/carto_light_15_9693_18846.png +0 -0
  644. data/examples/tmp/tiles/carto_light_15_9693_18847.png +0 -0
  645. data/examples/tmp/tiles/carto_light_15_9693_18848.png +0 -0
  646. data/examples/tmp/tiles/carto_light_15_9693_18849.png +0 -0
  647. data/examples/tmp/tiles/carto_light_15_9693_18850.png +0 -0
  648. data/examples/tmp/tiles/carto_light_15_9693_18851.png +0 -0
  649. data/examples/tmp/tiles/carto_light_15_9693_18852.png +0 -0
  650. data/examples/tmp/tiles/carto_light_15_9693_18853.png +0 -0
  651. data/examples/tmp/tiles/carto_light_15_9693_18854.png +0 -0
  652. data/examples/tmp/tiles/carto_light_15_9693_18855.png +0 -0
  653. data/examples/tmp/tiles/carto_light_15_9693_18856.png +0 -0
  654. data/examples/tmp/tiles/carto_light_15_9693_18857.png +0 -0
  655. data/examples/tmp/tiles/carto_light_15_9693_18858.png +0 -0
  656. data/examples/tmp/tiles/carto_light_15_9693_18859.png +0 -0
  657. data/examples/tmp/tiles/carto_light_15_9693_18860.png +0 -0
  658. data/examples/tmp/tiles/carto_light_15_9693_18861.png +0 -0
  659. data/examples/tmp/tiles/carto_light_15_9693_18862.png +0 -0
  660. data/examples/tmp/tiles/carto_light_15_9693_18863.png +0 -0
  661. data/examples/tmp/tiles/carto_light_15_9693_18864.png +0 -0
  662. data/examples/tmp/tiles/carto_light_15_9693_18865.png +0 -0
  663. data/examples/tmp/tiles/carto_light_15_9693_18866.png +0 -0
  664. data/examples/tmp/tiles/carto_light_15_9693_18867.png +0 -0
  665. data/examples/tmp/tiles/carto_light_15_9693_18868.png +0 -0
  666. data/examples/tmp/tiles/carto_light_15_9693_18869.png +0 -0
  667. data/examples/tmp/tiles/carto_light_15_9693_18870.png +0 -0
  668. data/examples/tmp/tiles/carto_light_15_9693_18871.png +0 -0
  669. data/examples/tmp/tiles/carto_light_15_9693_18872.png +0 -0
  670. data/examples/tmp/tiles/carto_light_15_9693_18873.png +0 -0
  671. data/examples/tmp/tiles/carto_light_15_9693_18874.png +0 -0
  672. data/examples/tmp/tiles/carto_light_15_9693_18875.png +0 -0
  673. data/examples/tmp/tiles/carto_light_15_9693_18876.png +0 -0
  674. data/examples/tmp/tiles/carto_light_15_9693_18877.png +0 -0
  675. data/examples/tmp/tiles/carto_light_15_9693_18878.png +0 -0
  676. data/examples/tmp/tiles/carto_light_15_9693_18879.png +0 -0
  677. data/examples/tmp/tiles/carto_light_15_9693_18880.png +0 -0
  678. data/examples/tmp/tiles/carto_light_15_9693_18881.png +0 -0
  679. data/examples/tmp/tiles/carto_light_15_9693_18882.png +0 -0
  680. data/examples/tmp/tiles/carto_light_15_9693_18883.png +0 -0
  681. data/examples/tmp/tiles/carto_light_15_9693_18884.png +0 -0
  682. data/examples/tmp/tiles/carto_light_15_9693_18885.png +0 -0
  683. data/examples/tmp/tiles/carto_light_15_9693_18886.png +0 -0
  684. data/examples/tmp/tiles/carto_light_15_9693_18887.png +0 -0
  685. data/examples/tmp/tiles/carto_light_15_9693_18888.png +0 -0
  686. data/examples/tmp/tiles/carto_light_15_9693_18889.png +0 -0
  687. data/examples/tmp/tiles/carto_light_15_9693_18890.png +0 -0
  688. data/examples/tmp/tiles/carto_light_15_9693_18891.png +0 -0
  689. data/examples/tmp/tiles/carto_light_15_9693_18892.png +0 -0
  690. data/examples/tmp/tiles/carto_light_15_9693_18893.png +0 -0
  691. data/examples/tmp/tiles/carto_light_15_9693_18894.png +0 -0
  692. data/examples/tmp/tiles/carto_light_15_9693_18895.png +0 -0
  693. data/examples/tmp/tiles/carto_light_15_9693_18896.png +0 -0
  694. data/examples/tmp/tiles/carto_light_15_9693_18897.png +0 -0
  695. data/examples/tmp/tiles/carto_light_15_9693_18898.png +0 -0
  696. data/examples/tmp/tiles/carto_light_15_9693_18899.png +0 -0
  697. data/examples/tmp/tiles/carto_light_15_9693_18900.png +0 -0
  698. data/examples/tmp/tiles/carto_light_15_9693_18901.png +0 -0
  699. data/examples/tmp/tiles/carto_light_15_9693_18902.png +0 -0
  700. data/examples/tmp/tiles/carto_light_15_9693_18903.png +0 -0
  701. data/examples/tmp/tiles/carto_light_15_9693_18904.png +0 -0
  702. data/examples/tmp/tiles/carto_light_15_9693_18905.png +0 -0
  703. data/examples/tmp/tiles/carto_light_15_9693_18906.png +0 -0
  704. data/examples/tmp/tiles/carto_light_15_9693_18907.png +0 -0
  705. data/examples/tmp/tiles/carto_light_15_9693_18908.png +0 -0
  706. data/examples/tmp/tiles/carto_light_15_9693_18909.png +0 -0
  707. data/examples/tmp/tiles/carto_light_15_9693_18910.png +0 -0
  708. data/examples/tmp/tiles/carto_light_15_9693_18911.png +0 -0
  709. data/examples/tmp/tiles/carto_light_15_9693_18912.png +0 -0
  710. data/examples/tmp/tiles/carto_light_15_9693_18913.png +0 -0
  711. data/examples/tmp/tiles/carto_light_15_9693_18914.png +0 -0
  712. data/examples/tmp/tiles/carto_light_15_9693_18915.png +0 -0
  713. data/examples/tmp/tiles/carto_light_15_9693_18916.png +0 -0
  714. data/examples/tmp/tiles/carto_light_15_9693_18917.png +0 -0
  715. data/examples/tmp/tiles/carto_light_15_9693_18918.png +0 -0
  716. data/examples/tmp/tiles/carto_light_15_9693_18919.png +0 -0
  717. data/examples/tmp/tiles/carto_light_15_9693_18920.png +0 -0
  718. data/examples/tmp/tiles/carto_light_15_9693_18921.png +0 -0
  719. data/examples/tmp/tiles/carto_light_15_9693_18922.png +0 -0
  720. data/examples/tmp/tiles/carto_light_15_9693_18923.png +0 -0
  721. data/examples/tmp/tiles/carto_light_15_9693_18924.png +0 -0
  722. data/examples/tmp/tiles/carto_light_15_9693_18925.png +0 -0
  723. data/examples/tmp/tiles/carto_light_15_9693_18926.png +0 -0
  724. data/examples/tmp/tiles/carto_light_15_9693_18927.png +0 -0
  725. data/examples/tmp/tiles/carto_light_15_9693_18928.png +0 -0
  726. data/examples/tmp/tiles/carto_light_15_9693_18929.png +0 -0
  727. data/examples/tmp/tiles/carto_light_15_9693_18930.png +0 -0
  728. data/examples/tmp/tiles/carto_light_15_9693_18931.png +0 -0
  729. data/examples/tmp/tiles/carto_light_15_9693_18932.png +0 -0
  730. data/examples/tmp/tiles/carto_light_15_9693_18933.png +0 -0
  731. data/examples/tmp/tiles/carto_light_15_9693_18934.png +0 -0
  732. data/examples/tmp/tiles/carto_light_15_9693_18935.png +0 -0
  733. data/examples/tmp/tiles/carto_light_15_9693_18936.png +0 -0
  734. data/examples/tmp/tiles/carto_light_15_9693_18937.png +0 -0
  735. data/examples/tmp/tiles/carto_light_15_9693_18938.png +0 -0
  736. data/examples/tmp/tiles/carto_light_15_9693_18939.png +0 -0
  737. data/examples/tmp/tiles/carto_light_15_9693_18940.png +0 -0
  738. data/examples/tmp/tiles/carto_light_15_9693_18941.png +0 -0
  739. data/examples/tmp/tiles/carto_light_15_9693_18942.png +0 -0
  740. data/examples/tmp/tiles/carto_light_15_9693_18943.png +0 -0
  741. data/examples/tmp/tiles/carto_light_15_9693_18944.png +0 -0
  742. data/examples/tmp/tiles/carto_light_15_9693_18945.png +0 -0
  743. data/examples/tmp/tiles/carto_light_15_9693_18946.png +0 -0
  744. data/examples/tmp/tiles/carto_light_15_9693_18947.png +0 -0
  745. data/examples/tmp/tiles/carto_light_15_9693_18948.png +0 -0
  746. data/examples/tmp/tiles/carto_light_15_9693_18949.png +0 -0
  747. data/examples/tmp/tiles/carto_light_15_9693_18950.png +0 -0
  748. data/examples/tmp/tiles/carto_light_15_9693_18951.png +0 -0
  749. data/examples/tmp/tiles/carto_light_15_9693_18952.png +0 -0
  750. data/examples/tmp/tiles/carto_light_15_9693_18953.png +0 -0
  751. data/examples/tmp/tiles/carto_light_15_9693_18954.png +0 -0
  752. data/examples/tmp/tiles/carto_light_15_9693_18955.png +0 -0
  753. data/examples/tmp/tiles/carto_light_15_9693_18956.png +0 -0
  754. data/examples/tmp/tiles/carto_light_15_9693_18957.png +0 -0
  755. data/examples/tmp/tiles/carto_light_15_9693_18958.png +0 -0
  756. data/examples/tmp/tiles/carto_light_15_9693_18959.png +0 -0
  757. data/examples/tmp/tiles/carto_light_15_9693_18960.png +0 -0
  758. data/examples/tmp/tiles/carto_light_15_9693_18961.png +0 -0
  759. data/examples/tmp/tiles/carto_light_15_9693_18962.png +0 -0
  760. data/examples/tmp/tiles/carto_light_15_9693_18963.png +0 -0
  761. data/examples/tmp/tiles/carto_light_15_9693_18964.png +0 -0
  762. data/examples/tmp/tiles/carto_light_15_9693_18965.png +0 -0
  763. data/examples/tmp/tiles/carto_light_15_9693_18966.png +0 -0
  764. data/examples/tmp/tiles/carto_light_15_9693_18967.png +0 -0
  765. data/examples/tmp/tiles/carto_light_15_9693_18968.png +0 -0
  766. data/examples/tmp/tiles/carto_light_15_9693_18969.png +0 -0
  767. data/examples/tmp/tiles/carto_light_15_9693_18970.png +0 -0
  768. data/examples/tmp/tiles/carto_light_15_9693_18971.png +0 -0
  769. data/examples/tmp/tiles/carto_light_15_9693_18972.png +0 -0
  770. data/examples/tmp/tiles/carto_light_15_9693_18973.png +0 -0
  771. data/examples/tmp/tiles/carto_light_15_9693_18974.png +0 -0
  772. data/examples/tmp/tiles/carto_light_15_9693_18975.png +0 -0
  773. data/examples/tmp/tiles/carto_light_15_9693_18976.png +0 -0
  774. data/examples/tmp/tiles/carto_light_15_9693_18977.png +0 -0
  775. data/examples/tmp/tiles/carto_light_15_9693_18978.png +0 -0
  776. data/examples/tmp/tiles/carto_light_15_9693_18979.png +0 -0
  777. data/examples/tmp/tiles/carto_light_15_9693_18980.png +0 -0
  778. data/examples/tmp/tiles/carto_light_15_9693_18981.png +0 -0
  779. data/examples/tmp/tiles/carto_light_15_9693_18982.png +0 -0
  780. data/examples/tmp/tiles/carto_light_15_9693_18983.png +0 -0
  781. data/examples/tmp/tiles/carto_light_15_9693_18984.png +0 -0
  782. data/examples/tmp/tiles/carto_light_15_9693_18985.png +0 -0
  783. data/examples/tmp/tiles/carto_light_15_9693_18986.png +0 -0
  784. data/examples/tmp/tiles/carto_light_15_9693_18987.png +0 -0
  785. data/examples/tmp/tiles/carto_light_15_9693_18988.png +0 -0
  786. data/examples/tmp/tiles/carto_light_15_9693_18989.png +0 -0
  787. data/examples/tmp/tiles/carto_light_15_9693_18990.png +0 -0
  788. data/examples/tmp/tiles/carto_light_15_9693_18991.png +0 -0
  789. data/examples/tmp/tiles/carto_light_15_9693_18992.png +0 -0
  790. data/examples/tmp/tiles/carto_light_15_9693_18993.png +0 -0
  791. data/examples/tmp/tiles/carto_light_15_9693_18994.png +0 -0
  792. data/examples/tmp/tiles/carto_light_15_9693_18995.png +0 -0
  793. data/examples/tmp/tiles/carto_light_15_9693_18996.png +0 -0
  794. data/examples/tmp/tiles/carto_light_15_9693_18997.png +0 -0
  795. data/examples/tmp/tiles/carto_light_15_9693_18998.png +0 -0
  796. data/examples/tmp/tiles/carto_light_15_9693_18999.png +0 -0
  797. data/examples/tmp/tiles/carto_light_15_9693_19000.png +0 -0
  798. data/examples/tmp/tiles/carto_light_15_9693_19001.png +0 -0
  799. data/examples/tmp/tiles/carto_light_15_9693_19002.png +0 -0
  800. data/examples/tmp/tiles/carto_light_15_9693_19003.png +0 -0
  801. data/examples/tmp/tiles/carto_light_15_9693_19004.png +0 -0
  802. data/examples/tmp/tiles/carto_light_15_9693_19005.png +0 -0
  803. data/examples/tmp/tiles/carto_light_15_9693_19006.png +0 -0
  804. data/examples/tmp/tiles/carto_light_15_9693_19007.png +0 -0
  805. data/examples/tmp/tiles/carto_light_15_9693_19008.png +0 -0
  806. data/examples/tmp/tiles/carto_light_15_9693_19009.png +0 -0
  807. data/examples/tmp/tiles/carto_light_15_9693_19010.png +0 -0
  808. data/examples/tmp/tiles/carto_light_15_9693_19011.png +0 -0
  809. data/examples/tmp/tiles/carto_light_15_9693_19012.png +0 -0
  810. data/examples/tmp/tiles/carto_light_15_9693_19013.png +0 -0
  811. data/examples/tmp/tiles/carto_light_15_9693_19014.png +0 -0
  812. data/examples/tmp/tiles/carto_light_15_9693_19015.png +0 -0
  813. data/examples/tmp/tiles/carto_light_15_9693_19016.png +0 -0
  814. data/examples/tmp/tiles/carto_light_15_9693_19017.png +0 -0
  815. data/examples/tmp/tiles/carto_light_15_9693_19018.png +0 -0
  816. data/examples/tmp/tiles/carto_light_15_9693_19019.png +0 -0
  817. data/examples/tmp/tiles/carto_light_15_9693_19020.png +0 -0
  818. data/examples/tmp/tiles/carto_light_15_9693_19021.png +0 -0
  819. data/examples/tmp/tiles/carto_light_15_9693_19022.png +0 -0
  820. data/examples/tmp/tiles/carto_light_15_9693_19023.png +0 -0
  821. data/examples/tmp/tiles/carto_light_15_9693_19024.png +0 -0
  822. data/examples/tmp/tiles/carto_light_15_9693_19025.png +0 -0
  823. data/examples/tmp/tiles/carto_light_15_9693_19026.png +0 -0
  824. data/examples/tmp/tiles/carto_light_15_9693_19027.png +0 -0
  825. data/examples/tmp/tiles/carto_light_15_9693_19028.png +0 -0
  826. data/examples/tmp/tiles/carto_light_15_9693_19029.png +0 -0
  827. data/examples/tmp/tiles/carto_light_15_9693_19030.png +0 -0
  828. data/examples/tmp/tiles/carto_light_15_9693_19031.png +0 -0
  829. data/examples/tmp/tiles/carto_light_15_9693_19032.png +0 -0
  830. data/examples/tmp/tiles/carto_light_15_9693_19033.png +0 -0
  831. data/examples/tmp/tiles/carto_light_15_9693_19034.png +0 -0
  832. data/examples/tmp/tiles/carto_light_15_9693_19035.png +0 -0
  833. data/examples/tmp/tiles/carto_light_15_9693_19036.png +0 -0
  834. data/examples/tmp/tiles/carto_light_15_9693_19037.png +0 -0
  835. data/examples/tmp/tiles/carto_light_15_9693_19038.png +0 -0
  836. data/examples/tmp/tiles/carto_light_15_9693_19039.png +0 -0
  837. data/examples/tmp/tiles/carto_light_15_9693_19040.png +0 -0
  838. data/examples/tmp/tiles/carto_light_15_9693_19041.png +0 -0
  839. data/examples/tmp/tiles/carto_light_15_9693_19042.png +0 -0
  840. data/examples/tmp/tiles/carto_light_15_9693_19043.png +0 -0
  841. data/examples/tmp/tiles/carto_light_15_9693_19044.png +0 -0
  842. data/examples/tmp/tiles/carto_light_15_9693_19045.png +0 -0
  843. data/examples/tmp/tiles/carto_light_15_9693_19046.png +0 -0
  844. data/examples/tmp/tiles/carto_light_5_10_17.png +0 -0
  845. data/examples/tmp/tiles/carto_light_5_10_18.png +0 -0
  846. data/examples/tmp/tiles/carto_light_5_10_19.png +0 -0
  847. data/examples/tmp/tiles/carto_light_5_10_20.png +0 -0
  848. data/examples/tmp/tiles/carto_light_5_10_21.png +0 -0
  849. data/examples/tmp/tiles/carto_light_5_11_17.png +0 -0
  850. data/examples/tmp/tiles/carto_light_5_11_18.png +0 -0
  851. data/examples/tmp/tiles/carto_light_5_11_19.png +0 -0
  852. data/examples/tmp/tiles/carto_light_5_11_20.png +0 -0
  853. data/examples/tmp/tiles/carto_light_5_11_21.png +0 -0
  854. data/examples/tmp/tiles/carto_light_5_9_17.png +0 -0
  855. data/examples/tmp/tiles/carto_light_5_9_18.png +0 -0
  856. data/examples/tmp/tiles/carto_light_5_9_19.png +0 -0
  857. data/examples/tmp/tiles/carto_light_5_9_20.png +0 -0
  858. data/examples/tmp/tiles/carto_light_5_9_21.png +0 -0
  859. data/examples/verbose.txt +11 -0
  860. data/lib/gd/gis/basemap.rb +116 -9
  861. data/lib/gd/gis/geometry.rb +40 -0
  862. data/lib/gd/gis/layer_geojson.rb +75 -0
  863. data/lib/gd/gis/layer_lines.rb +36 -0
  864. data/lib/gd/gis/layer_points.rb +31 -1
  865. data/lib/gd/gis/layer_polygons.rb +38 -0
  866. data/lib/gd/gis/map.rb +58 -78
  867. data/lib/gd/gis/projection.rb +14 -0
  868. metadata +932 -278
  869. data/examples/a-world_peaks.rb +0 -42
  870. data/examples/argentina.png +0 -0
  871. data/examples/argentina_con_localidades.rb +0 -89
  872. data/examples/argentina_museos.rb +0 -70
  873. data/examples/hydro.png +0 -0
  874. data/examples/hydro_plants.geojson +0 -25
  875. data/examples/montanas.rb +0 -118
  876. data/examples/output/argentina_museos.png +0 -0
  877. data/examples/output/tanzania_hydro.png +0 -0
  878. data/examples/output/world_peaks-s.png +0 -0
  879. data/examples/output/world_peaks.png +0 -0
  880. data/examples/peak.png +0 -0
  881. data/examples/picks.json +0 -50
  882. data/examples/render_tile.rb +0 -31
  883. data/examples/tmp/tiles/4_0_13.png +0 -0
  884. data/examples/tmp/tiles/4_0_14.png +0 -0
  885. data/examples/tmp/tiles/4_0_15.png +0 -0
  886. data/examples/tmp/tiles/4_0_3.png +0 -0
  887. data/examples/tmp/tiles/4_0_4.png +0 -0
  888. data/examples/tmp/tiles/4_0_5.png +0 -0
  889. data/examples/tmp/tiles/4_0_8.png +0 -0
  890. data/examples/tmp/tiles/4_10_1.png +0 -0
  891. data/examples/tmp/tiles/4_10_11.png +0 -0
  892. data/examples/tmp/tiles/4_10_12.png +0 -0
  893. data/examples/tmp/tiles/4_10_13.png +0 -0
  894. data/examples/tmp/tiles/4_10_14.png +0 -0
  895. data/examples/tmp/tiles/4_10_15.png +0 -0
  896. data/examples/tmp/tiles/4_10_2.png +0 -0
  897. data/examples/tmp/tiles/4_10_3.png +0 -0
  898. data/examples/tmp/tiles/4_10_4.png +0 -0
  899. data/examples/tmp/tiles/4_10_5.png +0 -0
  900. data/examples/tmp/tiles/4_10_6.png +0 -0
  901. data/examples/tmp/tiles/4_10_7.png +0 -0
  902. data/examples/tmp/tiles/4_10_8.png +0 -0
  903. data/examples/tmp/tiles/4_10_9.png +0 -0
  904. data/examples/tmp/tiles/4_11_1.png +0 -0
  905. data/examples/tmp/tiles/4_11_10.png +0 -0
  906. data/examples/tmp/tiles/4_11_12.png +0 -0
  907. data/examples/tmp/tiles/4_11_13.png +0 -0
  908. data/examples/tmp/tiles/4_11_14.png +0 -0
  909. data/examples/tmp/tiles/4_11_15.png +0 -0
  910. data/examples/tmp/tiles/4_11_2.png +0 -0
  911. data/examples/tmp/tiles/4_11_3.png +0 -0
  912. data/examples/tmp/tiles/4_11_4.png +0 -0
  913. data/examples/tmp/tiles/4_11_5.png +0 -0
  914. data/examples/tmp/tiles/4_11_6.png +0 -0
  915. data/examples/tmp/tiles/4_11_7.png +0 -0
  916. data/examples/tmp/tiles/4_12_1.png +0 -0
  917. data/examples/tmp/tiles/4_12_11.png +0 -0
  918. data/examples/tmp/tiles/4_12_12.png +0 -0
  919. data/examples/tmp/tiles/4_12_13.png +0 -0
  920. data/examples/tmp/tiles/4_12_14.png +0 -0
  921. data/examples/tmp/tiles/4_12_15.png +0 -0
  922. data/examples/tmp/tiles/4_12_2.png +0 -0
  923. data/examples/tmp/tiles/4_12_3.png +0 -0
  924. data/examples/tmp/tiles/4_12_4.png +0 -0
  925. data/examples/tmp/tiles/4_12_5.png +0 -0
  926. data/examples/tmp/tiles/4_12_6.png +0 -0
  927. data/examples/tmp/tiles/4_12_7.png +0 -0
  928. data/examples/tmp/tiles/4_12_8.png +0 -0
  929. data/examples/tmp/tiles/4_13_11.png +0 -0
  930. data/examples/tmp/tiles/4_13_12.png +0 -0
  931. data/examples/tmp/tiles/4_13_13.png +0 -0
  932. data/examples/tmp/tiles/4_13_14.png +0 -0
  933. data/examples/tmp/tiles/4_13_15.png +0 -0
  934. data/examples/tmp/tiles/4_13_2.png +0 -0
  935. data/examples/tmp/tiles/4_13_3.png +0 -0
  936. data/examples/tmp/tiles/4_13_4.png +0 -0
  937. data/examples/tmp/tiles/4_13_5.png +0 -0
  938. data/examples/tmp/tiles/4_13_6.png +0 -0
  939. data/examples/tmp/tiles/4_13_7.png +0 -0
  940. data/examples/tmp/tiles/4_13_8.png +0 -0
  941. data/examples/tmp/tiles/4_13_9.png +0 -0
  942. data/examples/tmp/tiles/4_14_10.png +0 -0
  943. data/examples/tmp/tiles/4_14_11.png +0 -0
  944. data/examples/tmp/tiles/4_14_12.png +0 -0
  945. data/examples/tmp/tiles/4_14_13.png +0 -0
  946. data/examples/tmp/tiles/4_14_14.png +0 -0
  947. data/examples/tmp/tiles/4_14_15.png +0 -0
  948. data/examples/tmp/tiles/4_14_2.png +0 -0
  949. data/examples/tmp/tiles/4_14_3.png +0 -0
  950. data/examples/tmp/tiles/4_14_4.png +0 -0
  951. data/examples/tmp/tiles/4_14_5.png +0 -0
  952. data/examples/tmp/tiles/4_14_6.png +0 -0
  953. data/examples/tmp/tiles/4_14_8.png +0 -0
  954. data/examples/tmp/tiles/4_14_9.png +0 -0
  955. data/examples/tmp/tiles/4_15_10.png +0 -0
  956. data/examples/tmp/tiles/4_15_12.png +0 -0
  957. data/examples/tmp/tiles/4_15_13.png +0 -0
  958. data/examples/tmp/tiles/4_15_14.png +0 -0
  959. data/examples/tmp/tiles/4_15_15.png +0 -0
  960. data/examples/tmp/tiles/4_15_3.png +0 -0
  961. data/examples/tmp/tiles/4_15_4.png +0 -0
  962. data/examples/tmp/tiles/4_15_5.png +0 -0
  963. data/examples/tmp/tiles/4_15_8.png +0 -0
  964. data/examples/tmp/tiles/4_15_9.png +0 -0
  965. data/examples/tmp/tiles/4_1_13.png +0 -0
  966. data/examples/tmp/tiles/4_1_14.png +0 -0
  967. data/examples/tmp/tiles/4_1_15.png +0 -0
  968. data/examples/tmp/tiles/4_1_3.png +0 -0
  969. data/examples/tmp/tiles/4_1_4.png +0 -0
  970. data/examples/tmp/tiles/4_1_7.png +0 -0
  971. data/examples/tmp/tiles/4_2_12.png +0 -0
  972. data/examples/tmp/tiles/4_2_13.png +0 -0
  973. data/examples/tmp/tiles/4_2_14.png +0 -0
  974. data/examples/tmp/tiles/4_2_15.png +0 -0
  975. data/examples/tmp/tiles/4_2_2.png +0 -0
  976. data/examples/tmp/tiles/4_2_3.png +0 -0
  977. data/examples/tmp/tiles/4_2_4.png +0 -0
  978. data/examples/tmp/tiles/4_2_5.png +0 -0
  979. data/examples/tmp/tiles/4_2_6.png +0 -0
  980. data/examples/tmp/tiles/4_3_1.png +0 -0
  981. data/examples/tmp/tiles/4_3_12.png +0 -0
  982. data/examples/tmp/tiles/4_3_13.png +0 -0
  983. data/examples/tmp/tiles/4_3_14.png +0 -0
  984. data/examples/tmp/tiles/4_3_15.png +0 -0
  985. data/examples/tmp/tiles/4_3_2.png +0 -0
  986. data/examples/tmp/tiles/4_3_3.png +0 -0
  987. data/examples/tmp/tiles/4_3_4.png +0 -0
  988. data/examples/tmp/tiles/4_3_5.png +0 -0
  989. data/examples/tmp/tiles/4_3_6.png +0 -0
  990. data/examples/tmp/tiles/4_3_7.png +0 -0
  991. data/examples/tmp/tiles/4_3_8.png +0 -0
  992. data/examples/tmp/tiles/4_4_0.png +0 -0
  993. data/examples/tmp/tiles/4_4_1.png +0 -0
  994. data/examples/tmp/tiles/4_4_10.png +0 -0
  995. data/examples/tmp/tiles/4_4_12.png +0 -0
  996. data/examples/tmp/tiles/4_4_13.png +0 -0
  997. data/examples/tmp/tiles/4_4_14.png +0 -0
  998. data/examples/tmp/tiles/4_4_15.png +0 -0
  999. data/examples/tmp/tiles/4_4_2.png +0 -0
  1000. data/examples/tmp/tiles/4_4_3.png +0 -0
  1001. data/examples/tmp/tiles/4_4_4.png +0 -0
  1002. data/examples/tmp/tiles/4_4_5.png +0 -0
  1003. data/examples/tmp/tiles/4_4_6.png +0 -0
  1004. data/examples/tmp/tiles/4_4_7.png +0 -0
  1005. data/examples/tmp/tiles/4_4_8.png +0 -0
  1006. data/examples/tmp/tiles/4_4_9.png +0 -0
  1007. data/examples/tmp/tiles/4_5_0.png +0 -0
  1008. data/examples/tmp/tiles/4_5_1.png +0 -0
  1009. data/examples/tmp/tiles/4_5_10.png +0 -0
  1010. data/examples/tmp/tiles/4_5_11.png +0 -0
  1011. data/examples/tmp/tiles/4_5_12.png +0 -0
  1012. data/examples/tmp/tiles/4_5_13.png +0 -0
  1013. data/examples/tmp/tiles/4_5_14.png +0 -0
  1014. data/examples/tmp/tiles/4_5_15.png +0 -0
  1015. data/examples/tmp/tiles/4_5_2.png +0 -0
  1016. data/examples/tmp/tiles/4_5_3.png +0 -0
  1017. data/examples/tmp/tiles/4_5_4.png +0 -0
  1018. data/examples/tmp/tiles/4_5_5.png +0 -0
  1019. data/examples/tmp/tiles/4_5_7.png +0 -0
  1020. data/examples/tmp/tiles/4_5_8.png +0 -0
  1021. data/examples/tmp/tiles/4_5_9.png +0 -0
  1022. data/examples/tmp/tiles/4_6_0.png +0 -0
  1023. data/examples/tmp/tiles/4_6_1.png +0 -0
  1024. data/examples/tmp/tiles/4_6_10.png +0 -0
  1025. data/examples/tmp/tiles/4_6_13.png +0 -0
  1026. data/examples/tmp/tiles/4_6_14.png +0 -0
  1027. data/examples/tmp/tiles/4_6_15.png +0 -0
  1028. data/examples/tmp/tiles/4_6_2.png +0 -0
  1029. data/examples/tmp/tiles/4_6_3.png +0 -0
  1030. data/examples/tmp/tiles/4_6_4.png +0 -0
  1031. data/examples/tmp/tiles/4_6_6.png +0 -0
  1032. data/examples/tmp/tiles/4_6_7.png +0 -0
  1033. data/examples/tmp/tiles/4_6_8.png +0 -0
  1034. data/examples/tmp/tiles/4_6_9.png +0 -0
  1035. data/examples/tmp/tiles/4_7_0.png +0 -0
  1036. data/examples/tmp/tiles/4_7_1.png +0 -0
  1037. data/examples/tmp/tiles/4_7_12.png +0 -0
  1038. data/examples/tmp/tiles/4_7_13.png +0 -0
  1039. data/examples/tmp/tiles/4_7_14.png +0 -0
  1040. data/examples/tmp/tiles/4_7_15.png +0 -0
  1041. data/examples/tmp/tiles/4_7_2.png +0 -0
  1042. data/examples/tmp/tiles/4_7_3.png +0 -0
  1043. data/examples/tmp/tiles/4_7_4.png +0 -0
  1044. data/examples/tmp/tiles/4_7_5.png +0 -0
  1045. data/examples/tmp/tiles/4_7_6.png +0 -0
  1046. data/examples/tmp/tiles/4_7_7.png +0 -0
  1047. data/examples/tmp/tiles/4_8_1.png +0 -0
  1048. data/examples/tmp/tiles/4_8_12.png +0 -0
  1049. data/examples/tmp/tiles/4_8_13.png +0 -0
  1050. data/examples/tmp/tiles/4_8_14.png +0 -0
  1051. data/examples/tmp/tiles/4_8_15.png +0 -0
  1052. data/examples/tmp/tiles/4_8_2.png +0 -0
  1053. data/examples/tmp/tiles/4_8_3.png +0 -0
  1054. data/examples/tmp/tiles/4_8_4.png +0 -0
  1055. data/examples/tmp/tiles/4_8_5.png +0 -0
  1056. data/examples/tmp/tiles/4_8_6.png +0 -0
  1057. data/examples/tmp/tiles/4_8_7.png +0 -0
  1058. data/examples/tmp/tiles/4_8_8.png +0 -0
  1059. data/examples/tmp/tiles/4_8_9.png +0 -0
  1060. data/examples/tmp/tiles/4_9_1.png +0 -0
  1061. data/examples/tmp/tiles/4_9_12.png +0 -0
  1062. data/examples/tmp/tiles/4_9_13.png +0 -0
  1063. data/examples/tmp/tiles/4_9_14.png +0 -0
  1064. data/examples/tmp/tiles/4_9_15.png +0 -0
  1065. data/examples/tmp/tiles/4_9_2.png +0 -0
  1066. data/examples/tmp/tiles/4_9_3.png +0 -0
  1067. data/examples/tmp/tiles/4_9_4.png +0 -0
  1068. data/examples/tmp/tiles/4_9_5.png +0 -0
  1069. data/examples/tmp/tiles/4_9_6.png +0 -0
  1070. data/examples/tmp/tiles/4_9_7.png +0 -0
  1071. data/examples/tmp/tiles/4_9_8.png +0 -0
  1072. data/examples/tmp/tiles/4_9_9.png +0 -0
  1073. /data/examples/{museos.png → museum.png} +0 -0
  1074. /data/examples/{museos_datosabiertos.csv → museums.csv} +0 -0
  1075. /data/examples/tmp/tiles/{4_0_0.png → 7_37_71.png} +0 -0
  1076. /data/examples/tmp/tiles/{4_0_1.png → 7_37_72.png} +0 -0
  1077. /data/examples/tmp/tiles/{4_0_10.png → 7_37_73.png} +0 -0
  1078. /data/examples/tmp/tiles/{4_0_11.png → 7_37_74.png} +0 -0
  1079. /data/examples/tmp/tiles/{4_0_12.png → 7_37_75.png} +0 -0
  1080. /data/examples/tmp/tiles/{4_0_2.png → 7_37_76.png} +0 -0
  1081. /data/examples/tmp/tiles/{4_0_6.png → 7_37_77.png} +0 -0
  1082. /data/examples/tmp/tiles/{4_0_7.png → 7_37_87.png} +0 -0
  1083. /data/examples/tmp/tiles/{4_0_9.png → 7_40_84.png} +0 -0
  1084. /data/examples/tmp/tiles/{4_10_0.png → 7_40_85.png} +0 -0
  1085. /data/examples/tmp/tiles/{4_10_10.png → 7_41_82.png} +0 -0
  1086. /data/examples/tmp/tiles/{4_11_0.png → 7_41_83.png} +0 -0
  1087. /data/examples/tmp/tiles/{4_11_11.png → 7_41_84.png} +0 -0
  1088. /data/examples/tmp/tiles/{4_11_8.png → 7_41_85.png} +0 -0
  1089. /data/examples/tmp/tiles/{4_11_9.png → 7_41_86.png} +0 -0
  1090. /data/examples/tmp/tiles/{4_12_0.png → 7_42_80.png} +0 -0
  1091. /data/examples/tmp/tiles/{4_12_10.png → 7_42_81.png} +0 -0
  1092. /data/examples/tmp/tiles/{4_12_9.png → 7_42_82.png} +0 -0
  1093. /data/examples/tmp/tiles/{4_13_0.png → 7_42_83.png} +0 -0
  1094. /data/examples/tmp/tiles/{4_13_1.png → 7_42_84.png} +0 -0
  1095. /data/examples/tmp/tiles/{4_13_10.png → 7_42_86.png} +0 -0
  1096. /data/examples/tmp/tiles/{4_14_0.png → 7_42_87.png} +0 -0
  1097. /data/examples/tmp/tiles/{4_14_1.png → 7_43_79.png} +0 -0
  1098. /data/examples/tmp/tiles/{4_14_7.png → 7_43_80.png} +0 -0
  1099. /data/examples/tmp/tiles/{4_15_0.png → 7_43_81.png} +0 -0
  1100. /data/examples/tmp/tiles/{4_15_1.png → 7_43_82.png} +0 -0
  1101. /data/examples/tmp/tiles/{4_15_11.png → 7_43_83.png} +0 -0
  1102. /data/examples/tmp/tiles/{4_15_2.png → 7_43_84.png} +0 -0
  1103. /data/examples/tmp/tiles/{4_15_6.png → 7_43_86.png} +0 -0
  1104. /data/examples/tmp/tiles/{4_15_7.png → 7_43_87.png} +0 -0
  1105. /data/examples/tmp/tiles/{4_1_0.png → 7_44_78.png} +0 -0
  1106. /data/examples/tmp/tiles/{4_1_1.png → 7_44_79.png} +0 -0
  1107. /data/examples/tmp/tiles/{4_1_10.png → 7_44_80.png} +0 -0
  1108. /data/examples/tmp/tiles/{4_1_11.png → 7_44_81.png} +0 -0
  1109. /data/examples/tmp/tiles/{4_1_12.png → 7_44_82.png} +0 -0
  1110. /data/examples/tmp/tiles/{4_1_2.png → 7_44_83.png} +0 -0
  1111. /data/examples/tmp/tiles/{4_1_5.png → 7_44_84.png} +0 -0
  1112. /data/examples/tmp/tiles/{4_1_6.png → 7_44_85.png} +0 -0
  1113. /data/examples/tmp/tiles/{4_1_8.png → 7_44_86.png} +0 -0
  1114. /data/examples/tmp/tiles/{4_1_9.png → 7_44_87.png} +0 -0
  1115. /data/examples/tmp/tiles/{4_2_0.png → carto_light_15_9693_18339.png} +0 -0
  1116. /data/examples/tmp/tiles/{4_2_1.png → carto_light_15_9693_18340.png} +0 -0
  1117. /data/examples/tmp/tiles/{4_2_10.png → carto_light_15_9693_18341.png} +0 -0
  1118. /data/examples/tmp/tiles/{4_2_11.png → carto_light_15_9693_18342.png} +0 -0
  1119. /data/examples/tmp/tiles/{4_2_7.png → carto_light_15_9693_18343.png} +0 -0
  1120. /data/examples/tmp/tiles/{4_2_8.png → carto_light_15_9693_18344.png} +0 -0
  1121. /data/examples/tmp/tiles/{4_2_9.png → carto_light_15_9693_18345.png} +0 -0
  1122. /data/examples/tmp/tiles/{4_3_0.png → carto_light_15_9693_18346.png} +0 -0
  1123. /data/examples/tmp/tiles/{4_3_10.png → carto_light_15_9693_18347.png} +0 -0
  1124. /data/examples/tmp/tiles/{4_3_11.png → carto_light_15_9693_18348.png} +0 -0
  1125. /data/examples/tmp/tiles/{4_3_9.png → carto_light_15_9693_18349.png} +0 -0
  1126. /data/examples/tmp/tiles/{4_4_11.png → carto_light_15_9693_18350.png} +0 -0
  1127. /data/examples/tmp/tiles/{4_5_6.png → carto_light_15_9693_18351.png} +0 -0
  1128. /data/examples/tmp/tiles/{4_6_11.png → carto_light_15_9693_18352.png} +0 -0
  1129. /data/examples/tmp/tiles/{4_6_12.png → carto_light_15_9693_18353.png} +0 -0
  1130. /data/examples/tmp/tiles/{4_6_5.png → carto_light_15_9693_18354.png} +0 -0
  1131. /data/examples/tmp/tiles/{4_7_10.png → carto_light_15_9693_18355.png} +0 -0
  1132. /data/examples/tmp/tiles/{4_7_11.png → carto_light_15_9693_18356.png} +0 -0
  1133. /data/examples/tmp/tiles/{4_7_8.png → carto_light_15_9693_18357.png} +0 -0
  1134. /data/examples/tmp/tiles/{4_7_9.png → carto_light_15_9693_18358.png} +0 -0
  1135. /data/examples/tmp/tiles/{4_8_0.png → carto_light_15_9693_18359.png} +0 -0
  1136. /data/examples/tmp/tiles/{4_8_10.png → carto_light_15_9693_18360.png} +0 -0
  1137. /data/examples/tmp/tiles/{4_8_11.png → carto_light_15_9693_18361.png} +0 -0
  1138. /data/examples/tmp/tiles/{4_9_0.png → carto_light_15_9693_18362.png} +0 -0
  1139. /data/examples/tmp/tiles/{4_9_10.png → carto_light_15_9693_18363.png} +0 -0
  1140. /data/examples/tmp/tiles/{4_9_11.png → carto_light_15_9693_18364.png} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2942d8d8fd3401c3c6c5bd47b8ea648aa63bc415e9621fb4c2f40873a80c7c7
4
- data.tar.gz: d4a50c693ad4ab58e72365f8062d2420a8f683ccf692b97f4a7103f3a8ebe959
3
+ metadata.gz: 3c053cbc0c95a2ab748a9e2dca5bcfdfe2340569ebdb05c383a42ee6194c8df4
4
+ data.tar.gz: 81d4c110d6c26041c1b451499cec406f2d0b2326aef27fe430f6142c3df29daf
5
5
  SHA512:
6
- metadata.gz: 7fc569940f1fea02dbe396b32a05286c68a07712b0a3c81665c1a5d3ac512dc1be2b76c349986b1d0a042afde4e900907aa51efb66b1cd2e43782b440aef6fc4
7
- data.tar.gz: 3a062854e5e353a6d77632a162e26425071f808d6b8d84d08a60dc7e7f713edffbcc9ecff98351058cc868c49557a86b66e4da6a098502378310e4d05d2561d7
6
+ metadata.gz: 0e9accc97be10902e35d833587de5a0923c7a0e88b88944c9c3bc78cdda3c8cab0cd742c95563a6bfa177e48759a7232e636ed11ca1dc20ecd781deab8c859c6
7
+ data.tar.gz: f0d1a6d0a854cd046f29ccaffa125f48b86d147b965c43501c6cedeefb2b3ebf27962e055f6f266714c24b4b3e21cb57606611a594c2bfab30d0ec617d64da58
data/README.md CHANGED
@@ -1,24 +1,56 @@
1
- # libgd-gis
2
-
3
- **A geospatial raster engine for Ruby**
4
-
5
- Render real maps, GeoJSON layers, and geospatial data directly in Ruby using a native raster backend powered by **libgd**.
6
-
7
- This project brings back something Ruby lost over time:
8
- the ability to generate **maps, tiles, and geospatial visualizations natively**, without external tools like QGIS, ImageMagick, or Mapbox.
1
+ # LibGD-GIS
2
+
3
+ <p align="center">
4
+ <a href="https://rubystacknews.com/2026/01/07/ruby-can-now-draw-maps-and-i-started-with-ice-cream/">
5
+ <img src="https://img.shields.io/badge/RubyStackNews-CC342D?style=for-the-badge&logo=ruby&logoColor=white" />
6
+ </a>
7
+ <a href="https://x.com/ruby_stack_news">
8
+ <img src="https://img.shields.io/badge/Twitter%20@RubyStackNews-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white" />
9
+ </a>
10
+ <a href="https://www.linkedin.com/in/germ%C3%A1n-silva-56a12622/">
11
+ <img src="https://img.shields.io/badge/Germán%20Silva-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white" />
12
+ </a>
13
+ </p>
14
+
15
+ <p align="center">
16
+ <a href="https://rubygems.org/gems/libgd-gis">
17
+ <img src="https://img.shields.io/badge/RubyGems-libgd--gis-CC342D?style=for-the-badge&logo=rubygems&logoColor=white" />
18
+ </a>
19
+ <a href="https://github.com/ggerman/libgd-gis">
20
+ <img src="https://img.shields.io/badge/GitHub-libgd--gis-181717?style=for-the-badge&logo=github&logoColor=white" />
21
+ </a>
22
+ <a href="https://github.com/ggerman/ruby-libgd">
23
+ <img src="https://img.shields.io/badge/Engine-ruby--libgd-CC342D?style=for-the-badge&logo=ruby&logoColor=white" />
24
+ </a>
25
+ </p>
26
+
27
+ <p align="right">
28
+ <img src="docs/images/logo-gis.png" width="160" />
29
+ </p>
30
+
31
+ ![CI](https://github.com/ggerman/libgd-gis/actions/workflows/ci.yml/badge.svg)
32
+
33
+ | Examples | Examples | Examples |
34
+ | :----: | :----: | :--: |
35
+ | <img src="docs/examples/america.png" height="250"> | <img src="docs/examples/argentina_museum.png" height="250"> | <img src="docs/examples/museos_parana.png" height="250"> |
36
+ | <img src="docs/examples/asia.png" height="250"> | <img src="docs/examples/europe.png" height="250"> | <img src="docs/examples/icecream_parana.png" height="250"> |
37
+ | <img src="docs/examples/argentina_cities.png" height="250"> | <img src="docs/examples/tanzania_hydro.png" height="250"> | <img src="docs/examples/parana_polygon.png" height="250"> |
38
+ | <img src="docs/examples/parana_carto_dark.png" height="250"> | <img src="docs/examples/ramirez_avenue.png" height="250"> | |
9
39
 
10
40
  ---
11
41
 
12
- ## 🌍 Example
42
+ ## A geospatial raster engine for Ruby.
13
43
 
14
- This map of Tanzania was generated entirely in Ruby from a GeoJSON dataset of hydroelectric power plants:
44
+ libgd-gis allows Ruby to render real maps, GeoJSON layers, vector features, and geospatial tiles using a native raster backend powered by **libgd**.
15
45
 
16
- ![Tanzania hydro plants](examples/output/tanzania_hydro.png)
46
+ It restores something Ruby lost over time:
47
+ the ability to generate **maps, tiles, and GIS-grade visualizations natively**, without relying on external tools like QGIS, Mapnik, ImageMagick, or Mapbox.
17
48
 
18
- No JavaScript.
19
- No QGIS.
20
- No Mapbox.
21
- Just Ruby.
49
+ Built on top of **ruby-libgd**, this project turns Ruby into a **map rendering engine**, capable of producing spatial graphics, tiled maps, and geospatial outputs directly inside Ruby processes.
50
+
51
+ - No external renderers.
52
+ - No shelling out.
53
+ - Just Ruby, raster, and GIS.
22
54
 
23
55
  ---
24
56
 
@@ -75,29 +107,46 @@ Render hydroelectric plants from a GeoJSON file:
75
107
  require "json"
76
108
  require "gd/gis"
77
109
 
78
- geo = JSON.parse(File.read("hydro_plants.geojson"))
79
- plants = geo["features"]
80
-
81
- lons = plants.map { |f| f["geometry"]["coordinates"][0] }
82
- lats = plants.map { |f| f["geometry"]["coordinates"][1] }
83
-
84
- bbox = [lons.min, lats.min, lons.max, lats.max]
110
+ # ---------------------------
111
+ # Bounding box mundial
112
+ # ---------------------------
113
+ AMERICA = [-170, -60, -30, 75]
85
114
 
115
+ # ---------------------------
116
+ # Crear mapa
117
+ # ---------------------------
86
118
  map = GD::GIS::Map.new(
87
- bbox: bbox,
88
- zoom: 7,
119
+ bbox: AMERICA,
120
+ zoom: 4,
89
121
  basemap: :carto_light
90
122
  )
91
123
 
124
+ # Cargar datos
125
+ # ---------------------------
126
+ peaks = JSON.parse(File.read("picks.json"))
127
+
128
+ # ---------------------------
129
+ # Agregar capa de puntos
130
+ # ---------------------------
92
131
  map.add_points(
93
- plants,
94
- lon: ->(f) { f["geometry"]["coordinates"][0] },
95
- lat: ->(f) { f["geometry"]["coordinates"][1] },
96
- icon: "hydro.png"
132
+ peaks,
133
+ lon: ->(p) { p["longitude"] },
134
+ lat: ->(p) { p["latitude"] },
135
+ icon: "peak.png",
136
+ label: ->(p) { p["name"] },
137
+ font: "./fonts/DejaVuSans.ttf",
138
+ size: 10,
139
+ color: [0,0,0]
97
140
  )
98
141
 
142
+ # ---------------------------
143
+ # Renderizar y guardar
144
+ # ---------------------------
99
145
  map.render
100
- map.save("tanzania_hydro.png")
146
+ map.save("output/america.png")
147
+
148
+ puts "Saved output/america.png"
149
+
101
150
  ```
102
151
 
103
152
  ---
@@ -122,6 +171,6 @@ MIT
122
171
 
123
172
  ## Author
124
173
 
125
- Germán Silva
126
- https://github.com/ggerman
174
+ Germán Silva
175
+ https://github.com/ggerman
127
176
  https://rubystacknews.com
@@ -0,0 +1,89 @@
1
+ require "json"
2
+ require "gd"
3
+
4
+ # --------------------------------
5
+ # Input / output
6
+ # --------------------------------
7
+ BASE_MAP = "output/argentina.png"
8
+ DATA = "localidades.json"
9
+ OUTPUT = "output/argentina_localidades.png"
10
+
11
+ # --------------------------------
12
+ # Bounding box de Argentina (WGS84)
13
+ # --------------------------------
14
+ ARG_MIN_LON = -73.6
15
+ ARG_MAX_LON = -53.6
16
+ ARG_MIN_LAT = -55.1
17
+ ARG_MAX_LAT = -21.8
18
+
19
+ R = 6378137.0
20
+
21
+ def mercator_x(lon)
22
+ lon * Math::PI / 180.0 * R
23
+ end
24
+
25
+ def mercator_y(lat)
26
+ Math.log(Math.tan(Math::PI/4 + lat * Math::PI / 360.0)) * R
27
+ end
28
+
29
+ # --------------------------------
30
+ # Load base map
31
+ # --------------------------------
32
+ img = GD::Image.open(BASE_MAP)
33
+
34
+ width = img.width
35
+ height = img.height
36
+
37
+ flag = GD::Image.open("flag.png")
38
+ flag_w = flag.width
39
+ flag_h = flag.height
40
+
41
+ # --------------------------------
42
+ # Projected bounding box
43
+ # --------------------------------
44
+ min_x = mercator_x(ARG_MIN_LON)
45
+ max_x = mercator_x(ARG_MAX_LON)
46
+ min_y = mercator_y(ARG_MIN_LAT)
47
+ max_y = mercator_y(ARG_MAX_LAT)
48
+
49
+ def lonlat_to_pixel(lon, lat, min_x, max_x, min_y, max_y, width, height)
50
+ x = mercator_x(lon)
51
+ y = mercator_y(lat)
52
+
53
+ px = (x - min_x) / (max_x - min_x) * width
54
+ py = height - (y - min_y) / (max_y - min_y) * height
55
+
56
+ [px.to_i, py.to_i]
57
+ end
58
+
59
+ # --------------------------------
60
+ # Load locations
61
+ # --------------------------------
62
+ data = JSON.parse(File.read(DATA))
63
+
64
+ red = GD::Color.rgb(220, 40, 40)
65
+
66
+ puts "Plotting #{data["localidades"].size} localidades..."
67
+
68
+ data["localidades"].each do |loc|
69
+ lon = loc["centroide"]["lon"]
70
+ lat = loc["centroide"]["lat"]
71
+
72
+ x, y = lonlat_to_pixel(lon, lat, min_x, max_x, min_y, max_y, width, height)
73
+
74
+ # dibujar un punto
75
+ img.copy(
76
+ flag,
77
+ x - flag_w / 2,
78
+ y - flag_h / 2,
79
+ 0, 0,
80
+ flag_w,
81
+ flag_h
82
+ )
83
+ end
84
+
85
+ # --------------------------------
86
+ # Save result
87
+ # --------------------------------
88
+ img.save(OUTPUT)
89
+ puts "Saved #{OUTPUT}"
@@ -0,0 +1,70 @@
1
+ require "csv"
2
+ require "gd"
3
+ require "pry"
4
+
5
+ ZOOM = 7
6
+ TILE_SIZE = 256
7
+
8
+ # Bounding box Argentina (igual que en argentina_tiles.rb)
9
+ WEST = -73.6
10
+ EAST = -53.6
11
+ NORTH = -21.8
12
+ SOUTH = -55.1
13
+
14
+ def lon2tile(lon, z)
15
+ ((lon + 180.0) / 360.0 * (2 ** z)).floor
16
+ end
17
+
18
+ def lat2tile(lat, z)
19
+ rad = lat * Math::PI / 180
20
+ ((1 - Math.log(Math.tan(rad) + 1 / Math.cos(rad)) / Math::PI) / 2 * (2 ** z)).floor
21
+ end
22
+
23
+ def lon2px(lon, z)
24
+ ((lon + 180.0) / 360.0 * (256 * 2**z))
25
+ end
26
+
27
+ def lat2px(lat, z)
28
+ rad = lat * Math::PI / 180
29
+ ((1 - Math.log(Math.tan(rad) + 1 / Math.cos(rad)) / Math::PI) / 2 * (256 * 2**z))
30
+ end
31
+
32
+ # Same tile bbox used to build argentina.png
33
+ x_min = lon2tile(WEST, ZOOM)
34
+ y_min = lat2tile(NORTH, ZOOM)
35
+
36
+ offset_x = x_min * TILE_SIZE
37
+ offset_y = y_min * TILE_SIZE
38
+
39
+ # Load map
40
+ img = GD::Image.open("output/argentina.png")
41
+
42
+ # Load icon
43
+ icon = GD::Image.open("museos.png")
44
+ iw = icon.width
45
+ ih = icon.height
46
+
47
+ puts "Plotting museums..."
48
+
49
+ CSV.foreach("museos_datosabiertos.csv", headers: true, encoding: "bom|utf-8") do |row|
50
+ next if row["Latitud"].nil? || row["Longitud"].nil?
51
+
52
+ lat = row["Latitud"].to_f
53
+ lon = row["Longitud"].to_f
54
+
55
+ # global pixel in Web Mercator
56
+ px = lon2px(lon, ZOOM)
57
+ py = lat2px(lat, ZOOM)
58
+
59
+ # local pixel inside argentina.png
60
+ x = px - offset_x
61
+ y = py - offset_y
62
+
63
+ # skip if outside raster
64
+ next if x < 0 || y < 0 || x >= img.width || y >= img.height
65
+
66
+ img.copy(icon, x.to_i - iw/2, y.to_i - ih/2, 0, 0, iw, ih)
67
+ end
68
+
69
+ img.save("output/argentina_museums.png")
70
+ puts "Saved output/argentina_museums.png"
@@ -0,0 +1,42 @@
1
+ require "json"
2
+ require "gd/gis"
3
+
4
+ # ---------------------------
5
+ # Bounding box mundial
6
+ # ---------------------------
7
+ ASIA = [25.0, -10.0, 150.0, 60.0]
8
+
9
+ # ---------------------------
10
+ # Create map
11
+ # ---------------------------
12
+ map = GD::GIS::Map.new(
13
+ bbox: ASIA,
14
+ zoom: 4,
15
+ basemap: :carto_light
16
+ )
17
+
18
+ # Cargar datos
19
+ # ---------------------------
20
+ peaks = JSON.parse(File.read("picks.json"))
21
+
22
+ # ---------------------------
23
+ # Add points layer
24
+ # ---------------------------
25
+ map.add_points(
26
+ peaks,
27
+ lon: ->(p) { p["longitude"] },
28
+ lat: ->(p) { p["latitude"] },
29
+ icon: "peak.png",
30
+ label: ->(p) { p["name"] },
31
+ font: "./fonts/DejaVuSans.ttf",
32
+ size: 10,
33
+ color: [0,0,0]
34
+ )
35
+
36
+ # ---------------------------
37
+ # Render and save
38
+ # ---------------------------
39
+ map.render
40
+ map.save("output/asia.png")
41
+
42
+ puts "Saved output/asia.png"
@@ -0,0 +1,44 @@
1
+ require "json"
2
+ require "gd/gis"
3
+
4
+ # Paraná bbox
5
+ BBOX = [-60.556640625, -31.8402326679, -60.46875, -31.6907818061]
6
+
7
+ map = GD::GIS::Map.new(
8
+ bbox: BBOX,
9
+ zoom: 14,
10
+ basemap: :esri_satellite
11
+ )
12
+
13
+ geo = JSON.parse(File.read("ramirez_full.geojson"))
14
+ features = geo["features"]
15
+
16
+ map.add_lines(
17
+ features,
18
+ stroke: [0, 0, 0, 90], # borde
19
+ fill: [0, 0, 0, 90], # calzada
20
+ width: 50 # ancho en metros
21
+ )
22
+
23
+ map.add_lines(
24
+ features,
25
+ stroke: [255, 165, 0, 90],
26
+ width: 2
27
+ )
28
+
29
+ # Label
30
+ map.add_points(
31
+ [{ lon: -60.5205, lat: -31.76, name: "Av. Ramírez" }],
32
+ lon: ->(p){ p[:lon] },
33
+ lat: ->(p){ p[:lat] },
34
+ label: ->(p){ p[:name] },
35
+ font: "./fonts/DejaVuSans.ttf",
36
+ size: 16,
37
+ color: [0,0,0,160],
38
+ icon: "mark.png"
39
+ )
40
+
41
+ map.render
42
+ map.save("ramirez_gis.png")
43
+
44
+ puts "Generated ramirez_gis.png"
@@ -0,0 +1,29 @@
1
+ require "json"
2
+ require "gd/gis"
3
+
4
+ EUROPE = [-15.0, 34.0, 40.0, 72.0]
5
+
6
+ map = GD::GIS::Map.new(
7
+ bbox: EUROPE,
8
+ zoom: 4,
9
+ basemap: :carto_light
10
+ )
11
+
12
+
13
+ peaks = JSON.parse(File.read("picks.json"))
14
+
15
+ map.add_points(
16
+ peaks,
17
+ lon: ->(p) { p["longitude"] },
18
+ lat: ->(p) { p["latitude"] },
19
+ icon: "peak.png",
20
+ label: ->(p) { p["name"] },
21
+ font: "./fonts/DejaVuSans.ttf",
22
+ size: 10,
23
+ color: [0,0,0]
24
+ )
25
+
26
+ map.render
27
+ map.save("output/europe.png")
28
+
29
+ puts "Saved output/europe.png"
data/examples/flag.png CHANGED
Binary file
@@ -0,0 +1,37 @@
1
+ require "json"
2
+ require "gd/gis"
3
+
4
+ CITY = [-60.56, -31.76, -60.50, -31.71]
5
+
6
+ map = GD::GIS::Map.new(
7
+ bbox: CITY,
8
+ zoom: 15,
9
+ basemap: :carto_light
10
+ )
11
+
12
+ # --------------------------------
13
+ # Cargar datos
14
+ # --------------------------------
15
+ shops = JSON.parse(File.read("heladerias.json"))
16
+
17
+ # --------------------------------
18
+ # Ice cream shops layer
19
+ # --------------------------------
20
+ map.add_points(
21
+ shops,
22
+ lon: ->(s) { s["lon"] },
23
+ lat: ->(s) { s["lat"] },
24
+ icon: "ice-cream.png",
25
+ label: ->(s) { s["name"] },
26
+ font: "./fonts/DejaVuSans.ttf",
27
+ size: 11,
28
+ color: [40,40,40]
29
+ )
30
+
31
+ # --------------------------------
32
+ # Render
33
+ # --------------------------------
34
+ map.render
35
+ map.save("output/heladerias_parana.png")
36
+
37
+ puts "Saved output/heladerias_parana.png"
data/examples/map.png ADDED
Binary file
@@ -0,0 +1,98 @@
1
+ require "net/http"
2
+ require "uri"
3
+ require "fileutils"
4
+ require "json"
5
+ require "gd"
6
+
7
+ ZOOM = 4
8
+ TILE_SIZE = 256
9
+
10
+ X_MIN = 0
11
+ Y_MIN = 0
12
+ X_MAX = (2 ** ZOOM) - 1
13
+ Y_MAX = (2 ** ZOOM) - 1
14
+
15
+ COLS = X_MAX - X_MIN + 1
16
+ ROWS = Y_MAX - Y_MIN + 1
17
+
18
+ WIDTH = COLS * TILE_SIZE
19
+ HEIGHT = ROWS * TILE_SIZE
20
+
21
+ FONT = "./fonts/DejaVuSans-Bold.ttf"
22
+
23
+ FileUtils.mkdir_p("tmp/tiles")
24
+ FileUtils.mkdir_p("output")
25
+
26
+ def lon2px(lon, z)
27
+ ((lon + 180.0) / 360.0 * (256 * 2**z))
28
+ end
29
+
30
+ def lat2px(lat, z)
31
+ rad = lat * Math::PI / 180
32
+ ((1 - Math.log(Math.tan(rad) + 1 / Math.cos(rad)) / Math::PI) / 2 * (256 * 2**z))
33
+ end
34
+
35
+ def fetch_tile(z, x, y)
36
+ path = "tmp/tiles/#{z}_#{x}_#{y}.png"
37
+ return path if File.exist?(path)
38
+
39
+ url = URI("https://basemaps.cartocdn.com/light_all/#{z}/#{x}/#{y}.png")
40
+ puts "Downloading #{url}"
41
+
42
+ Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
43
+ req = Net::HTTP::Get.new(url)
44
+ req["User-Agent"] = "ruby-libgd-gis"
45
+ res = http.request(req)
46
+ raise "Tile failed #{z}/#{x}/#{y}" unless res.code == "200"
47
+ File.binwrite(path, res.body)
48
+ end
49
+
50
+ path
51
+ end
52
+
53
+ puts "Building world map #{WIDTH}x#{HEIGHT}..."
54
+
55
+ map = GD::Image.new(WIDTH, HEIGHT)
56
+
57
+ (X_MIN..X_MAX).each_with_index do |x, cx|
58
+ (Y_MIN..Y_MAX).each_with_index do |y, cy|
59
+ tile = GD::Image.open(fetch_tile(ZOOM, x, y))
60
+ map.copy(tile, cx * TILE_SIZE, cy * TILE_SIZE, 0, 0, TILE_SIZE, TILE_SIZE)
61
+ end
62
+ end
63
+
64
+ peaks = JSON.parse(File.read("picks.json"))
65
+
66
+ red = GD::Color.rgb(220, 40, 40)
67
+ black = GD::Color.rgb(0, 0, 0)
68
+
69
+ puts "Plotting peaks..."
70
+
71
+ peaks.each do |p|
72
+ lon = p["longitude"]
73
+ lat = p["latitude"]
74
+ name = p["name"]
75
+
76
+ px = lon2px(lon, ZOOM)
77
+ py = lat2px(lat, ZOOM)
78
+
79
+ x = px.to_i
80
+ y = py.to_i
81
+
82
+ map.filled_circle(x, y, 7, red)
83
+
84
+ map.text(
85
+ name,
86
+ x: x + 10,
87
+ y: y - 5,
88
+ size: 10,
89
+ color: black,
90
+ font: FONT
91
+ )
92
+ end
93
+
94
+ # =========================
95
+ # Save
96
+ # =========================
97
+ map.save("output/world_peaks.png")
98
+ puts "Saved output/world_peaks.png"
Binary file
@@ -0,0 +1,29 @@
1
+ require "gd/gis"
2
+
3
+ BBOX = [-60.53, -31.77, -60.51, -31.74]
4
+
5
+ map = GD::GIS::Map.new(
6
+ bbox: BBOX,
7
+ zoom: 15,
8
+ basemap: :carto_dark
9
+ )
10
+
11
+ polygon = [
12
+ [-60.525, -31.750],
13
+ [-60.520, -31.750],
14
+ [-60.520, -31.755],
15
+ [-60.525, -31.755],
16
+ [-60.525, -31.750]
17
+ ]
18
+
19
+ map.add_polygons(
20
+ [polygon],
21
+ fill: [255, 140, 0, 120],
22
+ stroke: [0, 0, 0, 200],
23
+ width: 2
24
+ )
25
+
26
+ map.render
27
+ map.save("carto_dark.png")
28
+
29
+ puts "Generated carto_dark.png"