leafletでlayerの重なり順を調整しようとして、ググると以下のページが役に立ちそうだったのでメモさせていただきます。
http://shimz.me/blog/leaflet-js/3671
こちらの「GUNMA GIS GEEK」ブログ様には、マップ関連の情報で大変お世話になっております。
多謝。
::::::::::::::::::::
追記です。
自分がやりたいことは、leafletのサンプルコードを借りてきたものから、「layer.bringToFront()」をコメントアウトすることで実現できました。
javascript学習記
2017年1月31日火曜日
2015年5月7日木曜日
Meteorは、かなり楽しい。Mongoも。
Meteorというnode.jsで動く、大変面白いライブラリを知った。
今はver1.1。
リアルタイムにデータが複数ブラウザやマシン上で更新される、
あのnode.jsのページリロードなし同期の機能が、
かなり簡単に実装できる。
「体感!JavaScriptで超速アプリケーション開発 -Meteor完全解説」
http://gihyo.jp/dev/serial/01/meteor?ard=1430989100
あたりを読むと、概要がつかめる。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
https://www.meteor.com
が本家サイト。
かなり開発陣も気合が入っている印象。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mac,Linuxだとterminal上で、インストールも簡単。
アプリのテンプレート作成も、コマンドで一発。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
todoアプリ作成の解説があり、
解説のコードを拾っていくと、パソコンでもiPhoneでも簡単に同期できるアプリができた。
meteor.com上に、簡単にdeployできて、試せる。それがとても気軽で楽しい。
以下がチュートリアル。
https://www.meteor.com/install
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MongoDBをデフォルトで利用でき、Mongoも気になっていたので学習開始。
コマンドラインで、meteorアプリが起動中は、別terminal窓を開いていじれる。
「MongoDBの薄い本」という無料ドキュメントがあり、わかりやすかった。
http://www.cuspy.org/diary/2012-04-17/the-little-mongodb-book-ja.pdf
DBを最初からスキーマ設定なしで、気軽に作っていけるのがいい。
薄い本で、基本が学べるので、コマンドラインで楽しむのが吉。
リレーショナルDBとの呼び方の違いが最初、分かりにくかった。
以下、大体の対応表
・データベースは、Mongoでもデータベース
・テーブルは、Mongoではコレクション
・カラムは、Mongoではフィールド
・行は、Mongoではドキュメント
完全に一致するものでもないので、用語を変えた様子。
まあ、JSON形式での記述ができるので、確かにリレーショナルデータベースの概念とは違って見える。
一つのカラム内に配列を突っ込めたり、オブジェクトを突っ込めるという感じが柔軟ですごい。
今はver1.1。
リアルタイムにデータが複数ブラウザやマシン上で更新される、
あのnode.jsのページリロードなし同期の機能が、
かなり簡単に実装できる。
「体感!JavaScriptで超速アプリケーション開発 -Meteor完全解説」
http://gihyo.jp/dev/serial/01/meteor?ard=1430989100
あたりを読むと、概要がつかめる。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
https://www.meteor.com
が本家サイト。
かなり開発陣も気合が入っている印象。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mac,Linuxだとterminal上で、インストールも簡単。
アプリのテンプレート作成も、コマンドで一発。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
todoアプリ作成の解説があり、
解説のコードを拾っていくと、パソコンでもiPhoneでも簡単に同期できるアプリができた。
meteor.com上に、簡単にdeployできて、試せる。それがとても気軽で楽しい。
以下がチュートリアル。
https://www.meteor.com/install
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MongoDBをデフォルトで利用でき、Mongoも気になっていたので学習開始。
コマンドラインで、meteorアプリが起動中は、別terminal窓を開いていじれる。
「MongoDBの薄い本」という無料ドキュメントがあり、わかりやすかった。
http://www.cuspy.org/diary/2012-04-17/the-little-mongodb-book-ja.pdf
DBを最初からスキーマ設定なしで、気軽に作っていけるのがいい。
薄い本で、基本が学べるので、コマンドラインで楽しむのが吉。
リレーショナルDBとの呼び方の違いが最初、分かりにくかった。
以下、大体の対応表
・データベースは、Mongoでもデータベース
・テーブルは、Mongoではコレクション
・カラムは、Mongoではフィールド
・行は、Mongoではドキュメント
完全に一致するものでもないので、用語を変えた様子。
まあ、JSON形式での記述ができるので、確かにリレーショナルデータベースの概念とは違って見える。
一つのカラム内に配列を突っ込めたり、オブジェクトを突っ込めるという感じが柔軟ですごい。
2015年4月13日月曜日
JavaScript本質理解に役立つ二冊(「開眼本」と「忍者本」)
JavaScriptには、様々な理解しにくいポイントがあります。
それらのポイントを簡潔にこの「開眼!JavaScript」はまとめて解説してくれています。
良書。
もう一冊、JavaScript理解にお勧めなのが、かのjQuery開発者のJohn Resig氏による「JavaScript Ninjaの極意」。しかし、こちらはかなり噛みごたえのある、理解にパワーのいる本です。
私は、最初この忍者本を読んだのですが、文章の長さと、サンプルのトリッキーさで若干躓き、この開眼本を手にしました。
開眼本は、大変簡潔で、だいたい網羅している中心トピックは同じなのですが、よりシンプルであるがゆえに、分かりやすかったです。
開眼本で基本を理解してから、やや冗長な忍者本に戻ると、そこで言われていることがより深く理解できました。
この二冊は、相補完し合う感じで、JavaScriptの本質を理解したい場合には有益かと思います。
JavaScriptの脱初学者と、他の言語をやってきた方のJavaScript理解に役立つ本として、この二冊はお勧めです。
それらのポイントを簡潔にこの「開眼!JavaScript」はまとめて解説してくれています。
良書。
もう一冊、JavaScript理解にお勧めなのが、かのjQuery開発者のJohn Resig氏による「JavaScript Ninjaの極意」。しかし、こちらはかなり噛みごたえのある、理解にパワーのいる本です。
私は、最初この忍者本を読んだのですが、文章の長さと、サンプルのトリッキーさで若干躓き、この開眼本を手にしました。
開眼本は、大変簡潔で、だいたい網羅している中心トピックは同じなのですが、よりシンプルであるがゆえに、分かりやすかったです。
開眼本で基本を理解してから、やや冗長な忍者本に戻ると、そこで言われていることがより深く理解できました。
この二冊は、相補完し合う感じで、JavaScriptの本質を理解したい場合には有益かと思います。
JavaScriptの脱初学者と、他の言語をやってきた方のJavaScript理解に役立つ本として、この二冊はお勧めです。
2015年4月7日火曜日
npmで「sudo: npm: command not found」という警告が出たので対処。
node.jsで、npmにて-gオプションでグローバルにcentOSにモジュールをインストールしようとしたところ、
「sudo: npm: command not found」と怒られた。
いろいろ調べて、
sudoの権限を/stc/sudoerというファイルに/usr/local/bin(nodeの置き場)に置いていなかったことが原因だと判明。
参考になったのは以下。
http://stackoverflow.com/questions/4976658/on-ec2-sudo-node-command-not-found-but-node-without-sudo-is-ok
そんなわけで、vimでsudoにて開き、読み込み専用を無理やり編集して、
「sudo: npm: command not found」と怒られた。
いろいろ調べて、
sudoの権限を/stc/sudoerというファイルに/usr/local/bin(nodeの置き場)に置いていなかったことが原因だと判明。
参考になったのは以下。
http://stackoverflow.com/questions/4976658/on-ec2-sudo-node-command-not-found-but-node-without-sudo-is-ok
そんなわけで、vimでsudoにて開き、読み込み専用を無理やり編集して、
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
に /usr/local/bin を追加してOKに。
よかった。
2015年3月3日火曜日
D3.jsで緯度経度をクリックで取得
D3ではありがたいことに、緯度経度をgeoJSONやtopoJSONからpixel変換した位置でmousedownにて取得することも可能。
そのためには、
projection.invert(point)
を使う。
https://github.com/mbostock/d3/wiki/Geo-Projections#invert
x,yを[x,y]の形で配列で返してくれる。
d3.mouse(this)でmouseクリック位置を取得してくれるので、これを使用。
ついでに、mouseクリックしたあたりに緯度経度を表示させたいので、
d3.event.pageXをつかってその位置に表示。
で、できたコードは以下のような感じです。
(緯度経度が非常に低い桁数まで表示されるので、toFixedで適当に丸めています。)
そのためには、
projection.invert(point)
を使う。
https://github.com/mbostock/d3/wiki/Geo-Projections#invert
x,yを[x,y]の形で配列で返してくれる。
d3.mouse(this)でmouseクリック位置を取得してくれるので、これを使用。
ついでに、mouseクリックしたあたりに緯度経度を表示させたいので、
d3.event.pageXをつかってその位置に表示。
で、できたコードは以下のような感じです。
(緯度経度が非常に低い桁数まで表示されるので、toFixedで適当に丸めています。)
d3.select("svg").on("mousedown.log", function(d) { var latlon = svg.selectAll(".result"); latlon.remove(); var pointNow = projection.invert(d3.mouse(this)); var fixedX = Number(pointNow[0]).toFixed(3); var fixedY = Number(pointNow[1]).toFixed(3); svg.append("text").attr("class","result").attr("x",d3.event.pageX ).attr("y",d3.event.pageY).text("results:" + fixedX+","+fixedY); });
gitで無視されているファイルを~/.gitignore_global編集で復活
gitにて、index.htmlがいつの頃からかコミットされていないことに気づき、なぜか調べると、どうも.gitignore_globalに書き込んでしまったらしい。
そこで、macにてどこにそのファイルがあるか調べると、~/にあった。
そこで、
~/.gitignore_global
を編集して、そこにあったindex.htmlの記述を削除すると無事コミットできた。
よかった。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
それにしても、いったい、いつ.gitignore_globalに設定してしまったんだろう。。。。
sourceTreeを使っているが、何かのタイミングでやってしまったんでしょう。
普段はterminalでgitコマンドは使っていないので。
そこで、macにてどこにそのファイルがあるか調べると、~/にあった。
そこで、
~/.gitignore_global
を編集して、そこにあったindex.htmlの記述を削除すると無事コミットできた。
よかった。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
それにしても、いったい、いつ.gitignore_globalに設定してしまったんだろう。。。。
sourceTreeを使っているが、何かのタイミングでやってしまったんでしょう。
普段はterminalでgitコマンドは使っていないので。
2015年2月25日水曜日
EaselJSでのcacheは、処理が目に見えて軽くなり、重要
EaselJSでは、cacheがレンダリングにおいては便利。
Shapeなどで複雑なベクター画像は、cacheを使うと吉。
特に移動などを使うとなると、かなりcacheが効いてくる様子。
Spriteには効果ない様子。ベクターなどに効果あり。
参考になったページ。
http://espelada.sakura.ne.jp/chaotic/post-190/
「cashe」という書き方をして、私はハマりました。。。
「cache」が正しかった。「s 」じゃなく「c」。。。。
これは、かなりのローマ字綴りに慣れた日本人はハマりそう。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Textのcacheは、なぜかx,yが0,0のところからのキャッシュ領域でないと覚えてくれなかった。
ShapeなどではそのShapeのあるx,y座標からの長方形を切り取るかたちでないとダメだったが。
Textのcacheは、0,0からの領域指定がキモ。重要でした。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下のページがかなり良い解説を書いてくださっている。
http://blog.toggl.com/2013/05/6-performance-tips-for-html-canvas-and-createjs/
パフォーマンス向上の6つのコツ、みたいな。
そのTipsの最初は「Cache It!」。
やっぱりcacheですね。
以下は、canvasを二つ重ねる方法についての解説。
http://www.mikechambers.com/blog/2011/01/25/layering-multiple-canvas-elements-using-javascript-and-easeljs/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cacheをすると、Shapeオブジェクトは、ちょっと輪郭がぼやける。
まあ、それほど気にならない程度であり、CPU負担は軽くなるのがわかるので、まあ良いですね。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
containerもcacheすると、いろいろベクター画像を描画したコンテナがかなり軽くなる。
CPUの荷重が目に見えて軽くなった。
cacheは素晴らしい。
単にsomeobject.cache()と書いて、領域を指定するだけですから、お手軽です。
特にTextをTweenさせる際には、cacheさせるとかなり処理が軽くなるのでオススメでした。
Shapeなどで複雑なベクター画像は、cacheを使うと吉。
特に移動などを使うとなると、かなりcacheが効いてくる様子。
Spriteには効果ない様子。ベクターなどに効果あり。
参考になったページ。
http://espelada.sakura.ne.jp/chaotic/post-190/
「cashe」という書き方をして、私はハマりました。。。
「cache」が正しかった。「s 」じゃなく「c」。。。。
これは、かなりのローマ字綴りに慣れた日本人はハマりそう。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Textのcacheは、なぜかx,yが0,0のところからのキャッシュ領域でないと覚えてくれなかった。
ShapeなどではそのShapeのあるx,y座標からの長方形を切り取るかたちでないとダメだったが。
Textのcacheは、0,0からの領域指定がキモ。重要でした。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
以下のページがかなり良い解説を書いてくださっている。
http://blog.toggl.com/2013/05/6-performance-tips-for-html-canvas-and-createjs/
パフォーマンス向上の6つのコツ、みたいな。
そのTipsの最初は「Cache It!」。
やっぱりcacheですね。
以下は、canvasを二つ重ねる方法についての解説。
http://www.mikechambers.com/blog/2011/01/25/layering-multiple-canvas-elements-using-javascript-and-easeljs/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
cacheをすると、Shapeオブジェクトは、ちょっと輪郭がぼやける。
まあ、それほど気にならない程度であり、CPU負担は軽くなるのがわかるので、まあ良いですね。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
containerもcacheすると、いろいろベクター画像を描画したコンテナがかなり軽くなる。
CPUの荷重が目に見えて軽くなった。
cacheは素晴らしい。
単にsomeobject.cache()と書いて、領域を指定するだけですから、お手軽です。
特にTextをTweenさせる際には、cacheさせるとかなり処理が軽くなるのでオススメでした。
登録:
投稿 (Atom)