Hi Hernan,

Thanks for your answer. I got an error which says "Error: Reading a number failed: a digit between 0 and 9 expected" and "element" of your example is selected. I think that I'm not understanding well how to connect the downloaded file (in fact I have not downloaded anything) to the part where you render the svg and I don't see anything in your example which links them. Whats the thing I'm missing?

Thanks for your help. Hopefully, tomorrow we can show maps for new territories in Roassal.

Cheers,

Offray

El 21/11/14 a las #4, Hernán Morales Durand escribió:


2014-11-18 10:30 GMT-03:00 Offray Vladimir Luna Cárdenas <off...@riseup.net
<mailto:off...@riseup.net>>:

     Hi,

     This Thursday and Saturday we will have a small workshop on data
     storytelling and I would like to present Pharo/Roassal to the people there
     as a tool for creating and sharing visualizations.

     My idea is to use Playgrounds to make agile visualization and then share
     them using cloud sharing at stfx and etherpads.
     The maps I would like to make are similar to the ones that have colored
     countries [1][2], but using internal country geopolitical divisions. For 
the
     case of Colombia I would like to use the ones of [3], specifically 
something
     like [4] and use the same syntax of RTMetricMap inside the country.

     [1] http://bit.ly/1yiedrE
     [2] http://bit.ly/1xTAQV0
     [3] https://commons.wikimedia.org/__wiki/User:Shadowxfox/Maps#__Colombia
     <https://commons.wikimedia.org/wiki/User:Shadowxfox/Maps#Colombia>
     [4]
     
https://commons.wikimedia.org/__wiki/File:Colombia___departamentos_otros.svg
     <https://commons.wikimedia.org/wiki/File:Colombia_departamentos_otros.svg>

     So my question is:

     - There is any way to upload this SGV maps and treat them as the maps
     already in RTMetricMap, telling the names of the internal geopolitical
     divisions inside a Country and how to color them according to a value and
     make them zoomable?

     - Where can I start to look to support this feature?


SVG is basically XML, so you can parse it like this:

| xmlTree |
xmlTree := (XMLDOMParser parseFileNamed: 'Argentina.svg') firstNode.
xmlTree

The coordinates of a map are in the SVG path description, and you can add them
separately. For example if you download this file
http://commons.wikimedia.org/wiki/File:USA_Counties_with_FIPS_and_names.svg and
take the node with "Ulster, NY" you can render it this way:

| view svg |
view := RTView new.
svg := (RTSVGPath new
      path: 'M 501.96598,97.8 L 502.15198,100.009 L 502.68298,101.739 L
502.88598,102.153 L 503.20498,104.028 L 502.29498,104.366 L 501.61098,104.502 L
501.02498,104.483 L 500.32998,104.231 L 499.33398,104.921 L 498.91498,104.299 L
497.86898,103.844 L 496.94598,103.415 L 497.13498,102.933 L 497.50398,102.086 L
497.69798,101.505 L 495.56698,100.824 L 494.24598,100.423 L 496.85998,97.791 L
498.36098,98.174 L 499.08798,98.084 L 500.56998,97.894 L 500.65098,96.89 L
501.06998,96.754 L 501.99798,97.146 L 501.96598,97.8';
      fillColor: (Color r: 0.612 g: 0.488 b: 0.3 alpha: 1.0);
      scale: 5) 
element.http://commons.wikimedia.org/wiki/File:USA_Counties_with_FIPS_and_names.svg
view add: svg.
view open

There should be an easier way like using an SVG importer for Roassal, but that's
all I have for now.

Cheers,

Hernán




Reply via email to