WPF 的 ArcGIS 运行时 - 缺少程序集引用?
ArcGIS runtime for WPF - A missing assembly reference?
我已经安装了 ArcGIS Runtime SDK for .NET (100.1.0)
我从 ArcGIS 模板创建了一个 WPF 应用程序(应该 附带所有必要的程序集引用...)。
我有一个 "MapView"(我的 XAML 文件),其中包含一张地图,我只想向其中添加一个图层。我用了the example from the API documentation。我的XAML如下:
<Page x:Class="WpfApplication1.Views.MapView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1.Views"
xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="MapView">
<Grid>
<Grid.Resources>
<esri:SimpleLineSymbol x:Key="SLS" Color="Transparent" Width="1"/>
<esri:SimpleLineSymbol x:Key="BlackSLS" Color="Black" Width="1"/>
</Grid.Resources>
<Grid>
<esri:MapView x:Name="MyMapView" />
</Grid>
</Grid>
</Page>
在后面的代码中,我在调用 InitializeComponent()
方法后执行以下操作:
LocalMapService localMapService = new LocalMapService(@"..\..\..\samples-data\maps\water-distribution-network.mpk");
await localMapService.StartAsync();
ArcGISDynamicMapServiceLayer arcGISDynamicMapServiceLayer = new
ArcGISDynamicMapServiceLayer()
{
ID = "arcGISDynamicMapServiceLayer",
ServiceUri = localMapService.UrlMapService,
};
MyMapView.Map.Layers.Add(arcGISDynamicMapServiceLayer);
此时Visual Studio警告我"Map does not contain a definition of layer [...] are you missing a using directive or assembly reference?"
如果我决定直接从 XAML 添加图层而不在后面编写任何代码:
<Page x:Class="WpfApplication1.Views.MapView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1.Views"
xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="MapView">
<Grid>
<Grid.Resources>
<esri:SimpleLineSymbol x:Key="SLS" Color="Transparent" Width="1"/>
<esri:SimpleLineSymbol x:Key="BlackSLS" Color="Black" Width="1"/>
</Grid.Resources>
<Grid>
<esri:MapView x:Name="MyMapView">`enter code here`
<esri:Map>
<esri:ArcGISDynamicMapServiceLayer Url=... />
</esri:Map>
</esri:MapView>
</Grid>
</Grid>
</Page>
设计师现在警告"the name ArcGISDynamicMapServiceLayer does not exist in namespace http://schemas.esri.com/arcgis/runtime/2013"
我做错了什么?看起来我没有加载 API 的所有适当组件,即使我使用的是 SDK 的 WPF 模板...我很困惑。
我是 运行 Visual Studio MS Windows Server 2012 上的 2015 更新 2(如果有任何相关性!)
您使用的代码适用于 10.2 版的 ArcGIS Runtime for .NET。您可以在 100.1 版本中查看 https://developers.arcgis.com/net/latest/wpf/guide/local-server.htm 如何使用本地服务器。
我已经安装了 ArcGIS Runtime SDK for .NET (100.1.0)
我从 ArcGIS 模板创建了一个 WPF 应用程序(应该 附带所有必要的程序集引用...)。
我有一个 "MapView"(我的 XAML 文件),其中包含一张地图,我只想向其中添加一个图层。我用了the example from the API documentation。我的XAML如下:
<Page x:Class="WpfApplication1.Views.MapView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1.Views"
xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="MapView">
<Grid>
<Grid.Resources>
<esri:SimpleLineSymbol x:Key="SLS" Color="Transparent" Width="1"/>
<esri:SimpleLineSymbol x:Key="BlackSLS" Color="Black" Width="1"/>
</Grid.Resources>
<Grid>
<esri:MapView x:Name="MyMapView" />
</Grid>
</Grid>
</Page>
在后面的代码中,我在调用 InitializeComponent()
方法后执行以下操作:
LocalMapService localMapService = new LocalMapService(@"..\..\..\samples-data\maps\water-distribution-network.mpk");
await localMapService.StartAsync();
ArcGISDynamicMapServiceLayer arcGISDynamicMapServiceLayer = new
ArcGISDynamicMapServiceLayer()
{
ID = "arcGISDynamicMapServiceLayer",
ServiceUri = localMapService.UrlMapService,
};
MyMapView.Map.Layers.Add(arcGISDynamicMapServiceLayer);
此时Visual Studio警告我"Map does not contain a definition of layer [...] are you missing a using directive or assembly reference?"
如果我决定直接从 XAML 添加图层而不在后面编写任何代码:
<Page x:Class="WpfApplication1.Views.MapView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:WpfApplication1.Views"
xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300"
Title="MapView">
<Grid>
<Grid.Resources>
<esri:SimpleLineSymbol x:Key="SLS" Color="Transparent" Width="1"/>
<esri:SimpleLineSymbol x:Key="BlackSLS" Color="Black" Width="1"/>
</Grid.Resources>
<Grid>
<esri:MapView x:Name="MyMapView">`enter code here`
<esri:Map>
<esri:ArcGISDynamicMapServiceLayer Url=... />
</esri:Map>
</esri:MapView>
</Grid>
</Grid>
</Page>
设计师现在警告"the name ArcGISDynamicMapServiceLayer does not exist in namespace http://schemas.esri.com/arcgis/runtime/2013"
我做错了什么?看起来我没有加载 API 的所有适当组件,即使我使用的是 SDK 的 WPF 模板...我很困惑。
我是 运行 Visual Studio MS Windows Server 2012 上的 2015 更新 2(如果有任何相关性!)
您使用的代码适用于 10.2 版的 ArcGIS Runtime for .NET。您可以在 100.1 版本中查看 https://developers.arcgis.com/net/latest/wpf/guide/local-server.htm 如何使用本地服务器。