Mercurial > hgrepos > hgweb.cgi > skipweb
changeset 662:1f8a536b5ea6
leaf.rb button add
author | FUJIKAWA Kosuke <c111126@g.koeki-u.ac.jp> |
---|---|
date | Fri, 28 Nov 2014 18:30:55 +0900 |
parents | 4a8cdafe100e |
children | 99a32bc3b81b 5e8f268d46c6 |
files | fujix/add.html fujix/add.rb fujix/admin/delete.rb fujix/admin/etsuran.rb fujix/check.rb fujix/leaf.rb fujix/leaflet/images/angry.png fujix/leaflet/images/face.png fujix/leaflet/images/sad.png fujix/redirect.html |
diffstat | 10 files changed, 156 insertions(+), 36 deletions(-) [+] |
line wrap: on
line diff
--- a/fujix/add.html Tue Nov 18 09:59:26 2014 +0900 +++ b/fujix/add.html Fri Nov 28 18:30:55 2014 +0900 @@ -6,12 +6,15 @@ <body> <h1>登録ぺーじ</h1> + +<p><a href="manual.html">はじめに</a></p> <p>名前を入れて登録しよう</p> <form method="POST" action="./add.rb"> <p>お名前: <input name="name" type="text" maxlength="40"><br> <input type="submit" value="OK"> <input type="reset" value="reset"><br></p> </form> + <address>c111126@g.koeki-u.ac.jp</address> </body>
--- a/fujix/add.rb Tue Nov 18 09:59:26 2014 +0900 +++ b/fujix/add.rb Fri Nov 28 18:30:55 2014 +0900 @@ -25,11 +25,11 @@ if name == nil && id == 0 begin - db.execute("insert into main(name,lon,lat) values('#{adname}',0,0)"); + db.execute("insert into main(name,lon,lat,sta) values('#{adname}',0,0,1)"); rescue - db.execute("create table main(id integer PRIMARY KEY AUTOINCREMENT,adname,lon,lat)"); - db.execute("insert into main(name,lon,lat) values('#{adname}',0,0)"); - data = db.execute("select * from main"); + db.execute("create table main(id integer PRIMARY KEY AUTOINCREMENT,adname,lon,lat,sta)"); + db.execute("insert into main(name,lon,lat,sta) values('#{adname}',0,0,1)"); + db.execute("select * from main"); end count = db.execute("select max(id) from main");
--- a/fujix/admin/delete.rb Tue Nov 18 09:59:26 2014 +0900 +++ b/fujix/admin/delete.rb Fri Nov 28 18:30:55 2014 +0900 @@ -15,8 +15,8 @@ rescue print"<p>テーブルの再構築に失敗しました。</p>" else - db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat)"); - db.execute("insert into main(name,lon,lat) values('NAME','LON','LAT')"); + db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat,sta)"); + db.execute("insert into main(name,lon,lat,sta) values('NAME','LON','LAT','STA')"); print"<p>データベースの中身を消去しました。</p>" end else
--- a/fujix/admin/etsuran.rb Tue Nov 18 09:59:26 2014 +0900 +++ b/fujix/admin/etsuran.rb Fri Nov 28 18:30:55 2014 +0900 @@ -7,8 +7,8 @@ begin result = db.execute("select * from main"); rescue - db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat)"); - db.execute("insert into main(name,lon,lat) values('NAME','LON','LAT')"); + db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat,sta)"); + db.execute("insert into main(name,lon,lat,sta) values('NAME','LON','LAT','STA')"); result = db.execute("select * from main"); end @@ -25,12 +25,12 @@ print"<p>まだ登録している人は居ません</p>" else print"<table border = 1> - <tr><th>名前</th><th>緯度</th><th>経度</th></tr>\n" + <tr><th>名前</th><th>緯度</th><th>経度</th><th>地図</th></tr>\n" result.each do |line| if line[2] == "LON" next else - printf("<tr><td>%s</td><td>%f</td><td>%f</td></tr>\n",line[1],line[2],line[3]) + printf("<tr><td>%s</td><td>%f</td><td>%f</td><td><a href=\"../check.rb?%s\">表示</a></td></tr>\n",line[1],line[2],line[3],line[2].to_s+"+"+line[3].to_s) end end print"</table>"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fujix/check.rb Fri Nov 28 18:30:55 2014 +0900 @@ -0,0 +1,91 @@ +#!/usr/bin/env ruby +#coding:utf-8 + +print"Content-type: text/html charset=UTF-8\n\n" + +require'sqlite3' +require'cgi' +c = CGI.new(:accept_charaset => "UTF-8") +db = SQLite3::Database.new("sql/test.sq3") +db.results_as_hash = true + +data = Hash.new + +begin + db.execute("select * from main"); +rescue + db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat)"); + db.execute("insert into main(name,lon,lat) values('#{name}','#{lon}','#{lat}')"); +end + +db.execute("select * from main") do |load| + data[load['id']] = [load['name'],load['lon'],load['lat'],load['sta']] +end + +lon = 38.89420 +lat = 139.8187 +redirect = "check.rb" +image = ["","face","angry","sad"] + +if ARGV[1] != nil + lon = ARGV[0].to_f + lat = ARGV[1].to_f + redirect += "?" + lon.to_s + "+" + lat.to_s +end + +printf(<<_EOS_,redirect,lon.to_f,lat.to_f) +<!DOCTYPE html> +<html> +<head> +<link rel="stylesheet" type="text/css" href="leaflet/leaflet.css"/> +<script src="leaflet/leaflet.js"></script> +<style> + html,body,#map{ + height: 100% + } + body{ + padding: 0; + margin: 0; + } +</style> +<title>閲覧用ページ</title> +<!-- <meta http-equiv="refresh" content="20;%s"> --> +</head> +<body> +<div id="map"></div> +<script type="text/javascript"> + var hmap = L.map('map',{ + center: [%f,%f], + zoom: 16 //1~18 + }); + L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{ + attribution: '© OpenStreetMap contributors' + }).addTo(hmap); +_EOS_ + + for id in data.keys + if data[id][1] == "LON" + next + else + num = data[id][3] + printf(<<_EOS_,data[id][1].to_f,data[id][2].to_f,image[num],data[id][0]) + L.marker([%f,%f],{ + clickable:true, + draggable:true, + icon:L.icon({ + iconUrl: 'leaflet/images/%s.png', + iconAnchor: [0,0], + popupAnchor: [10,5] + }) + }) + .bindPopup('%s') + .addTo(hmap); +_EOS_ + end + end + + print" +</script> +</body> +</html>\n" +
--- a/fujix/leaf.rb Tue Nov 18 09:59:26 2014 +0900 +++ b/fujix/leaf.rb Fri Nov 28 18:30:55 2014 +0900 @@ -5,11 +5,11 @@ require'sqlite3' require'cgi' -c = CGI.new(:accept_charaset => "UTF-8") +cgi = CGI.new(:accept_charaset => "UTF-8") db = SQLite3::Database.new("sql/test.sq3") -db.results_as_hash = true +db.results_as_hash = true #DBの値をハッシュとして受け取る -cookieuke = Hash.new # cookie値保存用のHash +cookieuke = Hash.new # cookie値保存用のHash if (c=ENV['HTTP_COOKIE']) # 環境変数 HTTP_COOKIE にcookieリストがある c.split(/[;,]\s+/).each do |exp| # (セミコロンかカンマ)+空白 で分解 if /(.*)=(.*)/ =~ exp # =の前後で分解 「変数=値;」 @@ -19,13 +19,15 @@ end end end + name = cookieuke["name"] id = cookieuke["id"].to_i +image = ["","face","angry","sad"] if ARGV[0] == "error" || ARGV[1] == nil || (name == "" && id == 0) message = "" redirect = "redirect" - if (name == "" && id == 0) + if name == "" && id == 0 redirect = "add" message = "登録されていないため登録ページへ飛びます" elsif ARGV[0] == "error" @@ -34,51 +36,69 @@ message = "想定されないアクセスがされたため登録ページに戻ります" redirect = "add" end - printf(<<_EOS_) + + printf(<<_EOS_,redirect,message,redirect) <!DOCTYPE html> <html> <head> <title>MISS</title> -<meta http-equiv="refresh" content="1;#{redirect}.html"> +<meta http-equiv="refresh" content="3;%s.html"> </head> <body> -<p>#{message}</p> -<p>移動しない場合は<a href="#{redirect}.html">こちら</p>から移動してください</p> +<p>%s</p> +<p>移動しない場合は<a href="%s.html">こちら</a>から移動してください</p> </body> </html> _EOS_ + else lon = ARGV[0].to_f lat = ARGV[1].to_f data = Hash.new + begin db.execute("select * from main"); rescue - db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat)"); - db.execute("insert into main(name,lon,lat) values('NAME','LON','LAT')"); + db.execute("create table main(id INTEGER PRIMARY KEY AUTOINCREMENT,name,lon,lat,sta)"); + db.execute("insert into main(name,lon,lat,sta) values('#{name}','#{lon}','#{lat}','#{sta}')"); end - - sql = "update main set name=?,lon=?,lat=? where id=?" - - begin - db.execute(sql,name,lon,lat,id) - rescue - db.execute("insert into main(name,lon,lat) values('#{name}','#{lon}','#{lat}')"); + + sta = cgi["v_radio"].to_i + if sta != 0 + bun = "good" + sql = "update main set name=?,lon=?,lat=?,sta=? where id=?" + begin + db.execute(sql,name,lon,lat,sta,id) + rescue + #db.execute("insert into main(name,lon,lat,sta) values('#{name}','#{lon}','#{lat}','#{sta}')"); + end + else + bun = "boo" + sql = "update main set name=?,lon=?,lat=?,where id=?" + begin + db.execute(sql,name,lon,lat,id) + rescue + #db.execute("insert into main(name,lon,lat,sta) values('#{name}','#{lon}','#{lat}','#{sta}')"); + end end db.execute("select * from main") do |load| - data[load['id']] = [load['name'],load['lon'],load['lat']] + data[load['id']] = [load['name'],load['lon'],load['lat'],load['sta']] end - printf(<<_EOS_,lon.to_f,lat.to_f) + + printf(<<_EOS_,lon.to_f,lat.to_f,lon.to_f,lat.to_f) <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="leaflet/leaflet.css"/> <script src="leaflet/leaflet.js"></script> <style> - html,body,#map{ + html,body{ height: 100% } + #map{ + height: 95% + } body{ padding: 0; margin: 0; @@ -88,27 +108,33 @@ <meta http-equiv="refresh" content="20;redirect.html"> </head> <body> +<form method="POST" action="./leaf.rb?%f+%f"> +<input name="v_radio" type="radio" value="1">順調 +<input name="v_radio" type="radio" value="2">ほげ +<input name="v_radio" type="radio" value="3">げほ +<input type="submit" value="OK"> +</form> <div id="map"></div> <script type="text/javascript"> var hmap = L.map('map',{ center: [%f,%f], - zoom: 14 //1~18 + zoom: 17 //1~18 }); L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{ attribution: '© OpenStreetMap contributors' }).addTo(hmap); _EOS_ - for id in data.keys if data[id][1] == "LON" next else - printf(<<_EOS_,data[id][1].to_f,data[id][2].to_f,data[id][0]) + gazo = data[id][3] + printf(<<_EOS_,data[id][1].to_f,data[id][2].to_f,image[gazo],data[id][0]) L.marker([%f,%f],{ clickable:true, draggable:true, icon:L.icon({ - iconUrl: 'leaflet/images/face.png', + iconUrl: 'leaflet/images/%s.png', iconAnchor: [0,0], popupAnchor: [10,5] })
--- a/fujix/redirect.html Tue Nov 18 09:59:26 2014 +0900 +++ b/fujix/redirect.html Fri Nov 28 18:30:55 2014 +0900 @@ -7,8 +7,8 @@ time = 1; -url = "http://skip.koeki-prj.org/fujix/leaf.rb" -curl = "http://skip.koeki-prj.org/fujix/leaf.rb" +url = "http://skip.koeki-prj.org/fujix/leaf.rb"; +curl = "http://skip.koeki-prj.org/fujix/leaf.rb"; if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(