Language
Login
Language Setting
X
English
日本語 [Japanese]
about this App
最寄検索・ルート検索@裾野市観光マップ
useful
0
Loading...
window.onload = function() { var keyword = getParameterFromURL("subject"); // obtain keyword from the URL "?subject=" var list = ""; // list to be displayed var ruteToHitPoint = ""; var prefs = new Array(); var dlat = 0; var dlong = 0; // Work loop $.each(LinkData.getWorks(), function(workKey, workValue) { list += "<h3>" + LinkData.getWorkName(workValue) + "の最寄検索・ルート検索アプリ</h3>"; // File loop $.each(LinkData.getFiles(workValue), function(fileKey, fileValue) { var hit = ""; // list of subjects whose URI matches keyword var nHit = 0; // number of subjects whose URI matches keyword // Subject loop $.each(LinkData.getSubjects(workValue, fileValue), function(subjKey, subjValue) { var longitude = null; var latitude = null; var s = ""; // subject to be displayed if ( decodeURIComponent(subjValue).indexOf("linkdata.org/resource/") > 0 ) s += "<hr><a href=\"" + subjValue + "\" target=\"_top\"><span class=\"subject\">【アプリカタログを表示】</span></a>"; else s += "<hr><a href=\"" + subjValue + "\" target=\"_top\"><span class=\"subject\">"+decodeURIComponent(subjValue)+"</span></a>"; $.each( LinkData.getTriplesBySubject(workValue, fileValue, subjValue), function( tripleKey, tripleValue ) { var prop = tripleValue.property; var obj = tripleValue.object; if ( prop == "http://www.w3.org/2003/01/geo/wgs84_pos#long" ) longitude = obj;// longitude found if ( prop == "http://www.w3.org/2003/01/geo/wgs84_pos#lat" ) latitude = obj;// latitude found if ( obj.indexOf("://www.youtube.com") != -1 && obj.indexOf("v=") != -1 ) { // Insert YouTube Thumbnail videoId = (obj.split("v=")[1]).split("&")[0]; // get video id obj = "<a href=\"" + obj + "\" target=\"_blank\"><span class=\"object\">" + highlight(decodeURIComponent(obj), keyword) + "<br><img src=\"http://img.youtube.com/vi/" + videoId + "/mqdefault.jpg\" alt=\"YouTube video\" /><br></span></a>"; } else if ( obj.indexOf("http") == 0 ) { if ((obj.indexOf(".jpg" )>0 || obj.indexOf(".gif" )>0 || obj.indexOf(".png" )>0) || (obj.indexOf(".JPG" )>0 || obj.indexOf(".GIF" )>0 || obj.indexOf(".PNG" )>0)) // insert image obj = "<a href=\"" + obj + "\" target=\"_blank\"><span class=\"object\">" +shortenURL(obj) + "<br><img src=\"" + obj + "\" alt=\"image\" /><br></span></a>"; else obj = "<a href=\"" + obj + "\" target=\"_blank\"><span class=\"object\">" + shortenURL(obj) + "</span></a>"; // Make it clicable if it starts from http } else obj = "<span class=\"object\">" + highlight(obj, keyword) + "</span>"; s += "<br><span class=\"propertyName\">" + getLastName(prop) + ":\t</span>" + obj; }); if ( latitude != null && longitude != null ) s += addLinkToMap( latitude, longitude ); // list += s; //add to the list to be displayed prefs.push(["<hr>"+s,latitude,longitude]); if ( decodeURIComponent(subjValue) == keyword ) { // found subject whose URI matches keyword hit += s; ruteToHitPoint = "http://www.google.com/maps/?daddr=" + latitude + "," + longitude; dlat = latitude; dlong = longitude; nHit++; } //link to map display if coordinates exist }); if ( nHit > 0 ) { list += "<hr><h4>指定されたサブジェクトが "+nHit+" 件見つかりました。</h4>"; list += hit; } }); }); $("#result").append( list + "この端末からの位置情報の取得を許可してからもう一度アクセスしてください。" ); navigator.geolocation.getCurrentPosition(function(pos) { var lat = pos.coords.latitude; var long = pos.coords.longitude; if ( ruteToHitPoint != "" ) { $('#result').empty(); $('#result').append( list + " <a target=\"_top\" href=\"http://www.google.com/maps/?saddr=" + lat + "," + long + "&daddr=" + dlat + "," + dlong + "\">【Googleルート表示】</a><br><br><hr><h4>現在地から目的地までのルートを表示します。</h4>"); // parent.location.href = ruteToHitPoint + "&saddr=" + lat + "," + long; // リダイレクト } else { $('#result').empty(); $('#result').append( list + "<hr><h4>現在地から近い順にリスト表示します。</h4>"); $.each(prefs, function(i, p) { p[3] = Distance(long, lat, p[2], p[1]); }); prefs.sort(function(p1, p2) { return p1[3] - p2[3]; }); $.each(prefs, function(i, p) { $('#result').append(p[0]); $('#result').append(" <a target=\"_top\" href=\"http://www.google.com/maps/?saddr=" + lat + "," + long + "&daddr=" + p[1] + "," + p[2] + "\">【Googleルート表示】</a>"); $('#result').append("<br>ここから目的地までの直線距離は"+Math.floor(p[3])+"mです<br>"); }); } }, function(error) { $('#result').empty(); $('#result').append( list + "<hr><h4>現在地情報が取得できないため、登録順にリスト表示します。</h4>"); $.each(prefs, function(i, p) { $('#result').append(p[0]); }); }); }; // Get a parameter value in URL (e.g. ?paramString=value ) function getParameterFromURL( paramString ) { var value = ""; var topWindow = top.window.location.search; if( topWindow ){ var q = decodeURIComponent(topWindow.substring(1,topWindow.length)).split("&"); for ( var i = 0; i < q.length; i++ ){ var r = q[i].split("="); if ( r[0] == paramString ) value = r[1]; } } return value; } // Highlight keyword in the string function highlight( string, keyword ) { if ( keyword.length > 0 ) { var ss = string.split(keyword); var len = ss.length; if ( len > 1 ) { string = ss[0]; for ( i = 1; i < len; i++ ) // string += "<font color=\"red\">"+keyword+"</font>"+ss[i]; string += "<span class=\"highlight\">"+keyword+"</span>"+ss[i]; } } return string; } // get the last name of the string separated with # and / function getLastName( string ) { string = decodeURIComponent(string); var sharp = string.split("#"); var slash = sharp[sharp.length-1].split("/"); var lastName = slash[slash.length-1]; return lastName; } // return a link to Google map search function addLinkToMap( latitude, longitude ) { var s = "<br><a target=\"_top\" href=\"yjcarnavi://navi/select?lat=" + latitude + "&lon=" + longitude + "\">【Yahoo!カーナビ(スマホアプリ)を開く】</a><br><a target=\"_top\" href=\"http://www.google.com/maps/?q=" + latitude + "," + longitude + "\">【Google地図表示】</a>"; return s; } // shortening URL e.g. http://.../123.jpg function shortenURL( url ) { url = decodeURIComponent(url); var slash = url.split("/"); var lastName = slash[slash.length-1]; return url.split(":")[0]+"://.../"+lastName; } function Distance( long1, lat1, long2, lat2 ) { var r = 6378137; //地球の半径(m) var d = r * Math.acos( Math.sin(lat1/180*Math.PI)*Math.sin(lat2/180*Math.PI) + Math.cos(lat1/180*Math.PI)*Math.cos(lat2/180*Math.PI)*Math.cos((long2-long1)/180*Math.PI) ); return d; }
span.highlight {color: red;} span.propertyName {color: gray;} span.subject { color: blue; } span.object{ color: black; } body { background: white; } a, a span { text-decoration: underline; } a:hover, a span:hover { text-decoration: none; }
<div id="result"></div>
Preview
Input Data
ReadMe
Snapshots
LinkData Work
Table Data
裾野市 観光マップ
Contributor:裾野市
Update:Dec 4, 2013
1833 Downloads, 3 Applications
富士山の麓のまち すその 裾野市観光マップ 裾野市の作成したマップを電子化したものです。 ■内容に関するお問い合わせ ●裾野市商工観光課 TEL:055-995-1825 〒410-1192 静岡県裾野市佐野1059 FAX:055-995-1864 ●裾野市観光協会 TEL:055-992-5005 〒410-1102 静岡県裾野市深良451 FAX:055-992-7300 http://www.susonokanko.jp/
Susono_Kankou_Map
Add LinkData work(LinkData)
Link http://app.linkdata.org/run/app1s842i?tab=readme
jquery-1.7.1.min.js
Work
Add
Clear
insert work id or work name.