changeset 2395:2cf2d4e4604e

leaf.rb button add
author FUJIKAWA Kosuke <c111126@g.koeki-u.ac.jp>
date Fri, 28 Nov 2014 18:30:55 +0900
parents cf133f95399a
children f84a5e1f422f 933a02f370d7
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: '&copy; 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: '&copy; 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]
                        })
Binary file fujix/leaflet/images/angry.png has changed
Binary file fujix/leaflet/images/face.png has changed
Binary file fujix/leaflet/images/sad.png has changed
--- 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(

yatex.org