2014年10月13日月曜日

Google Maps APIさわってみたよ

記事を書く度にお久しぶりですとか言ってる気がするw


最近pythonとかmelとかをガリガリ書いていたので
一年と三カ月ぶりにHTMLとかCSSとかJava Scriptとか触ってみます。

といっても過去に作った簡単なプログラムを公開するだけなんですけどね(手抜き)



やりたいことはgoogle map上でクリックしたところにマーカーを立てて
経度、緯度を取得して表示 → csvファイルとして書きだし

とまぁこんな感じです。

ちなみにcsvファイルってのはカンマ( , )とかで情報を区切るだけで
エクセル等のソフトでも枠を区切って認識してくれるファイル形式です。
まぁ詳しくはぐぐってください。


今回はソースコードの解説などは特にしません。←
(べつに久しぶりに弄ったら結構忘れてて解説する自信がないとかではないですよ;;)

まぁ結構この手の内容は一文づつググったらかなりの量の解説がヒットしますので
まぁ詳しくはぐぐってください。w


///////////////////////////////////////////////////////

<!DOCTYPE html>
<html>
<head>

<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0px; padding: 0px }
#map { height: 100% }
</style>

<script src="http://maps.google.com/maps/api/js?v=3&sensor=false"
type="text/javascript" charset="UTF-8">
</script>

<script type="text/javascript">
//<![CDATA[

var map;
var markersArray = [];
var flag = 0;

function init() {

var latlng = new google.maps.LatLng(39, 138);
var opts = {
zoom: 6,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: latlng
};

map = new google.maps.Map(document.getElementById("map"), opts);

google.maps.event.addListener(map, 'click', mylistener);
}

function mylistener(event) {
if(flag == 0){
document.getElementById("left_up_lat").innerHTML = event.latLng.lat();
document.getElementById("left_up_lng").innerHTML = event.latLng.lng();
}else {
document.getElementById("right_under_lat").innerHTML = event.latLng.lat();
document.getElementById("right_under_lng").innerHTML = event.latLng.lng();
}

var latlng=new google.maps.LatLng(event.latLng.lat(), event.latLng.lng());
var marker = new google.maps.Marker({position:latlng, map:map});

markersArray.push(marker);
}

function writeText() {
var fs = new ActiveXObject("Scripting.FileSystemObject");

var outf = fs.CreateTextFile("outText.csv", true);
outf.Write(document.getElementById("file_name").value + "," + document.getElementById("left_up_lat").innerHTML + "," + document.getElementById("left_up_lng").innerHTML + "," + document.getElementById("right_under_lat").innerHTML + "," + document.getElementById("right_under_lng").innerHTML);
outf.Close();
}

function clearOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
}
}

function leftUp() {
flag = 0;
}

function rightUnder() {
flag = 1;
}

//]]>
</script>
</head>

<body onload="init()">

<div id="map" style="height:560px"></div>

<table border="1" cellspacing="2" width="100%">
<tr><th>ファイル名</th><th><button onclick="leftUp()" type=button>LEFT UP</button></th><th><button onclick="rightUnder()" type=button>RIGHT UNDER</button></th></tr>
<tr><th rowspan="2"><input type="text" size=30 value="file name" id="file_name"></th><th id="left_up_lat"></th><th id="right_under_lat">
<tr><th id="left_up_lng"></th><th id="right_under_lng"></th></tr>
</table>
<form>
<input type="button" value="マーカーを削除" onclick="clearOverlays()" /><button onclick="writeText()" type=button>書きこみ</button><br>
</form>
</body>

</html>


///////////////////////////////////////////////////////


とまぁこんな感じなんですが
これを書いてた頃はIEユーザーだったのでActiveXObjectという
IEでファイルを書きだすやつを使ってたんですが
現状IEユーザーが減っちゃったのと、バージョンアップによって
IEでもたぶん使えないと思います←

かきだすwriteText()の中身だけ書き変えたら動くはずですが
使うタイミングがないので使いたい方は書き変えて使って下さい。
firefoxやchromeなどでも確かそんなやつがあったと思います。

まぁ一応コピーして.htmlで保存すればそれ以外は動くはずです。たぶん。




はい、まぁ今回はかなり雑でしたがこんな感じで終わりますw
今後も雑な感じで過去のスクリプトとか投下するかもしれませんが悪しからず。

2014年7月9日水曜日

mayabatchを使ってちょっと効率up

おひさしぶりです。
ブログを書こうと思いつつもどんどん先延ばしになって、かなり期間が開いてしまいました(・へ・)

4月からいっぱしのクリエーターになっていろいろな意味でこのブログも
書きにくくなってしまいました;;


とまぁあまり書いていると睡眠時間がどんどん無くなるので
さっそくですが本題ですよ



社会人になって友達の幅もかなり増えたりして仕事の色々な話を聞く機会がふえました
そんな中で効率を上げたいという話をよく耳にします

なので今回は同じ修正をカット毎しなければならないめんどくさい作業をもっと効率化しよう!
という内容です。

ちょっとこのブログではそこまでmel等のスクリプトを取り上げていませんが
今回はmelありきになってしまうかもしれません。ご了承を。



mayabatchというものをご存じでしょうか。
GUIを立ち上げずにmayaの処理を行ってくれるヤツです。

windowsのコマンドプロンプトからコマンドを打って実行します。

例)
C:\"Program Files"\Autodesk\Maya2013\bin\mayabatch.exe -file "C:\Users\ty\Desktop\test01.mb" -command "polyCube;file -save;"
pause > nul

こんな感じです。
今回はキューブを作成し保存するという処理を行っています。
一文ずつ解説します。


C:\"Program Files"\Autodesk\Maya2014\bin\mayabatch.exe
まずはmayabatch.exeまでのパスを書きます

-file "C:\Users\ty\Desktop\test01.mb"
続けてfileフラグでデータまでのフルパスを書きます。
※フルパスでなくてもいけたはずですがまぁフルパスにこしたことはないです

-command "polyCube;file -save;"
commandフラグでmelコマンドを書いていきます。
長くなる場合はmayaのmelのパスが通っている場所にプロシージャとして登録しておき
それを読んできた方がスマートだと思います。
※ここまでが↑一文です

pause > nul
これはコマンドプロンプトから実行したときに処理が終わるとすぐ実行画面が消えてしまうので
確認しやすいようポーズしているだけです。まぁなくても問題はありません。



こんな感じで実行すればGUIを立ち上げずに処理を行ってくれるので早いですし
メモ帳等にこの文を保存して拡張子を.batにすればバッチファイルの出来上がりです。

さらに改行して別データの処理を書けば上から順に実行していってくれます。


batだけ作ってしまってPCに処理をさせておいて優雅にランチタイムなんてどうでしょうか
効率的ってすばらしい!!




まぁ簡単ですが今回はおわりです
またそのうち更新しますねー

2014年3月11日火曜日

3.11 追悼




なかなか更新出来ず申し訳ありません。
また時間を見つけて更新します。