はじめに
今まではWindows Phone 7向けの開発は、
普段からVB.
MSDNオンラインライブラリに掲載されているWindows Phone 7向けのコードサンプルも、
マイクロソフトは今回の対応でVB.
ただし、
まず、
次に、
今回は、
Bing MapsコントロールでBing Maps以外の画像を使用する
Bing Mapには、
分割されたタイル画像は、
実際にタイル取得のためのURLを作成しているメソッドは、
Uri GetUri(int x, int y, int zoomLevel)
タイルを読み込むGetUriメソッドをオーバーライドして、
xmlns:mapCtrl="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps"
xmlns:gMapEx="clr-namespace:GetMapsSample"
xmlns:device="clr-namespace:System.Device.Location;assembly=System.Device">
次にBing Map Controlを配置しましょう。CredentialsProviderプロパティにはBing Maps Keyを設定しておいてください。ちなみにキーの取得の方法は、
接近しているほうがBing Mapsとの比較が判りやすいと思いますのでズームレベルは16にして、
<mapCtrl:Map Height="610" HorizontalAlignment="Left"
Name="map1" VerticalAlignment="Top" Width="456"
CredentialsProvider="your app key" ZoomLevel="16">
<mapCtrl:Map.Center>
<device:GeoCoordinate Altitude="NaN" Course="NaN"
HorizontalAccuracy="NaN" Latitude="34.701189"
Longitude="135.496016" Speed="NaN" VerticalAccuracy="NaN" />
</mapCtrl:Map.Center>
<mapCtrl:Map.Children>
<mapCtrl:MapTileLayer>
<mapCtrl:MapTileLayer.TileSources>
<gMapEx:GetMapTileSource TileSourceType="Street" />
</mapCtrl:MapTileLayer.TileSources>
</mapCtrl:MapTileLayer>
</mapCtrl:Map.Children>
</mapCtrl:Map>
XAMLで使ったGetMapTileSourceクラスとTileSourceType型が定義されていないので、
XAMLの名前空間の指定には、
また、
namespace GetMapsSample
{
public enum GetMapTileSourceType
{
Street,
Hybrid,
Satellite,
Physical,
PhysicalHybrid,
StreetOverlay,
WaterOverlay
}
public class GetMapTileSource : Microsoft.Phone.Controls.Maps.TileSource
{
public GetMapTileSource()
{
TileSourceType = GetMapTileSourceType.Street;
}
private char _mapMode;
private GetMapTileSourceType _tileSourceType;
public GetMapTileSourceType TileSourceType
{
get { return _tileSourceType; }
set
{
_tileSourceType = value;
_mapMode = TypeToMapMode(value);
}
}
public override Uri GetUri(int x, int y, int zoomLevel)
{
if (zoomLevel > 0)
{
var url = "ここでタイル画像取得の為のURLを設定します";
return new Uri(url);
}
return null;
}
private static char TypeToMapMode(GetMapTileSourceType tileSourceType)
{
switch (tileSourceType)
{
case GetMapTileSourceType.Hybrid:
return 'y';
case GetMapTileSourceType.Satellite:
return 's';
case GetMapTileSourceType.Street:
return 'm';
case GetMapTileSourceType.Physical:
return 't';
case GetMapTileSourceType.PhysicalHybrid:
return 'p';
case GetMapTileSourceType.StreetOverlay:
return 'h';
case GetMapTileSourceType.WaterOverlay:
return 'r';
}
return ' ';
}
}
}
さて、

さいごに
これは偶然にもGoogle Mapが、
ほかにもこのTipsを流用するとすれば、
以上で今回は終わりです。ありがとうございました。