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/07/12 09:51] – Ruzne ikony i pro celkovou mapu sachy | project:bioosm:start [2025/10/30 16:29] (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}} | ||
| Line 13: | Line 13: | ||
| & | & | ||
| ~~ | ~~ | ||
| + | ---- dataentry project ---- | ||
| + | name: BioOSM | ||
| + | status: active | ||
| + | image: {{: | ||
| + | ---- | ||
| - | [[http:// | + | On hold - leaving Tellico, welcome Specify 6/7 |
| + | |||
| + | [[https:// | ||
| ==== 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 smysluplne a prehledne popisky | + | * 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 smysluplne a prehledne popisky |
| - | * 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 | * procvicovani temne magie commandu grep, sed a regexpu | ||
| Line 28: | Line 35: | ||
| 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 101: | Line 112: | ||
| # 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 = "" |
| + | # = " | ||
| # | # | ||
| - | # find ./ -type f -exec mogrify -verbose -layers Dispose -resize 128\> | + | # Print result to /jsonrss/ |
| # | # | ||
| + | # 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) | # // vectorLayer.removeFeatures(atol) | ||
| # // map.removeLayer(vectorLayer) | # // map.removeLayer(vectorLayer) | ||
| Line 110: | Line 134: | ||
| # | # | ||
| # Creates: | # Creates: | ||
| - | # (to stdout) | + | # (to stdout) |
| # | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| # | # | ||
| + | |||
| + | |||
| + | |||
| + | rm -rfv " | ||
| + | mkdir -p " | ||
| ICON_animalia=" | ICON_animalia=" | ||
| Line 122: | Line 154: | ||
| ICON_protista=" | ICON_protista=" | ||
| ICON_biohazard=" | ICON_biohazard=" | ||
| + | |||
| + | json="" | ||
| + | geojson="" | ||
| + | |||
| + | rss=$'<? | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | rss+=$'< | ||
| + | |||
| + | errhtml=" | ||
| + | |||
| + | # paticka (co, rok, odkaz) | ||
| + | function obioosm () { | ||
| + | | ||
| + | if [[ " | ||
| + | r+=" - $1" | ||
| + | fi | ||
| + | r+=". " | ||
| + | if [[ " | ||
| + | r+=" | ||
| + | else | ||
| + | r+=" | ||
| + | fi | ||
| + | if [[ " | ||
| + | r+=" | ||
| + | else | ||
| + | r+=" | ||
| + | fi | ||
| + | r+="</ | ||
| + | echo " | ||
| + | } | ||
| + | |||
| + | # HTML fajl per project | ||
| + | function genhtml() { | ||
| + | o=$(obioosm " | ||
| + | h=$(cat " | ||
| + | echo " | ||
| + | echo "*** $1 done ***" | ||
| + | } | ||
| # Return icon by Regnum | # Return icon by Regnum | ||
| Line 127: | Line 203: | ||
| case " | case " | ||
| " | " | ||
| - | echo $ICON_animalia;; | + | echo |
| " | " | ||
| - | echo $ICON_bacteria;; | + | echo |
| " | " | ||
| - | echo $ICON_fungi;; | + | echo |
| " | " | ||
| - | echo $ICON_chromista;; | + | echo |
| " | " | ||
| - | echo $ICON_plantae;; | + | echo |
| " | " | ||
| - | echo $ICON_protista;; | + | echo |
| *) | *) | ||
| - | echo $ICON_biohazard;; | + | echo |
| esac | esac | ||
| } | } | ||
| + | function safehtml () { | ||
| + | echo " | ||
| + | } | ||
| - | rm -rfv "./det/*" | + | function getgeo () { |
| - | mkdir -p "./det" | + | # |
| - | #cat "./ | + | g=$(echo |
| + | case "$g" in | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | " | ||
| + | echo " | ||
| + | "150") | ||
| + | echo " | ||
| + | " | ||
| + | echo "Sandy and loamy loess, Tertiary sediments, fluvial deposits";; | ||
| + | " | ||
| + | echo " | ||
| + | *) | ||
| + | echo "";; | ||
| + | esac | ||
| + | } | ||
| - | # Parse Tellico file to list of entries | + | i=1 # GLOBAL increment must persist multiple spagety() calls; incremented |
| - | praseTC=$(unzip -p "$1" tellico.xml | tr -d ' | + | # Core function generating entries matching selection criteria (ie Kingdom) |
| + | # !!! BEZ ODSAZENI !!! | ||
| + | # $1 = list of entries | ||
| + | # $2 = layer name = JSON filename without suffix | ||
| + | # $3 = icon of the points | ||
| + | function spagety | ||
| - | # Sorted unique Kingdoms (to be passed as selection criteria) | + | if [[ "$errhtml" |
| - | kingdoms=$(echo "$praseTC" | + | >& |
| + | else | ||
| + | >&2 echo "<h2>$2</h2>" | ||
| + | fi | ||
| + | bylo="" | ||
| + | sam="" | ||
| + | osam="" | ||
| + | spoj="" | ||
| + | ospoj="" | ||
| + | ox="" | ||
| + | oy="" | ||
| + | datelog="" | ||
| + | json=" | ||
| + | geojson=' | ||
| + | geojson+=" | ||
| + | geojson+='"," | ||
| - | echo '< | + | while IFS='' |
| - | echo '< | + | if [[ "$radek" = "" |
| - | echo '< | + | continue; |
| - | echo ' | + | fi |
| - | echo ' | + | |
| - | echo ' | + | |
| - | echo ' | + | |
| - | echo ' | + | |
| - | echo '</ | + | |
| - | echo "<body>" | + | entryid=$(echo "$radek" |
| - | echo "<h1 id='title'>BioOSM | + | co=$(echo |
| + | co=$(safehtml " | ||
| + | obr=$(echo "$radek" | ||
| + | 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 " | ||
| - | # Generate select | + | # if [[ "$errhtml" == "" |
| - | ksel="<select id=' | + | # |
| - | ksel=" | + | # else |
| - | while IFS='' | + | # |
| - | ksel="$ksel< | + | # fi |
| - | done <<< | + | # |
| - | ksel=" | + | |
| - | echo " | + | |
| - | echo "<input type='button' | + | |
| - | | + | detid=$(echo "brmlab$co$obr$kde$kdy" |
| - | echo "</ | + | |
| - | echo '<script>' | + | if [[ " |
| + | if [[ " | ||
| + | >& | ||
| + | >& | ||
| + | else | ||
| + | >& | ||
| + | >& | ||
| + | fi | ||
| + | fi | ||
| - | echo ' | + | zkurvenetellico=$(echo "$obr" |
| - | echo 'map.addLayer(new OpenLayers.Layer.OSM());' | + | odkurvenyobr=$(echo "$obr" |
| - | echo ' | + | #if [[ " |
| - | echo ' | + | if [[ ! -f "./img/$odkurvenyobr" |
| - | echo 'var lonLat | + | if [[ " |
| - | echo 'var zoom=8;' | + | if [[ " |
| - | echo 'map.setCenter | + | >& |
| + | else | ||
| + | >& | ||
| + | fi | ||
| + | continue; | ||
| + | fi | ||
| + | fi | ||
| + | obr=$(safehtml " | ||
| - | echo 'var vectorLayer | + | if [[ " |
| + | wikisp="https:// | ||
| + | else | ||
| + | wikisp="https://en.wikipedia.org/wiki/$gen $spe" | ||
| + | fi | ||
| - | echo '// | + | povr="" |
| + | povs="" | ||
| + | pov="" | ||
| + | if [[ " | ||
| + | povr=$(cat " | ||
| + | # | ||
| + | povrf=$(echo " | ||
| + | povrn=$(echo | ||
| + | povs=$(cat " | ||
| + | # | ||
| + | povsf=$(echo " | ||
| + | povsn=$(echo " | ||
| + | if (( $(echo " | ||
| + | pov=" | ||
| + | else | ||
| + | pov=" | ||
| + | fi | ||
| + | fi | ||
| - | echo 'var atol = new OpenLayers.Feature.Vector(' | + | if [[ "$cls" |
| - | echo ' new OpenLayers.Geometry.Point(14.41876, | + | cls=0 |
| - | echo ' | + | fi |
| - | echo ' | + | |
| - | echo ');' | + | |
| - | echo ' | + | |
| - | # Sem prijdou dalsi staticke ficury | + | |
| - | echo " | + | |
| + | 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+=" | ||
| - | i=1 # GLOBAL increment must persist multiple spagety() calls; incremented to infinity | + | json+="$Tjson," |
| - | # Core function generating entries matching selection criteria (ie Kingdom) | + | geojson+=' |
| - | # !!! BEZ ODSAZENI !!! | + | geojson+=" |
| - | # $1 = list of entries | + | geojson+=' |
| - | # $2 = layer name | + | geojson+=" |
| - | # $3 = icon of the points | + | |
| - | function spagety () { | + | |
| - | bylo="" | + | rss+=$'< |
| - | sam="" | + | rss+=$' |
| - | osam="" | + | rss+=$' |
| - | spoj="" | + | rss+=$' |
| - | ospoj="" | + | rss+=$' |
| - | ox="" | + | rss+=$' |
| - | oy="" | + | rss+=$'</ |
| - | while IFS='' | ||
| - | co=$(echo "$radek" | grep -oe ' < | + | # Generate detail page |
| - | obr=$(echo "$radek" | grep -oe ' < | + | detid=$(echo "brmlab$co$obr$kde$kdy" | md5sum |
| - | kde=$(echo " | + | detpg="<html><head>" |
| - | kdex=$(echo " | + | detpg+="<meta http-equiv='Content-Type' |
| - | kdey=$(echo " | + | detpg+="<link rel='stylesheet' |
| - | kdy=$(echo " | + | detpg+="<title>Brmlab |
| - | 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 "$radek" | grep -oe ' < | + | |
| - | obs=$(echo | + | |
| + | detpg+="< | ||
| + | detpg+="< | ||
| + | detpg+="< | ||
| + | detpg+="< | ||
| + | detpg+="< | ||
| + | detpg+="< | ||
| + | detpg+="< | ||
| + | detpg+="< | ||
| - | if [[ "$kdex" = "" | + | detpg+="</ |
| - | >&2 echo $(echo "$radek" | + | if [[ "$cls" |
| - | continue; | + | detpg+="< |
| - | fi | + | detpg+="< |
| - | zkurvenetellico=$(echo "$obr" | + | fi |
| - | if [[ "$zkurvenetellico" = ".jpeg" ]]; then | + | detpg+="< |
| - | >&2 echo "$obr $co" | + | detpg+="< |
| - | continue; | + | detpg+="< |
| - | fi | + | detpg+="< |
| + | if [[ " | ||
| + | detpg+=" | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ "$phy" != "" | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ "$fam" | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ "$kar" | ||
| + | detpg+="< | ||
| + | fi | ||
| + | detpg+="< | ||
| + | if [[ "$kdy" != "" | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | loc="< | ||
| + | fi | ||
| + | detpg+="< | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| - | + | if [[ "$obs" != "" | |
| - | # Generate detail page | + | detpg+="< |
| - | detid=$(echo " | + | fi |
| - | detpg="< | + | if [[ "$bio" != "" |
| - | detpg=" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | detpg=" | + | if [[ "$pov" != "" |
| - | detpg=" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | detpg=" | + | if [[ "$geo" != "" |
| - | if [[ "$imp" != "" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | fi | + | if [[ "$tem" != "" |
| - | if [[ "$reg" != "" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | fi | + | if [[ "$cnd" != "" |
| - | if [[ "$phy" != "" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | fi | + | if [[ "$ph" != "" |
| - | if [[ "$cla" != "" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | fi | + | detpg+="<span id=' |
| - | if [[ "$ord" != "" | + | if [[ " |
| - | detpg=" | + | detpg+="< |
| - | fi | + | fi |
| - | if [[ "$fam" != "" | + | detpg+="</ |
| - | detpg=" | + | detpg+="<span id=' |
| - | fi | + | if [[ "$eng" != "" |
| - | if [[ " | + | detpg+="< |
| - | detpg=" | + | fi |
| - | fi | + | detpg+="</ |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | detpg=" | + | |
| - | if [[ "$kdy" != "" | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | detpg=" | + | |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | detpg=" | + | |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | detpg=" | + | |
| - | if [[ "$des" != "" | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | fi | + | |
| - | detpg=" | + | |
| - | if [[ " | + | |
| - | detpg=" | + | |
| - | else | + | |
| if [[ " | if [[ " | ||
| - | detyt=$(echo " | + | detpg+="<b>Video:</b> <a href=\"$vid\" |
| - | detpg=" | + | |
| - | else | + | |
| - | detpg=" | + | |
| fi | fi | ||
| - | fi | + | if [[ " |
| - | detpg=" | + | detpg+="< |
| - | detpg=" | + | fi |
| - | echo "$detpg" > "./det/$detid.htm" | + | if [[ " |
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | elif [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | detpg+="<span id=' | ||
| + | if [[ " | ||
| + | detpg+="< | ||
| + | fi | ||
| + | detpg+="</ | ||
| + | detpg+="<br>< | ||
| + | detpg+="< | ||
| + | |||
| + | lhx=$(echo " | ||
| + | lhy=$(echo " | ||
| + | pdx=$(echo " | ||
| + | pdy=$(echo " | ||
| + | detpg+="< | ||
| + | detpg+="</ | ||
| - | # Pokracujem v hadovi | ||
| - | if [[ " | ||
| - | sam=""; | ||
| - | spoj=" | ||
| 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 | ||
| + | if [[ " | ||
| + | detpg+=" | ||
| fi | fi | ||
| - | spoj=" | ||
| - | spoj=" | ||
| - | spoj=" | ||
| - | ox=" | ||
| - | oy=" | ||
| - | continue; | ||
| - | fi | ||
| - | # Bud prvni zaznam, nebo zmena pozice | + | detpg+="</ |
| + | detpg+=$(obioosm " | ||
| + | detpg+="</ | ||
| + | echo " | ||
| - | # Predchozi pozice jen 1 zaznam? | + | # Plain log of entries |
| - | if [[ " | + | datelog+="$kdy $kde <a href=' |
| - | samicon=$(geticon | + | |
| - | >&2 echo " | + | |
| - | echo "var n$i = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point($ox, | + | if [[ "$errhtml" |
| - | echo " | + | >&2 echo -e "\033[32m$lid $co $obs\033[0m" |
| - | spoj="" | + | |
| - | sam="" | + | |
| - | fi # ELSE vytvori prazdny radek | + | |
| - | # Predchozi pozice vic zaznamu? | + | |
| - | if [[ "$spoj" | + | |
| - | muchicons=$(echo " | + | |
| - | #>&2 echo "*** $muchicons" | + | |
| - | if [[ "$muchicons" | + | |
| - | spojicon=$(geticon | + | |
| - | #>& | + | |
| else | else | ||
| - | spojicon=$ICON_biohazard | + | >&2 echo "< |
| fi | fi | ||
| - | echo "var n$i = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point($ox, | ||
| - | echo " | ||
| - | spoj="" | ||
| - | sam="" | ||
| - | fi | ||
| - | bylo="$kde" | + | ox=" |
| - | spoj="<tr><td><a href=\" | + | oy="$kdey" |
| - | if [[ "$obr" | + | |
| - | spoj="$spoj<img src=\"./simg/$obr\" | + | i=$(($i+1)) |
| + | |||
| + | done <<< | ||
| + | echo -e " | ||
| + | # echo -e " | ||
| + | echo -e " | ||
| + | |||
| + | rss+=$' | ||
| + | rss+=$' | ||
| + | echo " | ||
| + | |||
| + | } # KONEC FCE SPAGETY | ||
| + | |||
| + | |||
| + | |||
| + | # Sorted unique Kingdoms (to be passed as selection criteria) | ||
| + | # | ||
| + | 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< | + | if(request.readyState==4) |
| - | spoj="$spoj</tr>" | + | { |
| + | 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","./"+ubermaster+" | ||
| + | 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; |
| - | if [[ " | + | { |
| - | muchicons=$(echo "$spoj" | + | s[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(sjs[i].lon,sjs[i].lat).transform(epsg4326, |
| - | if [[ " | + | studlay.addFeatures(s[i]); |
| - | samicon=$(geticon $(echo | + | } |
| + | } | ||
| + | |||
| + | function studdrv() | ||
| + | { | ||
| + | box=document.getElementById("studchecker"); | ||
| + | if(box.checked) | ||
| + | getJSONstud(); | ||
| else | else | ||
| - | samicon=$ICON_biohazard | + | studlay.destroyFeatures(); |
| - | fi | + | } |
| - | sam="< | + | |
| - | else | + | |
| - | samicon=$(geticon $(echo " | + | |
| - | fi | + | |
| - | echo "var n$i = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point($kdex, | + | |
| - | echo " | + | |
| - | } # KONEC FCE SPAGETY !!! | + | // Return icon by Regnum |
| + | function geticon (a,i) | ||
| + | { | ||
| + | if(a[i].genus==" | ||
| + | return ICON_negative; | ||
| - | echo "var ALL = new OpenLayers.Layer.Vector(' | + | var p=true; |
| - | spagety " | + | var r="" |
| - | echo " | + | if(document.getElementById(" |
| + | { | ||
| + | r=document.getElementById(" | ||
| + | p=false; | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | r=a[i].regnum | ||
| + | for(var e=i;e>=0 && a[e].locality==a[i].locality; | ||
| + | { | ||
| + | if(a[e].phylum!="Platyhelminthes") | ||
| + | p=false; | ||
| + | if(a[e].regnum!=a[i].regnum) | ||
| + | { | ||
| + | r=" | ||
| + | break; | ||
| + | } | ||
| + | } | ||
| + | } | ||
| - | echo "var laycon = [vectorLayer, | ||
| - | while IFS='' | ||
| - | echo "var $spag = new OpenLayers.Layer.Vector(' | ||
| - | spg=$(echo " | ||
| - | icon=$(geticon " | ||
| - | spagety " | ||
| - | echo " | ||
| - | done <<< | ||
| - | # Plostenky | + | switch |
| - | spg=$(echo "$praseTC" | + | { |
| - | 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.1531389108.txt.gz · Last modified: 2018/07/12 09:51 by sachy