2015-01-14 132 views
0

我试图在我的应用程序中显示地图控件,目标是Windows Phone 8,但我想使用打开的街道地图中的自定义图块。WP8使用自定义图块的地图控件

我使用这行:

​​

当我启动应用程序的定制瓷砖正常显示,但仍然有默认的地图瓦片他们脚下。

我试图隐藏它们,但我甚至没有找到它们存在于地图控件中的位置以及准确显示它们的位置。

我想知道如何在加载自定义图块时删除这些默认图块。

我试图隐藏它们,但我甚至没有找到它们存在于地图控件中的位置以及准确显示它们的位置。

PS:这里的链接到“老”兵地图的控制,如果你不能在最新的WP工具找到它:http://www.microsoft.com/en-us/download/confirmation.aspx?id=2949

回答

0

我用新的WP8“诺基亚HERE地图”的地图控件尝试这样做自己,但为无法实现这一点。我不得不求助于回退到Microsoft.Phone.Controls.Maps(标记为废弃)中基于旧的“Bing”的地图控件。

下面是如何删除其他层在旧Microsoft.Phone.Controls.Maps控制:

尽管这种旧的地图控件已经WP8被取代较新的控制似乎
for (var i = Map.Children.Count - 1; i >= 0; i--) 
{ 
    MapTileLayer tileLayer = Map.Children[i] as MapTileLayer; 
    if (tileLayer != null) 
    { 
     Map.Children.RemoveAt(i); 
    } 
} 

不支持如果在您的应用中使用WP8.1,那么图层和“过时”控件的相同灵活性仍然可以愉快地工作。

这里是我的应用程序仍然使用旧的控制,这可能是实现你想要做的 - NZ Topo Map app for Windows Phone

砍倒的XAML在您的应用程序使用旧地图控件(你可能会希望忽略我的数据绑定和用自己取代他们):

<UserControl x:Class="TopoMap.Controls.Map" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:m="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" 
    mc:Ignorable="d" 
    FontFamily="{StaticResource PhoneFontFamilyNormal}" 
    FontSize="{StaticResource PhoneFontSizeNormal}" 
    Foreground="{StaticResource PhoneForegroundBrush}" 
    d:DesignHeight="480" d:DesignWidth="480" 
    DataContext="{Binding Main, Source={StaticResource Locator}}"> 

    <Grid x:Name="LayoutRoot" Background="Transparent"> 
     <m:Map x:Name="MapBase" LogoVisibility="Collapsed" ScaleVisibility="Visible" 
       Loaded="Map_Loaded" 
       LayoutUpdated="Map_LayoutUpdated" 
       ZoomLevel="{Binding ZoomLevel, Mode=TwoWay}" 
       Center="{Binding Center, Mode=TwoWay}"> 
     </m:Map> 
    </Grid> 

</UserControl> 

,你需要它的重要的参考:

xmlns:m="clr-namespace:Microsoft.Phone.Controls.Maps;assembly=Microsoft.Phone.Controls.Maps" 
+0

的一点是,我使用的Visual Studio 2013的新安装了最新的工具和我不能在任何地方找到这个命名空间(Microsoft.Phone.Controls.Maps)看起来它已经被删除最新的工具。 – MakanWG

+0

也许你正在开发WP8.1应用程序而不是WP8应用程序?您的标签陈述“windows-phone-8”。这两个平台在可用性方面存在很大差异。 – Gavin

+0

我正在为Windows 8.0进行开发,并且正如我所想的那样,该控件在工具中不再可用,但我可以将其作为独立下载找到。如果有人需要,我会在原始问题中发布链接。 – MakanWG