プログラミング: 2014年5月アーカイブ

20140531_ramen_searcher.jpg
デモ用サイトとはいえ、Google AdSense 貼るためには記事を充実させないといけないので、「ご利用上の注意」や「使い方」などをでっち上げて(いや、ちゃんと作ったけど(笑))、なんか、それっぽいサイトになってきた。

実際、昨日買い物しに八丁堀に出て、ラーメンでも食おうかと思って「ラーメンサーチャー」のことを思い出した(笑)
「いや、八丁堀のデータ入れてないし(^^;」というオチだったが、でも、俺個人的にはこのサイト、俺の行動範囲の店を登録しておけばかなり実用的に使えそう。
つーことで、機能の方ももう少しちゃんと作りこむか・・・ということで、ちょっとだけ API の修正をした。

今までは、半径 500m以内の店を検索・・・という感じで、どこでも固定範囲で見てたけど、これだと「都市部では大量のラーメン屋が表示される」けど「田舎では全然表示されない」ということになる。
そのため、半径100m~1kmまでを、2軒以上のラーメン屋がヒットするまで段階的に範囲を広げて検索するようにした。
これで、都市部では半径100m内にある店のみが表示されるし、田舎では 1kmまで範囲を広げて検索された結果が表示される。

あと、詳細情報については自前で管理せず、「食べログ」のサイトにリンクを貼るようにした。
まあ、別に「食べログ」と利害関係があるわけではないので問題なかろう。
ちなみに、「食べログ」に情報の無い店は今までどおり、その店を中心とした Google Maps を表示する。ただ、テスト的に登録している 36軒の店のうち、「食べログ」に情報がなかったのは「おでんとめん処 ふくろう」だけであった。

俺の行きつけの店やんけ!(^^;
「食べログ」会員の方は、ぜひとも「ふくろう」を登録してください!!

さて、ほんじゃ、もう一回 Google AdSense の申請してみるかな。
20140515_ramensearcher1.jpg 20140515_ramensearcher2.jpg 20140515_ramensearcher3.jpg

最近、スマホの位置情報を利用したサイト作成の問合せが多いので、説明に使うために「ラーメンサーチャー」というアプリ・・・ではなく、HTML5+JavaScript で作成したサイトだけど・・・を作ってみた。


自分がいる場所の半径 500m(厳密には円ではなく、自分を中心とした一辺1kmの正方形で切り出しているので、最長で 720m離れた店も拾っちゃうけど。円で抜こうとしたら、処理が重くなっちゃうのよねえ。

'P'のついた緑のマーカーが現在自分がいる場所。赤い数字のついたマーカーが店の場所を示し、マーカーをタップして吹き出しを出して、その中の店名をさらにタップすると、その店の説明まで飛ぶ。
更に飛んだ先で店名をタップすると詳細情報に飛ぶ・・・予定だったが、とりあえず急ぎお客さんにサンプルとして見せたかったので、そこは未作成。今は Google Maps が表示される。

広告も貼ってみようと思って Google AdSense の申請してみたけど、「不十分なコンテンツ」って言われて承認されなかったので(なにせ、広島市十日市周辺のデータしか入ってないので、他の場所でこのサイトを開いても、テキストがまったく無い(^^;)、「お知らせ」「ご利用上の注意」などを作成中。(なので、リンクをタップしても飛ばなかったり、まだ CSS をきちんと書いてないページが表示されます(^^;)

さて、さて、とりあえず「近くの物件」が表示されるデモには使えるので、そろそろ真面目に提案書作るか。このままでは倒産しちゃうからな(^^;
一応、HTML5 & JavaScript の勉強メモ。

HTML5 の canvas 要素に画像を表示して、クリックされたらアラート窓を開く Web ページを作る。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>canvas test1</title>

<script type="text/javascript">
<!--

function sample() {

//描画コンテキストの取得
var canvas = document.getElementById('canvas1');
if (!canvas.getContext) {
return;
}

    var context = canvas.getContext('2d');

var img = new Image();
img.src = "./test20140505_1.JPG";

/* 画像を描画 */
img.onload = function() {
context.drawImage(img, 0, 0);
}

//キャンバスのMouseDown
canvas.onmousedown = (function(event) {

var rect = event.target.getBoundingClientRect();

var mx = event.clientX - rect.left;
var my = event.clientY - rect.top;

// 顔 98,76-293,210
if ((98 <= mx) && (mx <= 293) && (76 <= my) && (my <= 210)) {
alert("痛い、痛い");
}

// 乳首 163,244-304,262
if ((163 <= mx) && (mx <= 304) && (244 <= my) && (my <= 262)) {
alert("おう、少し気持ち良い");
}

// 股間 330,281-391,332
if ((330 <= mx) && (mx <= 391) && (281 <= my) && (my <= 332)) {
alert("はぅ!!むっちゃ気持ちええ!!");
}

});

}

//-->
</script>

</head>
<body onLoad="sample()">
<h1>彼の身体を開発しよう!</h1>
<canvas id="canvas1" width="640" height="478"></canvas>
</body>
</html>

こんな感じで。

20140505_canvas1.JPG

20140505_canvas2.jpg

気怠く横たわる男の顔をクリックすると「痛い、痛い」と言い、乳首をクリックすると「おう、少し気持ち良い」と悶え、股間をクリックすると「はぅ!!むっちゃ気持ちええ!!」と悦楽の声を上げる。

実はこれだけだと canvas なんか使わない方がよっぽどすっきりする。

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>canvas test1</title>

<script type="text/javascript">
<!--

function sample() {

// 画像の上でMouseDown
img1.onmousedown = (function(event) {

var rect = event.target.getBoundingClientRect();

var mx = event.clientX - rect.left;
var my = event.clientY - rect.top;

// 顔 98,76-293,210
if ((98 <= mx) && (mx <= 293) && (76 <= my) && (my <= 210)) {
alert("痛い、痛い");
}

// 乳首 163,244-304,262
if ((163 <= mx) && (mx <= 304) && (244 <= my) && (my <= 262)) {
alert("おう、少し気持ち良い");
}

// 股間 330,281-391,332
if ((330 <= mx) && (mx <= 391) && (281 <= my) && (my <= 332)) {
alert("はぅ!!むっちゃ気持ちええ!!");
}

});

}

//-->
</script>

</head>
<body onLoad="sample()">
<h1>彼の身体を開発しよう!</h1>
<img id="img1" src="./test20140505_1.JPG" width="640" height="478">
</body>
</html>

これだけで良いからな。

canvas に画像をロードする処理とか書く必要ないので、こんな単純な処理でも数行から10行は短くなる。

それでもわざわざ canvas を使うにはそれなりの理由あり。
それは次回のお話。

このアーカイブについて

このページには、2014年5月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2014年4月です。

次のアーカイブはプログラミング: 2014年6月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら