project:bioosm:start
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
project:bioosm:start [2018/06/07 21:02] – sumie-dh | project:bioosm:start [2025/03/21 23:41] (current) – sachy | ||
---|---|---|---|
Line 4: | Line 4: | ||
name=Biologicke zbrane ve vasem okoli| | name=Biologicke zbrane ve vasem okoli| | ||
image= bioosm: | image= bioosm: | ||
- | founder=[[user: | + | founder=[[user: |
- | interested=[[user: | + | interested=[[user: |
- | sw=CC| | + | sw=CC-BY-SA| |
hw=N/A| | hw=N/A| | ||
status=active}} | status=active}} | ||
~~META: | ~~META: | ||
- | status = active | + | status = in slow progress |
& | & | ||
~~ | ~~ | ||
+ | |||
+ | On hold - leaving Tellico, welcome Specify 6/7 | ||
[[http:// | [[http:// | ||
Line 18: | Line 20: | ||
==== K cemu to je ==== | ==== K cemu to je ==== | ||
- | * interaktivni mapa vhodna k zobrazovani vetsiho mnozstvi fotek, brmlabi wiki, sluzby typu phtagr a soup se zdaly nevhodne k publikaci tohoto typu obsahu, wiki by byla prilis obludna, na beznych sdilecich obrazkovych sluzbach se neda nic pohodlne dohledavat a davat tam biologicky | + | * interaktivni mapa vhodna k zobrazovani vetsiho mnozstvi fotek, brmlabi wiki, sluzby typu phtagr a soup se zdaly nevhodne k publikaci tohoto typu obsahu, wiki by byla prilis obludna, na beznych sdilecich obrazkovych sluzbach se neda nic pohodlne dohledavat a davat tam biologicky |
- | * monitoring zivocichu a rostlin podle zajmu prispevovatelu | + | * monitoring zivocichu a rostlin podle zajmu prispevovatelu |
- | * snadne klikaci katalogovani nalezu skrze Tellico nevyzadujici coding skills | + | * snadne klikaci katalogovani nalezu skrze Tellico nevyzadujici coding skills |
- | * TODO - jednoduche selekce zajmoveho okruhu subjektu [napr. podle rodu, biotopu, datumu] na mape | + | * TODO - jednoduche selekce zajmoveho okruhu subjektu [napr. podle rodu, biotopu, datumu] na mape |
+ | * procvicovani temne magie commandu grep, sed a regexpu | ||
==== Jak to funguje ==== | ==== Jak to funguje ==== | ||
Line 27: | Line 30: | ||
Podklad jsou [[https:// | Podklad jsou [[https:// | ||
- | Jednotliva pozorovani jsou v databazi [[http:// | + | Jednotliva pozorovani jsou v databazi [[http:// |
+ | |||
+ | Pro nadsence je vygenerovany taky prehled prispevku plainlog.htm serazeny dle data pridani do databaze. | ||
+ | |||
+ | Pokud chcete vedet co je noveho, odebirejte projektovou [[http:// | ||
Obrazky v plnem rozliseni jsou v podadresari " | Obrazky v plnem rozliseni jsou v podadresari " | ||
- | Pozorovani ktera se v mape zobrazi lze filtrovat dle prislusnosti k radu (bakterie, zvirata, rostliny, | + | Pozorovani ktera se v mape zobrazi lze filtrovat dle prislusnosti k radu (bakterie, zvirata, rostliny, |
=== Tellico sample database === | === Tellico sample database === | ||
Line 96: | Line 103: | ||
==== parse_tellico.sh ==== | ==== parse_tellico.sh ==== | ||
- | <code bash> | + | <code bash parse_tellico.sh> |
#!/bin/bash | #!/bin/bash | ||
# Parse Tellico database to BioOSM index.htm | # Parse Tellico database to BioOSM index.htm | ||
# $1 = tellico .tc file | # $1 = tellico .tc file | ||
- | # Print result to stdout | + | # $2 = "" |
+ | # = " | ||
# | # | ||
- | # Generate minis in simg folder | + | # Print result to /jsonrss/ |
- | # find ./ -type f -exec mogrify -verbose -layers Dispose -resize 128\> | + | |
# | # | ||
+ | # find ./ -type f -name ' | ||
+ | # echo " | ||
+ | # gdal_translate -of GTiff -a_srs WGS84 -a_ullr 11.6863 50.9745 19.9876 48.3729 ./ | ||
+ | # https:// | ||
+ | |||
+ | #bnds=new OpenLayers.Bounds(11.6863000, | ||
+ | #var geoimg = new OpenLayers.Layer.Image(" | ||
+ | # | ||
+ | |||
+ | |||
+ | # | ||
+ | # <iframe width=" | ||
+ | # // vectorLayer.removeFeatures(atol) | ||
+ | # // map.removeLayer(vectorLayer) | ||
# | # | ||
# | # | ||
# Creates: | # Creates: | ||
- | # (to stdout) | + | # (to stdout) |
# | # | ||
+ | # | ||
+ | # | ||
+ | # | ||
# | # | ||
+ | |||
+ | |||
rm -rfv " | rm -rfv " | ||
mkdir -p " | mkdir -p " | ||
- | #cat " | ||
- | # Parse Tellico file to list of entries | + | ICON_animalia=" |
- | praseTC=$(unzip -p "$1" | + | ICON_bacteria="bacteria.png" |
+ | ICON_fungi=" | ||
+ | ICON_chromista="chromista.png" | ||
+ | ICON_plantae="plantae.svg" | ||
+ | ICON_plostenkoid="plostenkoid.png" | ||
+ | ICON_protista="protista.png" | ||
+ | ICON_biohazard=" | ||
- | # Sorted unique Kingdoms (to be passed as selection criteria) | + | json="" |
- | kingdoms=$(echo | + | geojson="" |
+ | rss=$'<? | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
+ | rss+=$'< | ||
- | echo '< | + | errhtml="$2" |
- | echo '< | + | |
- | echo '< | + | |
- | echo ' | + | |
- | echo ' | + | |
- | echo ' | + | |
- | echo ' | + | |
- | echo '</ | + | |
- | echo "< | + | # paticka (co, rok, odkaz) |
- | echo "<h1 id='title'> | + | function obioosm () { |
+ | r="<div id='obioosm'>< | ||
+ | if [[ " | ||
+ | r+=" - $1" | ||
+ | fi | ||
+ | r+=". " | ||
+ | if [[ " | ||
+ | r+=" | ||
+ | else | ||
+ | r+=" | ||
+ | fi | ||
+ | if [[ " | ||
+ | r+=" | ||
+ | else | ||
+ | r+=" | ||
+ | fi | ||
+ | r+="</ | ||
+ | echo " | ||
+ | } | ||
- | # Generate select | + | # HTML fajl per project |
- | ksel="< | + | function genhtml() { |
- | ksel="$ksel< | + | o=$(obioosm |
- | while IFS='' | + | h=$(cat " |
- | ksel="$ksel< | + | echo "$h" |
- | done <<< | + | echo "*** $1 done ***" |
- | ksel="$ksel</ | + | } |
- | echo "Regnum: | + | |
- | echo "< | + | |
- | echo "<div id=' | + | # Return icon by Regnum |
- | echo "</ | + | function geticon () { |
- | + | case "$1" | |
- | echo '< | + | "Animalia") |
- | + | echo "$ICON_animalia";; | |
- | echo 'map = new OpenLayers.Map("map");' | + | "Bacteria") |
- | echo ' | + | echo " |
- | echo ' | + | " |
- | echo ' | + | echo " |
- | echo 'var lonLat = new OpenLayers.LonLat(15.478, | + | " |
- | echo 'var zoom=8;' | + | echo "$ICON_chromista";; |
- | echo ' | + | "Plantae") |
- | + | echo "$ICON_plantae";; | |
- | echo 'var vectorLayer = new OpenLayers.Layer.Vector("Overlay", | + | "Protista") |
- | + | echo "$ICON_protista";; | |
- | echo '// Define markers as "features" | + | *) |
- | + | echo " | |
- | echo 'var atol = new OpenLayers.Feature.Vector(' | + | esac |
- | echo ' new OpenLayers.Geometry.Point(14.41876, | + | } |
- | echo ' {description: | + | |
- | echo ' | + | |
- | echo ');' | + | |
- | echo ' | + | |
- | # Sem prijdou dalsi staticke ficury | + | |
- | echo " | + | |
+ | function safehtml () { | ||
+ | echo " | ||
+ | } | ||
+ | function getgeo () { | ||
+ | #g=$(echo "$1 $2" | gdallocationinfo -wgs84 ./ | ||
+ | g=$(echo "$1 $2" | gdallocationinfo -wgs84 ./ | ||
+ | case " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo " | ||
+ | " | ||
+ | echo "Sandy and loamy loess, Tertiary sediments, fluvial deposits";; | ||
+ | " | ||
+ | echo " | ||
+ | *) | ||
+ | echo "";; | ||
+ | esac | ||
+ | } | ||
i=1 # GLOBAL increment must persist multiple spagety() calls; incremented to infinity | i=1 # GLOBAL increment must persist multiple spagety() calls; incremented to infinity | ||
Line 177: | Line 255: | ||
# !!! BEZ ODSAZENI !!! | # !!! BEZ ODSAZENI !!! | ||
# $1 = list of entries | # $1 = list of entries | ||
- | # $2 = layer name | + | # $2 = layer name = JSON filename without suffix |
# $3 = icon of the points | # $3 = icon of the points | ||
function spagety () { | function spagety () { | ||
- | bylo="" | + | if [[ "$errhtml" |
- | sam="" | + | >&2 echo "===== $2 =====" |
- | osam="" | + | else |
- | spoj="" # HTML had z popisu stejnych pozic | + | >& |
- | ospoj="" # Predchozi | + | fi |
- | ox="" # Old X | + | |
- | oy="" | + | |
- | while IFS='' read -r radek || [[ -n "$radek" | + | bylo="" |
+ | sam="" | ||
+ | osam="" | ||
+ | spoj="" | ||
+ | ospoj="" | ||
+ | ox="" | ||
+ | oy="" | ||
+ | datelog="" | ||
+ | json=" | ||
+ | geojson=' | ||
+ | geojson+=" | ||
+ | geojson+='"," | ||
- | co=$(echo " | + | while IFS='' |
- | obr=$(echo "$radek" | + | if [[ " |
- | kde=$(echo " | + | continue; |
- | kdex=$(echo | + | fi |
- | kdey=$(echo " | + | |
- | kdy=$(echo | + | |
- | skop_typ=$(echo | + | |
- | skop=$(echo " | + | |
- | imp=$(echo " | + | |
- | reg=$(echo " | + | |
- | phy=$(echo " | + | |
- | cla=$(echo " | + | |
- | ord=$(echo " | + | |
- | fam=$(echo " | + | |
- | gen=$(echo " | + | |
- | spe=$(echo " | + | |
- | loc=$(echo " | + | |
- | des=$(echo " | + | |
- | vid=$(echo " | + | |
- | bio=$(echo " | + | |
- | eng=$(echo " | + | |
- | obs=$(echo " | + | |
+ | entryid=$(echo " | ||
+ | co=$(echo " | ||
+ | co=$(safehtml " | ||
+ | obr=$(echo " | ||
+ | kde=$(echo " | ||
+ | kde=$(safehtml " | ||
+ | kdex=$(echo " | ||
+ | kdey=$(echo " | ||
+ | kdy=$(echo " | ||
+ | kdy=$(safehtml " | ||
+ | skop_typ=$(echo " | ||
+ | skop_typ=$(safehtml " | ||
+ | skop=$(echo " | ||
+ | skop=$(safehtml " | ||
+ | imp=$(echo " | ||
+ | imp=$(safehtml " | ||
+ | reg=$(echo " | ||
+ | reg=$(safehtml " | ||
+ | phy=$(echo " | ||
+ | phy=$(safehtml " | ||
+ | cla=$(echo " | ||
+ | cla=$(safehtml " | ||
+ | ord=$(echo " | ||
+ | ord=$(safehtml " | ||
+ | fam=$(echo " | ||
+ | fam=$(safehtml " | ||
+ | gen=$(echo " | ||
+ | gen=$(safehtml " | ||
+ | spe=$(echo " | ||
+ | spe=$(safehtml " | ||
+ | loc=$(echo " | ||
+ | loc=$(safehtml " | ||
+ | des=$(echo " | ||
+ | des=$(safehtml " | ||
+ | vid=$(echo " | ||
+ | vid=$(safehtml " | ||
+ | bio=$(echo " | ||
+ | bio=$(safehtml " | ||
+ | eng=$(echo " | ||
+ | eng=$(safehtml " | ||
+ | obs=$(echo " | ||
+ | obs=$(safehtml " | ||
+ | lnk=$(echo " | ||
+ | lnk=$(safehtml " | ||
+ | har=$(echo " | ||
+ | den=$(echo " | ||
+ | dur=$(echo " | ||
+ | lor=$(echo " | ||
+ | lrl=$(echo " | ||
+ | lov=$(echo " | ||
+ | lov=$(safehtml " | ||
+ | cls=$(echo " | ||
+ | mpi=$(echo " | ||
+ | elv=$(echo "$kdex $kdey" | gdallocationinfo -wgs84 ./ | ||
+ | geo=$(getgeo " | ||
+ | gra=$(echo " | ||
+ | tem=$(echo " | ||
+ | cnd=$(echo " | ||
+ | ph=$(echo " | ||
+ | kar=$(echo " | ||
+ | lid=$(echo " | ||
- | if [[ "$kdex" = "" | + | # if [[ "$errhtml" |
- | >& | + | # >&2 echo "$co - $har - $den - $dur - $lor - $lrl - $lov - $elv" |
- | continue; | + | # else |
- | fi | + | # >&2 echo "<span class=' |
- | zkurvenetellico=$(echo "$obr" | grep -oe '\.[a-zA-Z]*$') | + | # fi |
- | if [[ "$zkurvenetellico" | + | # continue; |
- | >& | + | |
- | continue; | + | |
- | fi | + | |
+ | detid=$(echo " | ||
- | # Generate detail page | + | if [[ "$kdex" = "" |
- | detid=$(echo " | + | if [[ "$errhtml" |
- | detpg="< | + | >&2 echo -e "\033[31m $lid KDEX '$kde' '$co' \033[0m" |
- | detpg=" | + | >& |
- | detpg=" | + | else |
- | detpg=" | + | >& |
- | detpg=" | + | >& |
- | detpg=" | + | fi |
- | detpg=" | + | fi |
- | if [[ "$imp" | + | |
- | detpg=" | + | zkurvenetellico=$(echo "$obr" |
- | fi | + | odkurvenyobr=$(echo |
- | if [[ "$reg" | + | #if [[ "$zkurvenetellico" = ".jpeg" ]]; then |
- | detpg=" | + | if [[ ! -f "./img/$odkurvenyobr" ]]; then |
- | fi | + | if [[ "$gen" != "negative" ]]; then |
- | if [[ "$phy" != "" | + | if [[ "$errhtml" |
- | detpg=" | + | >& |
- | fi | + | else |
- | if [[ "$cla" != "" | + | >& |
- | detpg="$detpg< | + | fi |
- | fi | + | continue; |
- | if [[ "$ord" != "" | + | fi |
- | detpg=" | + | fi |
- | fi | + | obr=$(safehtml |
- | if [[ "$fam" != "" | + | |
- | detpg=" | + | if [[ "$spe" = "sp." ]]; then |
- | fi | + | wikisp="https://en.wikipedia.org/wiki/$gen" |
- | if [[ "$gen" != "" | + | |
- | detpg=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | detpg="$detpg< | + | |
- | fi | + | |
- | detpg="$detpg< | + | |
- | if [[ "$kdy" != "" | + | |
- | detpg="$detpg< | + | |
- | fi | + | |
- | detpg=" | + | |
- | if [[ "$obs" | + | |
- | detpg=" | + | |
- | fi | + | |
- | if [[ "$bio" != "" ]]; then | + | |
- | detpg=" | + | |
- | fi | + | |
- | detpg=" | + | |
- | if [[ "$skop" != "" | + | |
- | detpg=" | + | |
- | fi | + | |
- | if [[ "$eng" | + | |
- | detpg="$detpg< | + | |
- | fi | + | |
- | detpg="$detpg<br>" | + | |
- | if [[ "$des" != "" | + | |
- | detpg=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | detpg=" | + | |
- | fi | + | |
- | detpg=" | + | |
- | if [[ "$obr" != "" | + | |
- | detpg=" | + | |
- | else | + | |
- | if [[ "$vid" | + | |
- | detyt=$(echo | + | |
- | detpg=" | + | |
else | else | ||
- | detpg="$detpg< | + | wikisp="https://en.wikipedia.org/wiki/$gen $spe" |
fi | fi | ||
- | fi | ||
- | detpg=" | ||
- | detpg=" | ||
- | echo " | ||
- | # Pokracujem v hadovi | + | povr="" |
- | if [[ "$kde" = "$bylo" ]]; then | + | povs="" |
- | sam=""; | + | pov="" |
- | spoj="$spoj<tr><td><a href=\" | + | if [[ "$phy" = "Platyhelminthes" |
+ | povr=$(cat "./ | ||
+ | # | ||
+ | povrf=$(echo " | ||
+ | povrn=$(echo " | ||
+ | povs=$(cat " | ||
+ | # | ||
+ | povsf=$(echo " | ||
+ | povsn=$(echo " | ||
+ | if (( $(echo " | ||
+ | pov=" | ||
+ | else | ||
+ | pov=" | ||
+ | fi | ||
+ | fi | ||
+ | |||
+ | if [[ " | ||
+ | cls=0 | ||
+ | fi | ||
+ | |||
+ | if [[ " | ||
+ | mpi="" | ||
+ | else | ||
+ | mpi=" | ||
+ | fi | ||
+ | |||
+ | Tjson=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | Tjson+=" | ||
+ | |||
+ | json+=" | ||
+ | geojson+=' | ||
+ | geojson+=" | ||
+ | geojson+=' | ||
+ | geojson+=" | ||
+ | |||
+ | rss+=$'<item>\n' | ||
+ | rss+=$' | ||
+ | rss+=$' | ||
+ | rss+=$' | ||
+ | rss+=$' | ||
+ | rss+=$' | ||
+ | rss+=$'</ | ||
+ | |||
+ | |||
+ | # Generate detail page | ||
+ | detid=$(echo " | ||
+ | detpg="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | |||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | |||
+ | detpg+="</ | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="< | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | loc="< | ||
+ | fi | ||
+ | detpg+="< | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | |||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="< | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="</ | ||
+ | detpg+="< | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="</ | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | elif [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="< | ||
+ | if [[ " | ||
+ | detpg+="< | ||
+ | fi | ||
+ | detpg+="</ | ||
+ | detpg+="< | ||
+ | detpg+="< | ||
+ | |||
+ | lhx=$(echo " | ||
+ | lhy=$(echo " | ||
+ | pdx=$(echo " | ||
+ | pdy=$(echo " | ||
+ | detpg+="< | ||
+ | detpg+="</ | ||
if [[ " | if [[ " | ||
- | spoj="$spoj<img src=\" | + | detpg+="<div id=' |
+ | detpg+="< | ||
else | else | ||
- | spoj="$spoj<img src=\" | + | if [[ " |
+ | detyt=$(echo " | ||
+ | detpg+="< | ||
+ | else | ||
+ | if [[ " | ||
+ | detpg+=" | ||
+ | else | ||
+ | detpg+=" | ||
+ | fi | ||
+ | fi | ||
fi | fi | ||
- | spoj="$spoj< | + | if [[ " |
- | spoj="$spoj</tr>" | + | detpg+="< |
+ | fi | ||
+ | |||
+ | detpg+="</ | ||
+ | detpg+=$(obioosm "$co" " | ||
+ | detpg+=" | ||
+ | echo " | ||
+ | |||
+ | # Plain log of entries | ||
+ | datelog+=" | ||
+ | |||
+ | if [[ " | ||
+ | >& | ||
+ | else | ||
+ | >& | ||
+ | fi | ||
ox=" | ox=" | ||
oy=" | oy=" | ||
- | continue; | ||
- | fi | ||
- | # Bud prvni zaznam, nebo zmena pozice | + | i=$(($i+1)) |
- | # Predchozi pozice jen 1 zaznam? | + | done <<< |
- | if [[ "$sam" | + | echo -e "$json{}]}" |
- | echo "var n$i = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point($ox, | + | # echo -e "$json{}]}' |
- | echo | + | echo -e "$geojson{}]}" > "./jsonrss/ |
- | spoj="" | + | |
- | sam="" | + | |
- | fi # ELSE vytvori prazdny radek | + | |
- | # Predchozi pozice vic zaznamu? | + | |
- | if [[ "$spoj" | + | |
- | echo "var n$i = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point($ox, | + | |
- | echo "$2.addFeatures(n$i); | + | |
- | spoj="" | + | |
- | sam="" | + | |
- | fi | + | |
- | bylo="$kde" | + | rss+=$'</ |
- | spoj="<tr><td><a href=\" | + | rss+=$'</ |
- | if [[ "$obr" | + | echo "$rss" > " |
- | spoj="$spoj<img src=\"./simg/$obr\" | + | |
+ | } # KONEC FCE SPAGETY | ||
+ | |||
+ | |||
+ | |||
+ | # Sorted unique Kingdoms (to be passed as selection criteria) | ||
+ | #kingdoms=$(unzip -p "$1" tellico.xml | grep -oe '<new-field-4>.*</ | ||
+ | kingdoms=$(unzip -p " | ||
+ | |||
+ | #echo '< | ||
+ | #echo '< | ||
+ | #echo '< | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo '</ | ||
+ | #echo '< | ||
+ | ## Generate select | ||
+ | #echo "< | ||
+ | ##echo "< | ||
+ | #echo "< | ||
+ | # | ||
+ | # | ||
+ | # | ||
+ | #while IFS='' | ||
+ | # | ||
+ | #done <<< | ||
+ | # | ||
+ | #echo " | ||
+ | #echo " | ||
+ | #echo " | ||
+ | #echo " | ||
+ | #echo " | ||
+ | #echo " | ||
+ | #echo " | ||
+ | # | ||
+ | #echo "< | ||
+ | #echo "< | ||
+ | ##echo "< | ||
+ | #echo "< | ||
+ | #echo "< | ||
+ | #echo $(obioosm "" | ||
+ | #echo "</ | ||
+ | # | ||
+ | #echo "< | ||
+ | #echo ' | ||
+ | #echo 'map = new OpenLayers.Map(" | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo 'var lonLat = new OpenLayers.LonLat(15.478, | ||
+ | #echo 'var zoom=8;' | ||
+ | #echo ' | ||
+ | # | ||
+ | #echo 'var vectorLayer = new OpenLayers.Layer.Vector(" | ||
+ | # | ||
+ | #echo '// Define markers as " | ||
+ | # | ||
+ | #echo 'var atol = new OpenLayers.Feature.Vector(' | ||
+ | #echo ' new OpenLayers.Geometry.Point(14.41876, | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | #echo ' | ||
+ | ## Sem prijdou dalsi staticke ficury | ||
+ | #echo " | ||
+ | # | ||
+ | |||
+ | |||
+ | # Parse Tellico file to get list of entries | ||
+ | granty=$(unzip -p " | ||
+ | #praseTC=$(unzip -p " | ||
+ | # | ||
+ | praseTC=$(unzip -p " | ||
+ | |||
+ | |||
+ | velkyvepr=$(echo " | ||
+ | spagety " | ||
+ | |||
+ | # VSECHNO i non-public - zakomentuj predchozi " | ||
+ | #spagety " | ||
+ | #exit | ||
+ | |||
+ | while IFS='' | ||
+ | # ' | ||
+ | # | ||
+ | vepr=$(echo " | ||
+ | spagety " | ||
+ | genhtml " | ||
+ | done <<< | ||
+ | |||
+ | #if [[ "$errhtml" | ||
+ | >&2 echo "*** DONE ***" | ||
+ | #fi | ||
+ | |||
+ | |||
+ | ##echo -e "$json{}]}" | ||
+ | #echo '</ | ||
+ | #echo '< | ||
+ | #echo "</ | ||
+ | |||
+ | # Create plaintext log | ||
+ | dateloghtm="< | ||
+ | dateloghtm+="< | ||
+ | dateloghtm+="< | ||
+ | dateloghtm+="< | ||
+ | dateloghtm+="</ | ||
+ | datelogsort=$(echo -e "$datelog" | ||
+ | dateloghtm+="$datelogsort" | ||
+ | dateloghtm+="</ | ||
+ | echo " | ||
+ | </code> | ||
+ | |||
+ | ==== bioosm.js ==== | ||
+ | |||
+ | <code javascript bioosm.js> | ||
+ | window.blob=JSON.parse(' | ||
+ | window.arma=null; | ||
+ | // | ||
+ | // MAIN LOAD START HERE | ||
+ | // https:// | ||
+ | // | ||
+ | // | ||
+ | function getJSONbioosm() | ||
+ | { | ||
+ | url="./ | ||
+ | var request; | ||
+ | if(window.XMLHttpRequest) | ||
+ | request=new XMLHttpRequest(); | ||
else | else | ||
- | spoj="$spoj< | + | request=new ActiveXObject("Microsoft.XMLHTTP"); |
- | fi | + | request.onreadystatechange=function() |
- | spoj=" | + | { |
- | spoj="$spoj</tr>" | + | if(request.readyState==4) |
+ | { | ||
+ | window.blob=JSON.parse(request.responseText); | ||
+ | window.arma=blob.arma; | ||
+ | // Display ONLY platyhelminthes if reguired | ||
+ | pus=document.URL.match(/platyhelminthes=understone/); | ||
+ | console.log(pus); | ||
+ | if(pus) | ||
+ | plostenkoidy(); | ||
+ | else | ||
+ | // Else initial load | ||
+ | armageddon() | ||
+ | } | ||
+ | } | ||
+ | request.open("GET"," | ||
+ | request.send(); | ||
+ | } | ||
- | sam="< | + | getJSONbioosm(); |
- | sam=" | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | sam=" | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | # if [[ " | + | |
- | # | + | |
- | # fi | + | |
- | if [[ " | + | |
- | sam=" | + | |
- | fi | + | |
- | sam=" | + | |
- | #>& | + | var stud=JSON.parse(' |
- | >&2 echo "$co $obs" | + | |
+ | var vectorLayerDynamic = new OpenLayers.Layer.Vector(' | ||
+ | var vectorLayerPonygon = new OpenLayers.Layer.Vector(' | ||
+ | map.addLayer(vectorLayerPonygon); | ||
+ | map.addLayer(vectorLayerDynamic); | ||
+ | // | ||
+ | // | ||
+ | var studlay = new OpenLayers.Layer.Vector(" | ||
+ | map.addLayer(studlay); | ||
- | ox="$kdex" | + | var regsel=document.getElementById("reg") |
- | oy="$kdey" | + | var physel=document.getElementById("phy") |
+ | var clasel=document.getElementById(" | ||
+ | var ordsel=document.getElementById(" | ||
+ | var famsel=document.getElementById(" | ||
+ | var gensel=document.getElementById(" | ||
+ | var spesel=document.getElementById(" | ||
+ | var ICON_animalia=" | ||
+ | var ICON_bacteria=" | ||
+ | var ICON_fungi=" | ||
+ | var ICON_chromista=" | ||
+ | var ICON_plantae=" | ||
+ | var ICON_plostenkoid=" | ||
+ | var ICON_protista=" | ||
+ | var ICON_biohazard=" | ||
+ | var ICON_studanka=" | ||
+ | var ICON_negative=" | ||
- | i=$(($i+1)) | ||
- | # Precti XML, vyfiltruj jen to co ma prijit do mapy a serad to dle umisteni | + | function getJSONstud() |
- | # Umisteni je razene kvuli vic vzorkum z jednoho mista | + | { |
+ | url=" | ||
+ | var request; | ||
+ | if(window.XMLHttpRequest) | ||
+ | request=new XMLHttpRequest(); | ||
+ | else | ||
+ | request=new ActiveXObject(" | ||
+ | request.onreadystatechange=function() | ||
+ | { | ||
+ | if(request.readyState==4) | ||
+ | { | ||
+ | stud=JSON.parse(request.responseText); | ||
+ | studdraw(stud); | ||
+ | } | ||
+ | } | ||
+ | request.open(" | ||
+ | request.send(); | ||
+ | } | ||
- | done <<< | + | function studdraw(sj) |
+ | { | ||
+ | studlay.destroyFeatures(); | ||
+ | sjs=stud.std; | ||
+ | s=[]; | ||
- | # Do not forget to print last line when WHILE ends! | + | for(i=0;i<sjs.length; |
- | if [[ " | + | { |
- | sam="<table style=\" | + | s[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(sjs[i].lon,sjs[i].lat).transform(epsg4326, |
- | fi | + | studlay.addFeatures(s[i]); |
- | echo "var n$i = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point($kdex,$kdey).transform(epsg4326, | + | } |
- | echo "$2.addFeatures(n$i);" | + | } |
- | } # KONEC FCE SPAGETY !!! | + | function studdrv() |
+ | { | ||
+ | box=document.getElementById(" | ||
+ | if(box.checked) | ||
+ | getJSONstud(); | ||
+ | else | ||
+ | studlay.destroyFeatures(); | ||
+ | } | ||
- | echo "var ALL = new OpenLayers.Layer.Vector(' | + | // Return icon by Regnum |
- | spagety " | + | function geticon |
- | echo " | + | { |
+ | if(a[i].genus=="negative") | ||
+ | return ICON_negative; | ||
- | echo "var laycon | + | var p=true; |
- | while IFS='' | + | var r="" |
- | echo "var $spag = new OpenLayers.Layer.Vector(' | + | if(document.getElementById("reg").value!="ALL") |
- | spg=$(echo | + | { |
- | case " | + | r=document.getElementById("reg").value |
- | "Animalia") | + | p=false; |
- | icon=" | + | } |
- | " | + | else |
- | icon=" | + | { |
- | " | + | r=a[i].regnum |
- | icon="fungi.png";; | + | for(var e=i;e>=0 && a[e].locality==a[i].locality;e--) |
- | " | + | { |
- | icon="chromista.png";; | + | if(a[e].phylum!="Platyhelminthes") |
- | " | + | p=false; |
- | icon=" | + | if(a[e].regnum!=a[i].regnum) |
- | " | + | { |
- | icon=" | + | r="ALL"; |
- | *) | + | break; |
- | icon="biohazard.svg";; | + | } |
- | esac | + | } |
+ | } | ||
- | spagety " | ||
- | echo " | ||
- | done <<< | ||
- | # Plostenky | + | switch |
- | spg=$(echo " | + | { |
- | echo "var Platyhelminthes = new OpenLayers.Layer.Vector(' | + | case |
- | spagety | + | { |
- | echo "laycon.push(Platyhelminthes)" | + | if(p) |
+ | return ICON_plostenkoid; | ||
+ | return ICON_animalia; | ||
+ | } | ||
+ | case | ||
+ | return ICON_bacteria; | ||
+ | case | ||
+ | return ICON_fungi; | ||
+ | case | ||
+ | return ICON_chromista; | ||
+ | case | ||
+ | return ICON_plantae; | ||
+ | case "Protista": | ||
+ | return ICON_protista; | ||
+ | default: | ||
+ | return ICON_biohazard | ||
+ | } | ||
+ | } | ||
+ | function genphy() { | ||
+ | physel.innerHTML="< | ||
+ | clasel.innerHTML="< | ||
+ | ordsel.innerHTML="< | ||
+ | famsel.innerHTML="< | ||
+ | gensel.innerHTML="< | ||
+ | spesel.innerHTML="< | ||
- | echo "var controls | + | var phyarr=[] |
- | echo " selector: new OpenLayers.Control.SelectFeature(laycon, | + | for (var i=0; |
- | echo "};" | + | { |
- | echo "map.addControl(controls[' | + | if(regsel.value==window.arma[i].regnum && window.arma[i].phynum!="") |
- | echo "controls[' | + | phyarr.push(window.arma[i].phylum) |
+ | } | ||
+ | phyarr.sort() | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(i==0) | ||
+ | { | ||
+ | physel.innerHTML+="< | ||
+ | continue | ||
+ | } | ||
+ | if(phyarr[i]!=phyarr[i-1]) | ||
+ | physel.innerHTML+="< | ||
+ | } | ||
+ | armageddon() // Populate the map with monsters... | ||
+ | } | ||
+ | function gencla() { | ||
+ | clasel.innerHTML="< | ||
+ | ordsel.innerHTML="< | ||
+ | famsel.innerHTML="< | ||
+ | gensel.innerHTML="< | ||
+ | spesel.innerHTML="< | ||
+ | var claarr=[] | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(physel.value==window.arma[i].phylum && window.arma.classis!="" | ||
+ | claarr.push(window.arma[i].classis) | ||
+ | } | ||
+ | claarr.sort() | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(i==0) | ||
+ | { | ||
+ | clasel.innerHTML+="< | ||
+ | continue | ||
+ | } | ||
+ | if(claarr[i]!=claarr[i-1]) | ||
+ | clasel.innerHTML+="< | ||
+ | } | ||
+ | armageddon() // Populate the map with monsters... | ||
+ | } | ||
+ | function genord() { | ||
+ | ordsel.innerHTML="< | ||
+ | famsel.innerHTML="< | ||
+ | gensel.innerHTML="< | ||
+ | spesel.innerHTML="< | ||
+ | var ordarr=[] | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(clasel.value==window.arma[i].classis && window.arma[i].ordo!="" | ||
+ | ordarr.push(window.arma[i].ordo) | ||
+ | } | ||
+ | ordarr.sort() | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(i==0) | ||
+ | { | ||
+ | ordsel.innerHTML+="< | ||
+ | continue | ||
+ | } | ||
+ | if(ordarr[i]!=ordarr[i-1]) | ||
+ | ordsel.innerHTML+="< | ||
+ | } | ||
+ | armageddon() // Populate the map with monsters... | ||
+ | } | ||
+ | function genfam() { | ||
+ | famsel.innerHTML="< | ||
+ | gensel.innerHTML="< | ||
+ | spesel.innerHTML="< | ||
+ | var famarr=[] | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(ordsel.value==window.arma[i].ordo && window.arma[i].familia!="" | ||
+ | famarr.push(window.arma[i].familia) | ||
+ | } | ||
+ | famarr.sort() | ||
+ | for (var i=0; | ||
+ | { | ||
+ | if(i==0) | ||
+ | { | ||
+ | famsel.innerHTML+="< | ||
+ | continue | ||
+ | } | ||
+ | if(famarr[i]!=famarr[i-1]) | ||
+ | famsel.innerHTML+="< | ||
+ | } | ||
+ | armageddon() // Populate the map with monsters... | ||
+ | } | ||
- | echo "function | + | function |
- | echo " feature.popup = new OpenLayers.Popup.FramedCloud(' | + | gensel.innerHTML="< |
- | echo " | + | spesel.innerHTML="< |
- | echo " | + | var genarr=[] |
- | echo " | + | for (var i=0; |
- | echo " | + | { |
- | echo " | + | if(famsel.value==window.arma[i].familia && window.arma[i].genus!="" |
- | echo " | + | genarr.push(window.arma[i].genus) |
- | echo " );" | + | } |
- | echo " //feature.popup.closeOnMove = true;" | + | genarr.sort() |
- | echo " map.addPopup(feature.popup);" | + | for (var i=0; |
- | echo "}" | + | { |
+ | if(i==0) | ||
+ | { | ||
+ | gensel.innerHTML+="<option>"+genarr[0]+"</option>" | ||
+ | continue | ||
+ | } | ||
+ | if(genarr[i]!=genarr[i-1]) | ||
+ | gensel.innerHTML+="< | ||
+ | } | ||
+ | // | ||
+ | armageddon() // Populate the map with monsters... | ||
+ | } | ||
- | echo "function | + | function |
- | echo " feature.popup.destroy();" | + | { |
- | echo " | + | spesel.innerHTML="< |
- | echo " | + | var spearr=[] |
+ | for (var i=0; | ||
+ | { | ||
+ | if(gensel.value==window.arma[i].genus && window.arma[i].specie!="") | ||
+ | spearr.push(window.arma[i].specie) | ||
+ | } | ||
+ | spearr.sort() | ||
+ | for (var i=0;i< | ||
+ | { | ||
+ | if(i==0) | ||
+ | { | ||
+ | spesel.innerHTML+="< | ||
+ | continue | ||
+ | } | ||
+ | if(spearr[i]!=spearr[i-1]) | ||
+ | spesel.innerHTML+="< | ||
+ | } | ||
+ | armageddon() // Populate the map with monsters... | ||
+ | } | ||
+ | function armageddon() | ||
+ | { | ||
+ | console.log(" | ||
+ | var speval=document.getElementById(" | ||
+ | var genval=document.getElementById(" | ||
+ | var famval=document.getElementById(" | ||
+ | var ordval=document.getElementById(" | ||
+ | var claval=document.getElementById(" | ||
+ | var phyval=document.getElementById(" | ||
+ | var regval=document.getElementById(" | ||
+ | var a=[] | ||
- | echo " | + | if(speval!=" |
- | echo " | + | { |
- | echo " kinopt=kinsel.options[kinsel.selectedIndex].text;" | + | for(var i=0; |
- | echo " for (var i = map.layers.length - 1; i >= 1; i--) {" | + | if(window.arma[i].specie==speval && window.arma[i].genus==genval) // Check genus because of unknown "sp." |
- | echo " map.removeLayer(map.layers[i]);" | + | a.push(window.arma[i]) |
- | echo " }" | + | } |
- | echo " map.addLayer(window[kinopt])" | + | else if(genval!="ALL" |
- | echo "}" | + | { |
+ | for(var i=0; | ||
+ | if(window.arma[i].genus==genval) | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
+ | else if(famval!=" | ||
+ | { | ||
+ | for(var i=0; | ||
+ | if(window.arma[i].familia==famval) | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
+ | else if(ordval!="ALL" | ||
+ | { | ||
+ | for(var i=0; | ||
+ | if(window.arma[i].ordo==ordval) | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
+ | else if(claval!=" | ||
+ | { | ||
+ | for(var i=0;i< | ||
+ | if(window.arma[i].classis==claval) | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
+ | else if(phyval!="ALL" | ||
+ | { | ||
+ | for(var i=0; | ||
+ | if(window.arma[i].phylum==phyval) | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
+ | else if(regval!="ALL" | ||
+ | { | ||
+ | for(var i=0; | ||
+ | if(window.arma[i].regnum==regval) | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
+ | else // Regnum: ALL | ||
+ | { | ||
+ | for(var i=0; | ||
+ | a.push(window.arma[i]) | ||
+ | } | ||
- | echo "function | + | icongeddon(a) |
- | echo " for (var i=map.layers.length-1; | + | } |
- | echo " | + | |
- | echo " | + | function |
- | echo " map.addLayer(Platyhelminthes)" | + | { |
- | echo " | + | var p=[] |
+ | for(var i=0; | ||
+ | { | ||
+ | if(window.arma[i].regnum==""|| | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | p.push(window.arma[i]) | ||
+ | } | ||
+ | icongeddon(p) | ||
+ | } | ||
+ | |||
+ | function plostenkoidy() | ||
+ | { | ||
+ | var p=[] | ||
+ | for(var i=0; | ||
+ | { | ||
+ | if(window.arma[i].phylum==" | ||
+ | p.push(window.arma[i]) | ||
+ | } | ||
+ | icongeddon(p) | ||
+ | } | ||
+ | |||
+ | function icongeddon(a) | ||
+ | { | ||
+ | // | ||
+ | while(map.popups.length) | ||
+ | map.removePopup(map.popups[0]) | ||
+ | vectorLayerDynamic.destroyFeatures() | ||
+ | |||
+ | var bylo="" | ||
+ | var sam="" | ||
+ | var osam="" | ||
+ | var spoj="" | ||
+ | var ospoj="" | ||
+ | var ox="" | ||
+ | var oy="" | ||
+ | var datelog="" | ||
+ | var i=0 // Iterator over a[] (needed after FOR) | ||
+ | var n=[] // New points in the layer | ||
+ | var muchicons=0 // How much Regnum' | ||
+ | var samicon=ICON_biohazard // Icon | ||
+ | var spojicon=ICON_biohazard // Icon | ||
+ | |||
+ | for(; | ||
+ | { | ||
+ | if(a[i].cluster!=0&& | ||
+ | continue; | ||
+ | |||
+ | // Pokracujem v hadovi | ||
+ | if(a[i].locality == bylo) | ||
+ | { | ||
+ | sam=""; | ||
+ | spoj+="< | ||
+ | spoj+='<a href=" | ||
+ | if(a[i].obr != "" | ||
+ | spoj+='< | ||
+ | else | ||
+ | spoj+='< | ||
+ | spoj+="< | ||
+ | spoj+="</ | ||
+ | ox=a[i].x | ||
+ | oy=a[i].y | ||
+ | continue; | ||
+ | } | ||
+ | |||
+ | switch(a[i].specie) | ||
+ | { | ||
+ | case " | ||
+ | { | ||
+ | wikisp=" | ||
+ | break; | ||
+ | } | ||
+ | case " | ||
+ | case "": | ||
+ | { | ||
+ | wikisp=" | ||
+ | break; | ||
+ | } | ||
+ | default: | ||
+ | { | ||
+ | wikisp=" | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | |||
+ | // Bud prvni zaznam, nebo zmena pozice | ||
+ | |||
+ | // Predchozi pozice jen 1 zaznam? | ||
+ | if(sam != "" | ||
+ | { | ||
+ | samicon=geticon(a, | ||
+ | n[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(ox, | ||
+ | vectorLayerDynamic.addFeatures(n[i]); | ||
+ | spoj="" | ||
+ | sam="" | ||
+ | } // ELSE vytvori prazdny radek | ||
+ | // Predchozi pozice vic zaznamu? | ||
+ | if(spoj!="" | ||
+ | { | ||
+ | spojicon=geticon(a, | ||
+ | n[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(ox, | ||
+ | vectorLayerDynamic.addFeatures(n[i]); | ||
+ | spoj="" | ||
+ | sam="" | ||
+ | } | ||
+ | |||
+ | bylo=a[i].locality | ||
+ | spoj='< | ||
+ | if(a[i].obr != "" | ||
+ | spoj+='< | ||
+ | else | ||
+ | spoj+='< | ||
+ | spoj+='< | ||
+ | spoj+="</ | ||
+ | |||
+ | sam='< | ||
+ | sam+='< | ||
+ | sam+='< | ||
+ | if(a[i].imperium != "" | ||
+ | sam+='< | ||
+ | if(a[i].regnum != "" | ||
+ | sam+='< | ||
+ | if(a[i].phylum != "" | ||
+ | sam+='< | ||
+ | if(a[i].classis != "" | ||
+ | sam+='< | ||
+ | if(a[i].ordo != "" | ||
+ | sam+='< | ||
+ | if(a[i].familia != "" | ||
+ | sam+='< | ||
+ | if(a[i].genus != "" | ||
+ | sam+='< | ||
+ | if(a[i].specie != "" | ||
+ | sam+='< | ||
+ | if(a[i].biotope != "" | ||
+ | sam+="< | ||
+ | if(a[i].pov != "" | ||
+ | sam+="< | ||
+ | if(a[i].temperature != "" | ||
+ | sam+="< | ||
+ | if(a[i].pov != "" | ||
+ | sam+="< | ||
+ | if(a[i].pov != "" | ||
+ | sam+="< | ||
+ | |||
+ | |||
+ | |||
+ | if(a[i].takendate != "" | ||
+ | sam+="< | ||
+ | sam+="< | ||
+ | if(a[i].observer != "" | ||
+ | | ||
+ | if(a[i].micro != "" | ||
+ | sam+="< | ||
+ | if(a[i].enlargement != "" | ||
+ | sam+="< | ||
+ | /* if [[ " | ||
+ | # | ||
+ | # fi */ | ||
+ | // | ||
+ | // | ||
+ | sam+="</ | ||
+ | |||
+ | ox=a[i].x | ||
+ | oy=a[i].y | ||
+ | } // Konec prochazeni a[] | ||
+ | |||
+ | // Do not forget to print last line when FOR ends! | ||
+ | samicon=geticon(a, | ||
+ | if(sam == "" | ||
+ | sam='< | ||
+ | |||
+ | n[i]=new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(a[i-1].x, | ||
+ | vectorLayerDynamic.addFeatures(n[i]); | ||
+ | |||
+ | } // Konec armageddonu | ||
+ | |||
+ | //var laycon = [vectorLayer, | ||
+ | var laycon = [vectorLayer, | ||
+ | |||
+ | var controls = {selector: new OpenLayers.Control.SelectFeature(laycon, | ||
+ | map.addControl(controls[' | ||
+ | controls[' | ||
+ | |||
+ | function createPopup(feature) | ||
+ | { | ||
+ | feature.popup = new OpenLayers.Popup.FramedCloud(' | ||
+ | feature.geometry.getBounds().getCenterLonLat(), | ||
+ | null, | ||
+ | '< | ||
+ | null, | ||
+ | false, // Close button? | ||
+ | function() { controls[' | ||
+ | ); | ||
+ | // | ||
+ | map.addPopup(feature.popup); | ||
+ | } | ||
+ | |||
+ | function destroyPopup(feature) { | ||
+ | feature.popup.destroy(); | ||
+ | feature.popup = null; | ||
+ | } | ||
+ | |||
+ | |||
+ | // Vyhledavani | ||
+ | function limit() | ||
+ | { | ||
+ | srch=document.getElementById(" | ||
+ | var p=[] | ||
+ | for(var i=0; | ||
+ | { | ||
+ | if(window.arma[i].title.toLowerCase().indexOf(srch)> | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | // | ||
+ | // | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | p.push(arma[i]) | ||
+ | } | ||
+ | icongeddon(p) | ||
+ | } | ||
+ | |||
+ | |||
+ | // ====== GEOJSON ====== | ||
+ | |||
+ | var metageo=JSON.parse(" | ||
+ | var geje=[]; | ||
+ | var gejbarva=""; | ||
+ | |||
+ | function placegeo(coor, | ||
+ | { | ||
+ | var geja=new Array; | ||
+ | epsg4326 = new OpenLayers.Projection(" | ||
+ | projectTo = map.getProjectionObject(); | ||
+ | |||
+ | for(i=0; | ||
+ | { | ||
+ | geja.push(new OpenLayers.Geometry.Point(coor[i][0], | ||
+ | } | ||
+ | /* " | ||
+ | var lajna=new OpenLayers.StyleMap({ | ||
+ | " | ||
+ | // | ||
+ | strokeColor: | ||
+ | strokeOpacity: | ||
+ | strokeWidth: | ||
+ | pointRadius: | ||
+ | }), | ||
+ | " | ||
+ | // | ||
+ | strokeColor: | ||
+ | strokeOpacity: | ||
+ | strokeWidth: | ||
+ | pointRadius: | ||
+ | }) | ||
+ | }); */ | ||
+ | var lajna={ // Feature without the namespaces | ||
+ | strokeColor: | ||
+ | strokeOpacity: | ||
+ | strokeWidth: | ||
+ | pointRadius: | ||
+ | }; | ||
+ | |||
+ | gejs=new OpenLayers.Geometry.LineString(geja); | ||
+ | vectorLayerPonygon.addFeatures([new OpenLayers.Feature.Vector(gejs, | ||
+ | } | ||
+ | |||
+ | function getsld(url, | ||
+ | { | ||
+ | var request; | ||
+ | if(window.XMLHttpRequest) | ||
+ | request=new XMLHttpRequest(); | ||
+ | else | ||
+ | request=new ActiveXObject(" | ||
+ | request.overrideMimeType(" | ||
+ | request.onreadystatechange=function() | ||
+ | { | ||
+ | if(request.readyState==4) | ||
+ | { | ||
+ | tmpc=request.responseText; | ||
+ | tmpc=tmpc.match(/ | ||
+ | getgeo(url, | ||
+ | // | ||
+ | } | ||
+ | } | ||
+ | request.open(" | ||
+ | request.send(); | ||
+ | } | ||
+ | |||
+ | |||
+ | function getgeo(url, | ||
+ | { | ||
+ | var request; | ||
+ | if(window.XMLHttpRequest) | ||
+ | request=new XMLHttpRequest(); | ||
+ | else | ||
+ | request=new ActiveXObject(" | ||
+ | request.overrideMimeType(" | ||
+ | request.onreadystatechange=function() | ||
+ | { | ||
+ | if(request.readyState==4) | ||
+ | { | ||
+ | tmpg=JSON.parse(request.responseText); | ||
+ | for(var e=0; | ||
+ | { | ||
+ | if(typeof tmpg.features[e].properties === ' | ||
+ | continue; | ||
+ | |||
+ | for(var i=0; | ||
+ | { | ||
+ | for(var j=0; | ||
+ | { | ||
+ | if(tmpg.features[e].geometry.coordinates[i][j].length< | ||
+ | continue; | ||
+ | // | ||
+ | placegeo(tmpg.features[e].geometry.coordinates[i][j], | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | request.open(" | ||
+ | request.send(); | ||
+ | } | ||
+ | |||
+ | // ENTRY POINT | ||
+ | // parametr je ./ adresar ve kterem je metadata.json S LOMITKEM NA KONCI | ||
+ | function drawgeojson(url) | ||
+ | { | ||
+ | var request; | ||
+ | if(window.XMLHttpRequest) | ||
+ | request=new XMLHttpRequest(); | ||
+ | else | ||
+ | request=new ActiveXObject(" | ||
+ | request.onreadystatechange=function() | ||
+ | { | ||
+ | if(request.readyState==4) | ||
+ | { | ||
+ | window.metageo=JSON.parse(request.responseText); | ||
+ | for(var i=0; | ||
+ | { | ||
+ | // | ||
+ | getsld(url, | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | request.open("GET", | ||
+ | request.send(); | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | ==== Springs ==== | ||
+ | |||
+ | To be able to better plan routes for collecting planarians, the knowledge of locations of springs seems to be important. So BioOSM can show them! Below is a script to get the locations from OSM XMLs obtainable from [[http:// | ||
+ | |||
+ | <code bash studanky.sh> | ||
+ | # | ||
+ | # generate BioOSM compatible " | ||
+ | # Usage: studanky.sh osmdump.xml | ||
+ | # | ||
+ | # Download OSM file to be passed as $1 | ||
+ | # wget " | ||
+ | # gzip -kd ./ | ||
+ | # | ||
+ | # Pozor ^^ sezere spoustu rameti | ||
+ | # | ||
+ | |||
+ | osm=$(cat " | ||
+ | |||
+ | json=' | ||
+ | |||
+ | while IFS='' | ||
+ | n=$(echo " | ||
+ | lat=$(echo " | ||
+ | lon=$(echo " | ||
+ | |||
+ | if [ " | ||
+ | continue; # <way> a tak | ||
+ | fi | ||
+ | if [[ " | ||
+ | n=" | ||
+ | >& | ||
+ | fi | ||
+ | |||
+ | json+=" | ||
+ | json+=" | ||
+ | json+=" | ||
+ | json+=" | ||
+ | json+="}," | ||
+ | |||
+ | >& | ||
+ | |||
+ | done <<< | ||
+ | |||
+ | echo " | ||
+ | </ | ||
+ | |||
+ | === LocalityID === | ||
+ | <code bash ajdy.sh> | ||
+ | # | ||
+ | |||
+ | T=$(mktemp) | ||
+ | unzip -p " | ||
+ | |||
+ | |||
+ | hf=$(cat " | ||
+ | # nejvyssi dosazene ID | ||
+ | mid=$(cat " | ||
+ | mid=$(($mid+1)) | ||
+ | |||
+ | |||
+ | function ll() | ||
+ | { | ||
+ | while IFS='' | ||
+ | t=$(echo "$r" | grep -oe ' < | ||
+ | l=$(echo | ||
+ | echo " | ||
+ | done <<< | ||
+ | } | ||
+ | |||
+ | srt=$(ll " | ||
+ | |||
+ | uid=$mid | ||
+ | while IFS='' | ||
+ | l=$(echo " | ||
+ | lid=$(cat " | ||
+ | if [[ " | ||
+ | |||
+ | sedexp=" | ||
+ | #echo " | ||
+ | sed -E " | ||
+ | uid=$(($uid+1)) | ||
+ | fi | ||
+ | done <<< | ||
+ | D=$(mktemp -d) | ||
+ | cp -f " | ||
+ | zip -j " | ||
- | echo "</ | + | rm -rfv "$T" |
- | echo "</ | + | rm -rfv "$D" |
</ | </ |
project/bioosm/start.1528405378.txt.gz · Last modified: 2018/06/07 21:02 by sumie-dh