Stamen Designsは、Bing Maps背景の「ダーク」モードを使用する美しいハリケーントラッカーアプリケーションを作成しました。
これは、背景ではなくオーバーレイに人々の注意を向けるのに最適です。
ArcGIS Server JS API内でこの「ダーク」バージョンのBing Mapsにアクセスできますか?
Stamen Designsは、Bing Maps背景の「ダーク」モードを使用する美しいハリケーントラッカーアプリケーションを作成しました。
これは、背景ではなくオーバーレイに人々の注意を向けるのに最適です。
ArcGIS Server JS API内でこの「ダーク」バージョンのBing Mapsにアクセスできますか?
回答:
ArcGIS JS APIの詳細についてはわかりませんが、MSNBCハリケーンマップがFlashのColorMatrixFilterとColorTransformを使用して、Bingタイルをオンザフライで反転および彩度を下げていることはわかります。
私はそれがクロスブラウザーの方法でJSで不可能であることをかなり確信しています。Bingタイルがクロスドメイン(CORS)権限で提供され、ArcGIS APIでHTMLキャンバス要素を使用してタイルをレンダリングできる場合は、ある程度成功する可能性があります。あるいは、タイルをプロキシしてサーバー側で変更することもできますが、もちろんそれを行う前にBingの用語を確認する必要があります。
JSでは画像の反転と彩度の低下が確実に可能です。Pixasticライブラリーを調べてください。
そして特定のコード:Invert and Desaturate
トリックは、JSでBingマップ画像をインターセプトし、それらに2つの効果を適用することです。確かに可能ですが、簡単には達成できません。対象となるすべての画像は、map_layerXというIDを持つdivにあります。XはレイヤーIDです(Bingマップレイヤーのみの単純なマップの場合、map_layer0になります)。これは、マップdivのIDが「マップ」であると想定しています。Firebugはあなたの友達になります。
今年のEsriユーザー会議で同様の機能をデモしたJS APIアプリは次のとおりです。http: //na.arcgis.com/UCdemo/traffic.html
IEでどのように動作するか、または動作するかどうかはわかりません。
ベースマップタイルは、ArcGIS Online Streetsベースマップから読み込まれ、グレースケールに変換されます。これは、Mike Lがリンクされたプレゼンテーションのスライド7で参照されているCanvasを使用するアプリでもあります。
(function(){ dojo.declare("GreyScaleVELayer", esri.virtualearth.VETiledLayer, { _tileLoadHandler: function(evt) { evt.currentTarget.style.filter = "gray invert"; this.inherited(arguments); } }); })();
UCのテクニカルセッションの1つでこれを行っているEsriの例を実際に見ました。残念ながら、これはスライドの写真にすぎなかったため、ソースコードを紹介することはできません。以下のリンクをたどって、スライド7をご覧ください。画像の色調を変更するためにHTML5キャンバスを使用しているようです。
http://proceedings.esri.com/library/userconf/proc11/uc/tw-ppts/tw_1463.ppt
これが正しい方向に役立つことを願っています。