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.
- checksums.yaml +4 -4
- data/README.md +80 -31
- data/examples/argentina_cities.rb +89 -0
- data/examples/argentina_museums.rb +70 -0
- data/examples/asia-peaks.rb +42 -0
- data/examples/avenue_ramirez.rb +44 -0
- data/examples/europe-peaks.rb +29 -0
- data/examples/flag.png +0 -0
- data/examples/ice-cream-shops.rb +37 -0
- data/examples/map.png +0 -0
- data/examples/mountains.rb +98 -0
- data/examples/output/argentina.png +0 -0
- data/examples/output/argentina_localidades.png +0 -0
- data/examples/parana-city.rb +29 -0
- data/examples/parana.osm +186897 -0
- data/examples/parana.png +0 -0
- data/examples/parana_museums.rb +48 -0
- data/examples/parana_streets.geojson +1 -0
- data/examples/parana_streets.rb +48 -0
- data/examples/streets.geojson +1 -0
- data/examples/streets.png +0 -0
- data/examples/streets_geojson.rb +33 -0
- data/examples/the_america_peaks.rb +43 -0
- data/examples/tmp/tiles/7_37_78.png +0 -0
- data/examples/tmp/tiles/7_37_79.png +0 -0
- data/examples/tmp/tiles/7_37_80.png +0 -0
- data/examples/tmp/tiles/7_37_81.png +0 -0
- data/examples/tmp/tiles/7_37_82.png +0 -0
- data/examples/tmp/tiles/7_37_83.png +0 -0
- data/examples/tmp/tiles/7_37_84.png +0 -0
- data/examples/tmp/tiles/7_37_85.png +0 -0
- data/examples/tmp/tiles/7_37_86.png +0 -0
- data/examples/tmp/tiles/7_38_71.png +0 -0
- data/examples/tmp/tiles/7_38_72.png +0 -0
- data/examples/tmp/tiles/7_38_73.png +0 -0
- data/examples/tmp/tiles/7_38_74.png +0 -0
- data/examples/tmp/tiles/7_38_75.png +0 -0
- data/examples/tmp/tiles/7_38_76.png +0 -0
- data/examples/tmp/tiles/7_38_77.png +0 -0
- data/examples/tmp/tiles/7_38_78.png +0 -0
- data/examples/tmp/tiles/7_38_79.png +0 -0
- data/examples/tmp/tiles/7_38_80.png +0 -0
- data/examples/tmp/tiles/7_38_81.png +0 -0
- data/examples/tmp/tiles/7_38_82.png +0 -0
- data/examples/tmp/tiles/7_38_83.png +0 -0
- data/examples/tmp/tiles/7_38_84.png +0 -0
- data/examples/tmp/tiles/7_38_85.png +0 -0
- data/examples/tmp/tiles/7_38_86.png +0 -0
- data/examples/tmp/tiles/7_38_87.png +0 -0
- data/examples/tmp/tiles/7_39_71.png +0 -0
- data/examples/tmp/tiles/7_39_72.png +0 -0
- data/examples/tmp/tiles/7_39_73.png +0 -0
- data/examples/tmp/tiles/7_39_74.png +0 -0
- data/examples/tmp/tiles/7_39_75.png +0 -0
- data/examples/tmp/tiles/7_39_76.png +0 -0
- data/examples/tmp/tiles/7_39_77.png +0 -0
- data/examples/tmp/tiles/7_39_78.png +0 -0
- data/examples/tmp/tiles/7_39_79.png +0 -0
- data/examples/tmp/tiles/7_39_80.png +0 -0
- data/examples/tmp/tiles/7_39_81.png +0 -0
- data/examples/tmp/tiles/7_39_82.png +0 -0
- data/examples/tmp/tiles/7_39_83.png +0 -0
- data/examples/tmp/tiles/7_39_84.png +0 -0
- data/examples/tmp/tiles/7_39_85.png +0 -0
- data/examples/tmp/tiles/7_39_86.png +0 -0
- data/examples/tmp/tiles/7_39_87.png +0 -0
- data/examples/tmp/tiles/7_40_71.png +0 -0
- data/examples/tmp/tiles/7_40_72.png +0 -0
- data/examples/tmp/tiles/7_40_73.png +0 -0
- data/examples/tmp/tiles/7_40_74.png +0 -0
- data/examples/tmp/tiles/7_40_75.png +0 -0
- data/examples/tmp/tiles/7_40_76.png +0 -0
- data/examples/tmp/tiles/7_40_77.png +0 -0
- data/examples/tmp/tiles/7_40_78.png +0 -0
- data/examples/tmp/tiles/7_40_79.png +0 -0
- data/examples/tmp/tiles/7_40_80.png +0 -0
- data/examples/tmp/tiles/7_40_81.png +0 -0
- data/examples/tmp/tiles/7_40_82.png +0 -0
- data/examples/tmp/tiles/7_40_83.png +0 -0
- data/examples/tmp/tiles/7_40_86.png +0 -0
- data/examples/tmp/tiles/7_40_87.png +0 -0
- data/examples/tmp/tiles/7_41_71.png +0 -0
- data/examples/tmp/tiles/7_41_72.png +0 -0
- data/examples/tmp/tiles/7_41_73.png +0 -0
- data/examples/tmp/tiles/7_41_74.png +0 -0
- data/examples/tmp/tiles/7_41_75.png +0 -0
- data/examples/tmp/tiles/7_41_76.png +0 -0
- data/examples/tmp/tiles/7_41_77.png +0 -0
- data/examples/tmp/tiles/7_41_78.png +0 -0
- data/examples/tmp/tiles/7_41_79.png +0 -0
- data/examples/tmp/tiles/7_41_80.png +0 -0
- data/examples/tmp/tiles/7_41_81.png +0 -0
- data/examples/tmp/tiles/7_41_87.png +0 -0
- data/examples/tmp/tiles/7_42_71.png +0 -0
- data/examples/tmp/tiles/7_42_72.png +0 -0
- data/examples/tmp/tiles/7_42_73.png +0 -0
- data/examples/tmp/tiles/7_42_74.png +0 -0
- data/examples/tmp/tiles/7_42_75.png +0 -0
- data/examples/tmp/tiles/7_42_76.png +0 -0
- data/examples/tmp/tiles/7_42_77.png +0 -0
- data/examples/tmp/tiles/7_42_78.png +0 -0
- data/examples/tmp/tiles/7_42_79.png +0 -0
- data/examples/tmp/tiles/7_42_85.png +0 -0
- data/examples/tmp/tiles/7_43_71.png +0 -0
- data/examples/tmp/tiles/7_43_72.png +0 -0
- data/examples/tmp/tiles/7_43_73.png +0 -0
- data/examples/tmp/tiles/7_43_74.png +0 -0
- data/examples/tmp/tiles/7_43_75.png +0 -0
- data/examples/tmp/tiles/7_43_76.png +0 -0
- data/examples/tmp/tiles/7_43_77.png +0 -0
- data/examples/tmp/tiles/7_43_78.png +0 -0
- data/examples/tmp/tiles/7_43_85.png +0 -0
- data/examples/tmp/tiles/7_44_71.png +0 -0
- data/examples/tmp/tiles/7_44_72.png +0 -0
- data/examples/tmp/tiles/7_44_73.png +0 -0
- data/examples/tmp/tiles/7_44_74.png +0 -0
- data/examples/tmp/tiles/7_44_75.png +0 -0
- data/examples/tmp/tiles/7_44_76.png +0 -0
- data/examples/tmp/tiles/7_44_77.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10871_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10871_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10871_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10871_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10871_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10871_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10872_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10872_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10872_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10872_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10872_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10872_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10873_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10873_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10873_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10873_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10873_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10873_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10874_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10874_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10874_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10874_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10874_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10874_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10875_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10875_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10875_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10875_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10875_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10875_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10876_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10876_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10876_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10876_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10876_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10876_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10877_19430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10877_19431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10877_19432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10877_19433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10877_19434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_10877_19435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18365.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18366.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18367.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18368.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18369.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18370.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18371.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18372.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18373.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18374.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18375.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18376.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18377.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18378.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18379.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18380.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18381.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18382.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18383.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18384.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18385.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18386.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18387.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18388.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18389.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18390.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18391.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18392.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18393.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18394.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18395.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18396.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18397.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18398.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18399.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18400.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18401.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18402.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18403.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18404.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18405.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18406.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18407.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18408.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18409.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18410.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18411.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18412.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18413.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18414.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18415.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18416.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18417.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18418.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18419.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18420.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18421.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18422.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18423.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18424.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18425.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18426.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18427.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18428.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18429.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18430.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18431.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18432.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18433.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18434.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18435.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18436.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18437.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18438.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18439.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18440.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18441.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18442.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18443.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18444.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18445.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18446.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18447.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18448.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18449.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18450.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18451.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18452.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18453.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18454.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18455.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18456.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18457.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18458.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18459.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18460.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18461.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18462.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18463.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18464.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18465.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18466.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18467.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18468.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18469.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18470.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18471.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18472.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18473.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18474.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18475.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18476.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18477.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18478.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18479.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18480.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18481.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18482.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18483.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18484.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18485.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18486.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18487.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18488.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18489.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18490.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18491.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18492.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18493.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18494.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18495.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18496.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18497.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18498.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18499.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18500.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18501.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18502.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18503.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18504.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18505.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18506.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18507.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18508.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18509.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18510.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18511.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18512.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18513.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18514.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18515.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18516.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18517.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18518.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18519.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18520.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18521.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18522.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18523.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18524.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18525.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18526.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18527.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18528.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18529.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18530.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18531.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18532.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18533.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18534.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18535.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18536.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18537.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18538.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18539.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18540.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18541.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18542.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18543.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18544.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18545.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18546.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18547.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18548.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18549.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18550.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18551.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18552.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18553.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18554.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18555.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18556.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18557.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18558.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18559.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18560.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18561.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18562.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18563.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18564.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18565.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18566.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18567.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18568.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18569.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18570.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18571.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18572.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18573.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18574.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18575.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18576.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18577.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18578.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18579.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18580.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18581.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18582.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18583.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18584.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18585.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18586.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18587.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18588.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18589.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18590.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18591.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18592.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18593.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18594.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18595.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18596.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18597.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18598.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18599.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18600.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18601.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18602.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18603.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18604.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18605.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18606.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18607.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18608.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18609.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18610.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18611.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18612.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18613.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18614.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18615.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18616.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18617.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18618.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18619.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18620.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18621.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18622.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18623.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18624.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18625.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18626.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18627.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18628.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18629.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18630.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18631.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18632.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18633.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18634.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18635.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18636.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18637.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18638.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18639.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18640.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18641.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18642.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18643.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18644.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18645.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18646.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18647.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18648.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18649.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18650.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18651.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18652.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18653.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18654.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18655.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18656.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18657.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18658.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18659.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18660.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18661.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18662.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18663.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18664.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18665.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18666.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18667.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18668.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18669.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18670.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18671.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18672.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18673.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18674.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18675.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18676.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18677.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18678.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18679.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18680.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18681.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18682.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18683.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18684.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18685.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18686.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18687.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18688.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18689.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18690.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18691.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18692.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18693.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18694.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18695.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18696.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18697.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18698.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18699.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18700.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18701.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18702.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18703.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18704.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18705.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18706.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18707.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18708.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18709.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18710.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18711.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18712.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18713.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18714.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18715.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18716.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18717.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18718.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18719.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18720.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18721.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18722.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18723.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18724.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18725.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18726.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18727.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18728.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18729.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18730.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18731.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18732.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18733.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18734.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18735.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18736.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18737.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18738.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18739.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18740.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18741.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18742.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18743.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18744.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18745.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18746.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18747.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18748.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18749.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18750.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18751.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18752.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18753.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18754.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18755.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18756.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18757.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18758.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18759.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18760.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18761.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18762.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18763.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18764.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18765.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18766.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18767.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18768.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18769.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18770.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18771.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18772.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18773.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18774.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18775.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18776.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18777.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18778.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18779.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18780.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18781.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18782.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18783.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18784.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18785.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18786.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18787.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18788.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18789.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18790.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18791.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18792.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18793.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18794.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18795.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18796.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18797.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18798.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18799.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18800.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18801.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18802.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18803.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18804.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18805.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18806.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18807.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18808.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18809.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18810.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18811.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18812.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18813.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18814.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18815.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18816.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18817.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18818.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18819.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18820.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18821.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18822.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18823.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18824.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18825.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18826.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18827.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18828.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18829.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18830.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18831.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18832.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18833.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18834.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18835.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18836.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18837.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18838.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18839.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18840.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18841.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18842.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18843.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18844.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18845.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18846.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18847.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18848.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18849.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18850.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18851.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18852.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18853.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18854.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18855.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18856.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18857.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18858.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18859.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18860.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18861.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18862.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18863.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18864.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18865.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18866.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18867.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18868.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18869.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18870.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18871.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18872.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18873.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18874.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18875.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18876.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18877.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18878.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18879.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18880.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18881.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18882.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18883.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18884.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18885.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18886.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18887.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18888.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18889.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18890.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18891.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18892.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18893.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18894.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18895.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18896.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18897.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18898.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18899.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18900.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18901.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18902.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18903.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18904.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18905.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18906.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18907.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18908.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18909.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18910.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18911.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18912.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18913.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18914.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18915.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18916.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18917.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18918.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18919.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18920.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18921.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18922.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18923.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18924.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18925.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18926.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18927.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18928.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18929.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18930.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18931.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18932.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18933.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18934.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18935.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18936.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18937.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18938.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18939.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18940.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18941.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18942.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18943.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18944.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18945.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18946.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18947.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18948.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18949.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18950.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18951.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18952.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18953.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18954.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18955.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18956.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18957.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18958.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18959.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18960.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18961.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18962.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18963.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18964.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18965.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18966.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18967.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18968.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18969.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18970.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18971.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18972.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18973.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18974.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18975.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18976.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18977.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18978.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18979.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18980.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18981.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18982.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18983.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18984.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18985.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18986.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18987.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18988.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18989.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18990.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18991.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18992.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18993.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18994.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18995.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18996.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18997.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18998.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_18999.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19000.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19001.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19002.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19003.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19004.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19005.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19006.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19007.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19008.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19009.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19010.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19011.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19012.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19013.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19014.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19015.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19016.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19017.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19018.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19019.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19020.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19021.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19022.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19023.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19024.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19025.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19026.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19027.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19028.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19029.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19030.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19031.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19032.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19033.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19034.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19035.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19036.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19037.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19038.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19039.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19040.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19041.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19042.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19043.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19044.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19045.png +0 -0
- data/examples/tmp/tiles/carto_light_15_9693_19046.png +0 -0
- data/examples/tmp/tiles/carto_light_5_10_17.png +0 -0
- data/examples/tmp/tiles/carto_light_5_10_18.png +0 -0
- data/examples/tmp/tiles/carto_light_5_10_19.png +0 -0
- data/examples/tmp/tiles/carto_light_5_10_20.png +0 -0
- data/examples/tmp/tiles/carto_light_5_10_21.png +0 -0
- data/examples/tmp/tiles/carto_light_5_11_17.png +0 -0
- data/examples/tmp/tiles/carto_light_5_11_18.png +0 -0
- data/examples/tmp/tiles/carto_light_5_11_19.png +0 -0
- data/examples/tmp/tiles/carto_light_5_11_20.png +0 -0
- data/examples/tmp/tiles/carto_light_5_11_21.png +0 -0
- data/examples/tmp/tiles/carto_light_5_9_17.png +0 -0
- data/examples/tmp/tiles/carto_light_5_9_18.png +0 -0
- data/examples/tmp/tiles/carto_light_5_9_19.png +0 -0
- data/examples/tmp/tiles/carto_light_5_9_20.png +0 -0
- data/examples/tmp/tiles/carto_light_5_9_21.png +0 -0
- data/examples/verbose.txt +11 -0
- data/lib/gd/gis/basemap.rb +116 -9
- data/lib/gd/gis/geometry.rb +40 -0
- data/lib/gd/gis/layer_geojson.rb +75 -0
- data/lib/gd/gis/layer_lines.rb +36 -0
- data/lib/gd/gis/layer_points.rb +31 -1
- data/lib/gd/gis/layer_polygons.rb +38 -0
- data/lib/gd/gis/map.rb +58 -78
- data/lib/gd/gis/projection.rb +14 -0
- metadata +932 -278
- data/examples/a-world_peaks.rb +0 -42
- data/examples/argentina.png +0 -0
- data/examples/argentina_con_localidades.rb +0 -89
- data/examples/argentina_museos.rb +0 -70
- data/examples/hydro.png +0 -0
- data/examples/hydro_plants.geojson +0 -25
- data/examples/montanas.rb +0 -118
- data/examples/output/argentina_museos.png +0 -0
- data/examples/output/tanzania_hydro.png +0 -0
- data/examples/output/world_peaks-s.png +0 -0
- data/examples/output/world_peaks.png +0 -0
- data/examples/peak.png +0 -0
- data/examples/picks.json +0 -50
- data/examples/render_tile.rb +0 -31
- data/examples/tmp/tiles/4_0_13.png +0 -0
- data/examples/tmp/tiles/4_0_14.png +0 -0
- data/examples/tmp/tiles/4_0_15.png +0 -0
- data/examples/tmp/tiles/4_0_3.png +0 -0
- data/examples/tmp/tiles/4_0_4.png +0 -0
- data/examples/tmp/tiles/4_0_5.png +0 -0
- data/examples/tmp/tiles/4_0_8.png +0 -0
- data/examples/tmp/tiles/4_10_1.png +0 -0
- data/examples/tmp/tiles/4_10_11.png +0 -0
- data/examples/tmp/tiles/4_10_12.png +0 -0
- data/examples/tmp/tiles/4_10_13.png +0 -0
- data/examples/tmp/tiles/4_10_14.png +0 -0
- data/examples/tmp/tiles/4_10_15.png +0 -0
- data/examples/tmp/tiles/4_10_2.png +0 -0
- data/examples/tmp/tiles/4_10_3.png +0 -0
- data/examples/tmp/tiles/4_10_4.png +0 -0
- data/examples/tmp/tiles/4_10_5.png +0 -0
- data/examples/tmp/tiles/4_10_6.png +0 -0
- data/examples/tmp/tiles/4_10_7.png +0 -0
- data/examples/tmp/tiles/4_10_8.png +0 -0
- data/examples/tmp/tiles/4_10_9.png +0 -0
- data/examples/tmp/tiles/4_11_1.png +0 -0
- data/examples/tmp/tiles/4_11_10.png +0 -0
- data/examples/tmp/tiles/4_11_12.png +0 -0
- data/examples/tmp/tiles/4_11_13.png +0 -0
- data/examples/tmp/tiles/4_11_14.png +0 -0
- data/examples/tmp/tiles/4_11_15.png +0 -0
- data/examples/tmp/tiles/4_11_2.png +0 -0
- data/examples/tmp/tiles/4_11_3.png +0 -0
- data/examples/tmp/tiles/4_11_4.png +0 -0
- data/examples/tmp/tiles/4_11_5.png +0 -0
- data/examples/tmp/tiles/4_11_6.png +0 -0
- data/examples/tmp/tiles/4_11_7.png +0 -0
- data/examples/tmp/tiles/4_12_1.png +0 -0
- data/examples/tmp/tiles/4_12_11.png +0 -0
- data/examples/tmp/tiles/4_12_12.png +0 -0
- data/examples/tmp/tiles/4_12_13.png +0 -0
- data/examples/tmp/tiles/4_12_14.png +0 -0
- data/examples/tmp/tiles/4_12_15.png +0 -0
- data/examples/tmp/tiles/4_12_2.png +0 -0
- data/examples/tmp/tiles/4_12_3.png +0 -0
- data/examples/tmp/tiles/4_12_4.png +0 -0
- data/examples/tmp/tiles/4_12_5.png +0 -0
- data/examples/tmp/tiles/4_12_6.png +0 -0
- data/examples/tmp/tiles/4_12_7.png +0 -0
- data/examples/tmp/tiles/4_12_8.png +0 -0
- data/examples/tmp/tiles/4_13_11.png +0 -0
- data/examples/tmp/tiles/4_13_12.png +0 -0
- data/examples/tmp/tiles/4_13_13.png +0 -0
- data/examples/tmp/tiles/4_13_14.png +0 -0
- data/examples/tmp/tiles/4_13_15.png +0 -0
- data/examples/tmp/tiles/4_13_2.png +0 -0
- data/examples/tmp/tiles/4_13_3.png +0 -0
- data/examples/tmp/tiles/4_13_4.png +0 -0
- data/examples/tmp/tiles/4_13_5.png +0 -0
- data/examples/tmp/tiles/4_13_6.png +0 -0
- data/examples/tmp/tiles/4_13_7.png +0 -0
- data/examples/tmp/tiles/4_13_8.png +0 -0
- data/examples/tmp/tiles/4_13_9.png +0 -0
- data/examples/tmp/tiles/4_14_10.png +0 -0
- data/examples/tmp/tiles/4_14_11.png +0 -0
- data/examples/tmp/tiles/4_14_12.png +0 -0
- data/examples/tmp/tiles/4_14_13.png +0 -0
- data/examples/tmp/tiles/4_14_14.png +0 -0
- data/examples/tmp/tiles/4_14_15.png +0 -0
- data/examples/tmp/tiles/4_14_2.png +0 -0
- data/examples/tmp/tiles/4_14_3.png +0 -0
- data/examples/tmp/tiles/4_14_4.png +0 -0
- data/examples/tmp/tiles/4_14_5.png +0 -0
- data/examples/tmp/tiles/4_14_6.png +0 -0
- data/examples/tmp/tiles/4_14_8.png +0 -0
- data/examples/tmp/tiles/4_14_9.png +0 -0
- data/examples/tmp/tiles/4_15_10.png +0 -0
- data/examples/tmp/tiles/4_15_12.png +0 -0
- data/examples/tmp/tiles/4_15_13.png +0 -0
- data/examples/tmp/tiles/4_15_14.png +0 -0
- data/examples/tmp/tiles/4_15_15.png +0 -0
- data/examples/tmp/tiles/4_15_3.png +0 -0
- data/examples/tmp/tiles/4_15_4.png +0 -0
- data/examples/tmp/tiles/4_15_5.png +0 -0
- data/examples/tmp/tiles/4_15_8.png +0 -0
- data/examples/tmp/tiles/4_15_9.png +0 -0
- data/examples/tmp/tiles/4_1_13.png +0 -0
- data/examples/tmp/tiles/4_1_14.png +0 -0
- data/examples/tmp/tiles/4_1_15.png +0 -0
- data/examples/tmp/tiles/4_1_3.png +0 -0
- data/examples/tmp/tiles/4_1_4.png +0 -0
- data/examples/tmp/tiles/4_1_7.png +0 -0
- data/examples/tmp/tiles/4_2_12.png +0 -0
- data/examples/tmp/tiles/4_2_13.png +0 -0
- data/examples/tmp/tiles/4_2_14.png +0 -0
- data/examples/tmp/tiles/4_2_15.png +0 -0
- data/examples/tmp/tiles/4_2_2.png +0 -0
- data/examples/tmp/tiles/4_2_3.png +0 -0
- data/examples/tmp/tiles/4_2_4.png +0 -0
- data/examples/tmp/tiles/4_2_5.png +0 -0
- data/examples/tmp/tiles/4_2_6.png +0 -0
- data/examples/tmp/tiles/4_3_1.png +0 -0
- data/examples/tmp/tiles/4_3_12.png +0 -0
- data/examples/tmp/tiles/4_3_13.png +0 -0
- data/examples/tmp/tiles/4_3_14.png +0 -0
- data/examples/tmp/tiles/4_3_15.png +0 -0
- data/examples/tmp/tiles/4_3_2.png +0 -0
- data/examples/tmp/tiles/4_3_3.png +0 -0
- data/examples/tmp/tiles/4_3_4.png +0 -0
- data/examples/tmp/tiles/4_3_5.png +0 -0
- data/examples/tmp/tiles/4_3_6.png +0 -0
- data/examples/tmp/tiles/4_3_7.png +0 -0
- data/examples/tmp/tiles/4_3_8.png +0 -0
- data/examples/tmp/tiles/4_4_0.png +0 -0
- data/examples/tmp/tiles/4_4_1.png +0 -0
- data/examples/tmp/tiles/4_4_10.png +0 -0
- data/examples/tmp/tiles/4_4_12.png +0 -0
- data/examples/tmp/tiles/4_4_13.png +0 -0
- data/examples/tmp/tiles/4_4_14.png +0 -0
- data/examples/tmp/tiles/4_4_15.png +0 -0
- data/examples/tmp/tiles/4_4_2.png +0 -0
- data/examples/tmp/tiles/4_4_3.png +0 -0
- data/examples/tmp/tiles/4_4_4.png +0 -0
- data/examples/tmp/tiles/4_4_5.png +0 -0
- data/examples/tmp/tiles/4_4_6.png +0 -0
- data/examples/tmp/tiles/4_4_7.png +0 -0
- data/examples/tmp/tiles/4_4_8.png +0 -0
- data/examples/tmp/tiles/4_4_9.png +0 -0
- data/examples/tmp/tiles/4_5_0.png +0 -0
- data/examples/tmp/tiles/4_5_1.png +0 -0
- data/examples/tmp/tiles/4_5_10.png +0 -0
- data/examples/tmp/tiles/4_5_11.png +0 -0
- data/examples/tmp/tiles/4_5_12.png +0 -0
- data/examples/tmp/tiles/4_5_13.png +0 -0
- data/examples/tmp/tiles/4_5_14.png +0 -0
- data/examples/tmp/tiles/4_5_15.png +0 -0
- data/examples/tmp/tiles/4_5_2.png +0 -0
- data/examples/tmp/tiles/4_5_3.png +0 -0
- data/examples/tmp/tiles/4_5_4.png +0 -0
- data/examples/tmp/tiles/4_5_5.png +0 -0
- data/examples/tmp/tiles/4_5_7.png +0 -0
- data/examples/tmp/tiles/4_5_8.png +0 -0
- data/examples/tmp/tiles/4_5_9.png +0 -0
- data/examples/tmp/tiles/4_6_0.png +0 -0
- data/examples/tmp/tiles/4_6_1.png +0 -0
- data/examples/tmp/tiles/4_6_10.png +0 -0
- data/examples/tmp/tiles/4_6_13.png +0 -0
- data/examples/tmp/tiles/4_6_14.png +0 -0
- data/examples/tmp/tiles/4_6_15.png +0 -0
- data/examples/tmp/tiles/4_6_2.png +0 -0
- data/examples/tmp/tiles/4_6_3.png +0 -0
- data/examples/tmp/tiles/4_6_4.png +0 -0
- data/examples/tmp/tiles/4_6_6.png +0 -0
- data/examples/tmp/tiles/4_6_7.png +0 -0
- data/examples/tmp/tiles/4_6_8.png +0 -0
- data/examples/tmp/tiles/4_6_9.png +0 -0
- data/examples/tmp/tiles/4_7_0.png +0 -0
- data/examples/tmp/tiles/4_7_1.png +0 -0
- data/examples/tmp/tiles/4_7_12.png +0 -0
- data/examples/tmp/tiles/4_7_13.png +0 -0
- data/examples/tmp/tiles/4_7_14.png +0 -0
- data/examples/tmp/tiles/4_7_15.png +0 -0
- data/examples/tmp/tiles/4_7_2.png +0 -0
- data/examples/tmp/tiles/4_7_3.png +0 -0
- data/examples/tmp/tiles/4_7_4.png +0 -0
- data/examples/tmp/tiles/4_7_5.png +0 -0
- data/examples/tmp/tiles/4_7_6.png +0 -0
- data/examples/tmp/tiles/4_7_7.png +0 -0
- data/examples/tmp/tiles/4_8_1.png +0 -0
- data/examples/tmp/tiles/4_8_12.png +0 -0
- data/examples/tmp/tiles/4_8_13.png +0 -0
- data/examples/tmp/tiles/4_8_14.png +0 -0
- data/examples/tmp/tiles/4_8_15.png +0 -0
- data/examples/tmp/tiles/4_8_2.png +0 -0
- data/examples/tmp/tiles/4_8_3.png +0 -0
- data/examples/tmp/tiles/4_8_4.png +0 -0
- data/examples/tmp/tiles/4_8_5.png +0 -0
- data/examples/tmp/tiles/4_8_6.png +0 -0
- data/examples/tmp/tiles/4_8_7.png +0 -0
- data/examples/tmp/tiles/4_8_8.png +0 -0
- data/examples/tmp/tiles/4_8_9.png +0 -0
- data/examples/tmp/tiles/4_9_1.png +0 -0
- data/examples/tmp/tiles/4_9_12.png +0 -0
- data/examples/tmp/tiles/4_9_13.png +0 -0
- data/examples/tmp/tiles/4_9_14.png +0 -0
- data/examples/tmp/tiles/4_9_15.png +0 -0
- data/examples/tmp/tiles/4_9_2.png +0 -0
- data/examples/tmp/tiles/4_9_3.png +0 -0
- data/examples/tmp/tiles/4_9_4.png +0 -0
- data/examples/tmp/tiles/4_9_5.png +0 -0
- data/examples/tmp/tiles/4_9_6.png +0 -0
- data/examples/tmp/tiles/4_9_7.png +0 -0
- data/examples/tmp/tiles/4_9_8.png +0 -0
- data/examples/tmp/tiles/4_9_9.png +0 -0
- /data/examples/{museos.png → museum.png} +0 -0
- /data/examples/{museos_datosabiertos.csv → museums.csv} +0 -0
- /data/examples/tmp/tiles/{4_0_0.png → 7_37_71.png} +0 -0
- /data/examples/tmp/tiles/{4_0_1.png → 7_37_72.png} +0 -0
- /data/examples/tmp/tiles/{4_0_10.png → 7_37_73.png} +0 -0
- /data/examples/tmp/tiles/{4_0_11.png → 7_37_74.png} +0 -0
- /data/examples/tmp/tiles/{4_0_12.png → 7_37_75.png} +0 -0
- /data/examples/tmp/tiles/{4_0_2.png → 7_37_76.png} +0 -0
- /data/examples/tmp/tiles/{4_0_6.png → 7_37_77.png} +0 -0
- /data/examples/tmp/tiles/{4_0_7.png → 7_37_87.png} +0 -0
- /data/examples/tmp/tiles/{4_0_9.png → 7_40_84.png} +0 -0
- /data/examples/tmp/tiles/{4_10_0.png → 7_40_85.png} +0 -0
- /data/examples/tmp/tiles/{4_10_10.png → 7_41_82.png} +0 -0
- /data/examples/tmp/tiles/{4_11_0.png → 7_41_83.png} +0 -0
- /data/examples/tmp/tiles/{4_11_11.png → 7_41_84.png} +0 -0
- /data/examples/tmp/tiles/{4_11_8.png → 7_41_85.png} +0 -0
- /data/examples/tmp/tiles/{4_11_9.png → 7_41_86.png} +0 -0
- /data/examples/tmp/tiles/{4_12_0.png → 7_42_80.png} +0 -0
- /data/examples/tmp/tiles/{4_12_10.png → 7_42_81.png} +0 -0
- /data/examples/tmp/tiles/{4_12_9.png → 7_42_82.png} +0 -0
- /data/examples/tmp/tiles/{4_13_0.png → 7_42_83.png} +0 -0
- /data/examples/tmp/tiles/{4_13_1.png → 7_42_84.png} +0 -0
- /data/examples/tmp/tiles/{4_13_10.png → 7_42_86.png} +0 -0
- /data/examples/tmp/tiles/{4_14_0.png → 7_42_87.png} +0 -0
- /data/examples/tmp/tiles/{4_14_1.png → 7_43_79.png} +0 -0
- /data/examples/tmp/tiles/{4_14_7.png → 7_43_80.png} +0 -0
- /data/examples/tmp/tiles/{4_15_0.png → 7_43_81.png} +0 -0
- /data/examples/tmp/tiles/{4_15_1.png → 7_43_82.png} +0 -0
- /data/examples/tmp/tiles/{4_15_11.png → 7_43_83.png} +0 -0
- /data/examples/tmp/tiles/{4_15_2.png → 7_43_84.png} +0 -0
- /data/examples/tmp/tiles/{4_15_6.png → 7_43_86.png} +0 -0
- /data/examples/tmp/tiles/{4_15_7.png → 7_43_87.png} +0 -0
- /data/examples/tmp/tiles/{4_1_0.png → 7_44_78.png} +0 -0
- /data/examples/tmp/tiles/{4_1_1.png → 7_44_79.png} +0 -0
- /data/examples/tmp/tiles/{4_1_10.png → 7_44_80.png} +0 -0
- /data/examples/tmp/tiles/{4_1_11.png → 7_44_81.png} +0 -0
- /data/examples/tmp/tiles/{4_1_12.png → 7_44_82.png} +0 -0
- /data/examples/tmp/tiles/{4_1_2.png → 7_44_83.png} +0 -0
- /data/examples/tmp/tiles/{4_1_5.png → 7_44_84.png} +0 -0
- /data/examples/tmp/tiles/{4_1_6.png → 7_44_85.png} +0 -0
- /data/examples/tmp/tiles/{4_1_8.png → 7_44_86.png} +0 -0
- /data/examples/tmp/tiles/{4_1_9.png → 7_44_87.png} +0 -0
- /data/examples/tmp/tiles/{4_2_0.png → carto_light_15_9693_18339.png} +0 -0
- /data/examples/tmp/tiles/{4_2_1.png → carto_light_15_9693_18340.png} +0 -0
- /data/examples/tmp/tiles/{4_2_10.png → carto_light_15_9693_18341.png} +0 -0
- /data/examples/tmp/tiles/{4_2_11.png → carto_light_15_9693_18342.png} +0 -0
- /data/examples/tmp/tiles/{4_2_7.png → carto_light_15_9693_18343.png} +0 -0
- /data/examples/tmp/tiles/{4_2_8.png → carto_light_15_9693_18344.png} +0 -0
- /data/examples/tmp/tiles/{4_2_9.png → carto_light_15_9693_18345.png} +0 -0
- /data/examples/tmp/tiles/{4_3_0.png → carto_light_15_9693_18346.png} +0 -0
- /data/examples/tmp/tiles/{4_3_10.png → carto_light_15_9693_18347.png} +0 -0
- /data/examples/tmp/tiles/{4_3_11.png → carto_light_15_9693_18348.png} +0 -0
- /data/examples/tmp/tiles/{4_3_9.png → carto_light_15_9693_18349.png} +0 -0
- /data/examples/tmp/tiles/{4_4_11.png → carto_light_15_9693_18350.png} +0 -0
- /data/examples/tmp/tiles/{4_5_6.png → carto_light_15_9693_18351.png} +0 -0
- /data/examples/tmp/tiles/{4_6_11.png → carto_light_15_9693_18352.png} +0 -0
- /data/examples/tmp/tiles/{4_6_12.png → carto_light_15_9693_18353.png} +0 -0
- /data/examples/tmp/tiles/{4_6_5.png → carto_light_15_9693_18354.png} +0 -0
- /data/examples/tmp/tiles/{4_7_10.png → carto_light_15_9693_18355.png} +0 -0
- /data/examples/tmp/tiles/{4_7_11.png → carto_light_15_9693_18356.png} +0 -0
- /data/examples/tmp/tiles/{4_7_8.png → carto_light_15_9693_18357.png} +0 -0
- /data/examples/tmp/tiles/{4_7_9.png → carto_light_15_9693_18358.png} +0 -0
- /data/examples/tmp/tiles/{4_8_0.png → carto_light_15_9693_18359.png} +0 -0
- /data/examples/tmp/tiles/{4_8_10.png → carto_light_15_9693_18360.png} +0 -0
- /data/examples/tmp/tiles/{4_8_11.png → carto_light_15_9693_18361.png} +0 -0
- /data/examples/tmp/tiles/{4_9_0.png → carto_light_15_9693_18362.png} +0 -0
- /data/examples/tmp/tiles/{4_9_10.png → carto_light_15_9693_18363.png} +0 -0
- /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:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3c053cbc0c95a2ab748a9e2dca5bcfdfe2340569ebdb05c383a42ee6194c8df4
|
|
4
|
+
data.tar.gz: 81d4c110d6c26041c1b451499cec406f2d0b2326aef27fe430f6142c3df29daf
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0e9accc97be10902e35d833587de5a0923c7a0e88b88944c9c3bc78cdda3c8cab0cd742c95563a6bfa177e48759a7232e636ed11ca1dc20ecd781deab8c859c6
|
|
7
|
+
data.tar.gz: f0d1a6d0a854cd046f29ccaffa125f48b86d147b965c43501c6cedeefb2b3ebf27962e055f6f266714c24b4b3e21cb57606611a594c2bfab30d0ec617d64da58
|
data/README.md
CHANGED
|
@@ -1,24 +1,56 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
the
|
|
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
|
+

|
|
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
|
-
##
|
|
42
|
+
## A geospatial raster engine for Ruby.
|
|
13
43
|
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
19
|
-
|
|
20
|
-
No
|
|
21
|
-
|
|
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
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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:
|
|
88
|
-
zoom:
|
|
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
|
-
|
|
94
|
-
lon: ->(
|
|
95
|
-
lat: ->(
|
|
96
|
-
icon: "
|
|
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("
|
|
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
|
|
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"
|