シナリオは次のとおりです。
有効な GeoRSS フィードを出力する WCF Web サービスが存在します。これは、多数の異なるアプリケーションがアクセスできるため、独自のドメインに存在します。
Web ページ (別のサイト) が VEMap (Bing/Virtual Earth マップ オブジェクト) のインスタンスで作成されました。
現在、VEMap は次の方法でこの形式の入力フィードを受け入れることができます。
var layer = new VEShapeLayer();
var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "someurl", layer);
map.ImportShapeLayerData(veLayerSpec, onComplete, true);
onComplete は、デフォルトのピン グラフィックをカスタムのものに置き換えるために使用しているコールバック関数です。
問題は、地理情報を含むローカルxmlファイルへのパスである「someurl」に関するものです(georss単純形式)。このフィードとマップを同じドメインでホストする必要があることに気付きました。そのため、リモート フィードを読み取り、同じ形式で返す汎用ハンドラーを作成しました。
var veLayerSpec = new VEShapeSourceSpecification(VEDataType.GeoRSS, "/somelocalhandler.ashx", layer);
これを行うと、VEMap エラー ("z is null") が発生します。これは、リモート フィードにアクセスしようとしたときに受け取るエラーと同じです。フィードをローカルの xml ファイル (つまり、「feed.xml」) にコピーすると、エラーは発生しません。
現在の操作の順序は、リモート フィード -> ローカル ハンドラー -> VEMap インポートです。
この手順が複雑すぎる場合は、お知らせください。私は Bing Maps API に少し慣れていないため、何か見落としている可能性があります。任意の支援をいただければ幸いです。