C# + Esri ArcGISRuntime WPF加载天地图

WPF项目引入Nuget包:

<PackageReference Include="Esri.ArcGISRuntime" Version="200.3.0" />
<PackageReference Include="Esri.ArcGISRuntime.WPF" Version="200.3.0" />

在WPF View的XML命名空间中添加:

xmlns:esri="http://schemas.esri.com/arcgis/runtime/2013"

在Grid中添加esri地图控件:

<Grid>
    <esri:MapView x:Name="MapView" Margin="5"/>
</Grid>

WPF ViewModel中实现地图加载:

注意:此处wmts服务Uri中的x,y,z参数名称和天地图官网例子中的不一样,官网例子中TILEMATRIX={z}&TILEROW={y}&TILECOL={x} 这种方式是web端通过OpenLayer加载的,但在此处通过Esri ArcGISRuntime加载,需要改为TILEMATRIX={level}&TILEROW={row}&TILECOL={col}

private const string TianMapBaseMapUri = "http://t2.tianditu.gov.cn/vec_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=vec&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=" + 你的Key;

private const string TianMapLabelUri = "http://t2.tianditu.gov.cn/cva_w/wmts?SERVICE=WMTS&REQUEST=GetTile&VERSION=1.0.0&LAYER=cva&STYLE=default&TILEMATRIXSET=w&FORMAT=tiles&TILEMATRIX={level}&TILEROW={row}&TILECOL={col}&tk=" + 你的Key;

private void InitBasemap()
{
    MapView.Map = new Map();

    //加载天地图 矢量底图
    var webtileBaseLayer = new WebTiledLayer(TianMapBaseMapUri);
    MapView.Map.Basemap?.BaseLayers.Add(webtileBaseLayer);

    //加载天地图 矢量注记
    var webtileNodeLayer = new WebTiledLayer(TianMapLabelUri);
    MapView.Map.OperationalLayers.Add(webtileNodeLayer);

    MapView.SetViewpoint(new Viewpoint(
        latitude: 34.2784,
        longitude: 108.9414,
        scale: 120000));
}

F5运行,完美加载! 

  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

biu啊biu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值