static マップについて

グーグルのstatic maps APIではjavascriptを使用せず
指定した緯度経度の静的マップを表示させることができます。

ガラケーでもグーグルの地図を表示したかったので
今回このAPIを使用してみることにしました。
そのときのメモとして書いておきたいと思います。

使用方法は簡単です。
経度・緯度、その他の情報をURLのパラメタで指定してあげるだけで
地図画像を表示してくれます。

コード

< img src= "http://maps.googleapis.com/maps/api/staticmap?center=32.826229,130.016498&zoom=19&size=300x300&sensor=false alt=''"/>

地図


地図の表示の関するパラメタもたくさん用意されています。
・center:中心座標。
・zoom:地図の拡大縮小。0~21の指定が可能。
・size:幅x高さ
・maptype:地図の形式。
roadmap(デフォルト)、satellite(航空写真)、terrain(地形図)etc‥
・style:地図の表示スタイルをカスタマイズ可能。
・sensor:センサー(GPS等)を利用するかどうか。携帯サイトで表示する場合はfalseを指定。
などなど‥。
(グーグルのデベロッパーガイドを見ると色々とのってます。)

また、markersパラメータを指定すると、
指定座標へマーカーを表示させることも可能です。
ただしマーカーに表示可能な文字は標準で大文字の英数字を1文字となっています。

パラメタはいくつも指定可能ですがURL文字数制限が2048文字に制限されています。
ですので、URL生成の場合に気を付ける必要があります。

また、1日につきアプリケーションあたり25,000回の静的マップ無料リクエストの
利用制限があり、それを超えると403エラーになるようです。
今回は利用ユーザが小規模で、1日の使用回数も上限を超える見込みがないため、
とくに考慮はしていませんがアプリケーションによっては考慮する必要もあるのかなと思います。

[Oracle初心者運用メモ]初めて見るエラー

先日、OracleDBへの接続で
下記のエラーメッセージが表示されました。

「ORA-12571: TNS:パケット・ライターに障害が発生しました」

初めて見るエラーだったので調べてみると
クライアントとサーバー・プロセス間の接続が切断された場合など
ネットワークが原因のようです。

再接続したところエラーは表示されず、正常に接続でき
それ以降は再現していません。

頻繁に発生するようだったら
何かしら回避策を調査しようと思います。

DataTable間の操作について

今回はC#で開発した際の話です。

あるDataTableから必要なフィールドのみを選択し、
新規のDataTableを作る必要が有りました。

そこで、今回は以下の様に対応しました。

元となるDataTable:table1
必要なフィールドのみを持つ新規DataTable:table2
必要なフィールドのインデックス:0,1,3,4,7


// 必要なフィールドの列名を配列化します。
string[] requiredColumns = {dt.Columns[0].ToString(),
                            dt.Columns[1].ToString(),
                            dt.Columns[3].ToString(),
                            dt.Columns[4].ToString(),
                            dt.Columns[5].ToString(),
                           };

// 元のテーブルから必要なフィールドのみを抽出して、テーブルを新規作成します。
System.Data.DataTable table2 = table1.DefaultView.ToTable(true, requiredColumns);

ToTableの最初の引数は、重複する行を含むかどうかをBool値で指定します。
Trueなら重複しない行のみ格納され、Falseでは重複する行も格納されます。
二つ目の引数は、抽出する列名を指定します。
ここでは、事前に配列化しておいた変数をセットしました。

場合によっては、新規作成したテーブルの構造と値をそのまま別のテーブルで使用したい場合には、
以下の様に行います。


// table2の構造と値をtable3へコピーします。
System.Data.DataTable table3 = table2.Copy();

//table2の構造のみをtable4へコピーします。
System.Data.DataTable table4 = table2.Clone();

Cloneは構造のみをコピーするので、
table2と同じ構造を持ち、値は異なる、といったデータの保持が可能になります。

また、元のテーブルと同じ構造を持ち、元のテーブル特定行のみを移したい場合、
ImportRow()メソッドを使用します。


System.Data.DataTable table4 = table2.Clone();
table4.ImportRow(table2.Rows[0]);

とすることで、table2の1行目のデータをtable4へインポートできます。

ASP.net ボタンテキストの改行表示について

こんにちは。

ASP.netコントロールのボタンのテキストの改行表示についてのメモを書きたいと思います。

通常表示は以下のとおり。

・コード:”<asp:button id=”Button1″ runat=”server” Text=”登録ボタン”></asp:button>”

・表示:

このボタンのテキストを以下のように改行表示したいと思い、何パターンか試してみました。

パターン① テキストに改行タグ”<br>”タグを入れる

パターン② テキストに改行コード”\n”を入れる

パターン③ テキストに改行コード” ”(HTML 10進)を入れる

パターン④ テキストの幅を固定にする

パターン⑤ テキストにvbNewLineを入れる

一部ブラウザのバージョンでは改行が反映されたものもありましたが

ほとんど思ったような表示ができませんでした。

結局今回はLinkButtonコントロールで対応しました。

また機会があれば調査してみたいと思います。

 

 

 

Facebookで『いいね!』しないと記事が読めないアプリが禁止へ

SNSツールの一つ、Facebookを利用されている方もたくさんいらっしゃると思います。
Facebookを利用していると、『いいね!』をしないとコンテンツの内容が見れないサイトがたくさんありました。
企業のキャンペーンサイトで、応募をするには『いいね!』をしないと、応募そのものができないページや、診断アプリや記事の続きを見るには『いいね!』を押さないといけなかったものが例としてあげられます。

これはファンゲートという機能だったのですが、Facebookのポリシーが改定され、11月8日をもってこの機能が終了しました。
よって、今後は『いいね!』を押さなくても、診断ができたり記事の詳細が読めたりするようになります。

調べてみると、このファンゲート機能を利用してアプリを提供していた側にとっては、アプリの改変などの対応をしないといけない手間がかかっているそうです。
もしこのようなアプリを作成していた方は、禁止事項に引っかかっていないか、確認をする必要があるそうです。

Facebookを利用する一般ユーザーにとっては、とてもいい改定ではないかなと思うところですね。