Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| blocks:app-note:interactivemap [2020-11-10 10:38] – [Installation] mattias | blocks:app-note:interactivemap [2023-08-01 21:07] (current) – [Installation] admin | ||
|---|---|---|---|
| Line 2: | Line 2: | ||
| ===== Interactive map ===== | ===== Interactive map ===== | ||
| - | This map of Africa | + | This application note demonstrates how to use odd shaped |
| The Display Spot will change its content depending on the selection done on the interactive map. | The Display Spot will change its content depending on the selection done on the interactive map. | ||
| Line 13: | Line 13: | ||
| We have prepared a PIXILAB-blocks-root folder containing everything you need to run the examples. | We have prepared a PIXILAB-blocks-root folder containing everything you need to run the examples. | ||
| - | {{ : | + | {{ : |
| - | If you don't know how to do this, read the instructions in the [[https:// | + | If you don't know how to do this, read the instructions in the [[blocks:app-note:start|general setup section]]. |
| Line 31: | Line 31: | ||
| Assign the Interactive map to the Visitor spot and the DisplaySpotIndex file to the display spot. | Assign the Interactive map to the Visitor spot and the DisplaySpotIndex file to the display spot. | ||
| - | {{: | + | {{: |
| On the visitor spot you should see a map: | On the visitor spot you should see a map: | ||
| - | {{: | + | {{: |
| - | And if you go ahead and click on Algeria | + | Go ahead and click on Tunisia |
| {{: | {{: | ||
| + | |||
| + | Open the Task page in Blocks editor to see the variable change according to the selection made on the map. | ||
| + | |||
| + | {{: | ||
| + | |||
| + | |||
| + | |||
| =====How does this work?===== | =====How does this work?===== | ||
| - | The interactive map itself is a custom web page that is stored under / | + | The interactive map itself is a custom web page that is stored under / |
| + | |||
| + | {{:blocks: | ||
| - | {{:blocks: | + | In blocks |
| - | The web page is made up from a html file // | + | {{: |
| - | There is also a javascript | + | In the URL setting of the web block there are two query-parameters. blocksVar will point to a blocks variable, svgFileName will set the filename of the svg file used for the project. |
| - | //main.js// that handles | + | The map image is a .svg file that is picked up by script.js and applied to the html document in runtime. |
| + | Script.js (the compiled version of scrip.ts) uses the Blocks javascript bridge API called pub_sub_peer.js to set value and subscripe to the Blocks | ||
| + | |||
| - | If we look at the index.html | + | |
| - | ===Graphics=== | + | Svg files can be created and edited with creative tools like Adobe Illustrator or Inkcape. This script.js file assumes that there are a outmost group with the element ID " |
| + | In the SVG code the group with element ID " | ||
| + | CountryA, CountryB and CountryC is the data that will be passed on as a string to the Blocks variable. | ||
| + | This is also what returns from Blocks and used to find document elements that will get a class applied in order to highlight the element as currently selected. | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <g id=" | ||
| + | <g id=CountryA> | ||
| + | <path d= [vectordata here] /> | ||
| + | <path d= [more vectordata here] /> | ||
| + | </ | ||
| + | <g id=" | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | <path id=" | ||
| + | </ | ||
| + | </ | ||
| + | </ | ||
| - | The graphis itself is stored inline as a // svg// element. | ||
| - | where every country has a element ID named as the country represented. Some countrys are complex and is made up from a group of paths. | ||
| - | < | ||
| - | The styling is declared inline inside the svg element tag. | ||
| - | {{: | + | ===Blocks Logic=== |
| - | As you can see there are styles for things like // | + | In blocks we can use a change of the realm variable value to trig a task or as in this application note use it to reveal the right page of a book. This is used by applying a reveal behaviour to each page of the book and bind them to the Blocks variable. When the " |
| - | The one that we use to indicate | + | |
| - | | + | {{: |