1.基础底图通常使用TiledLayer或者ArcGISDynamicLayer。

本质上都是在本地加载栅格图片。后台生成策略不同而已。从Vs2010的控件栏上拖过来的Map控件默认添加的底图是Esri的:
    <esri:ArcGISTiledMapServiceLayer Url="http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" />
如果使用代码在初始化的时候可以这么写:
    ArcGISTiledMapServiceLayer tiledLayer = new ArcGISTiledMapServiceLayer() {
                Url = "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",
                ID="tiledLayer"
            };
 

2.绘制图层: GraphicLayer是最容易出现交互操作的图层。

在这上面可以添加点、线、面。三种不同的图形需要不同的符号来渲染。不同的符号系统需要使用代码,不过SilverLight提供了一种
更为简单易见的形式:使用XML配置。如下:
        <Grid.Resources>
            <esri:SimpleMarkerSymbol x:Key="BlackMarkerSymbol" Color="Black" Style="Cross" Size="12" />
            <esri:PictureMarkerSymbol x:Key="GlobePictureSymbol" OffsetX="8" OffsetY="8" Source="/Assets/images/globe-16x16.png" /> 
            <esri:SimpleLineSymbol x:Key="DefaultLineSymbol" Color="Green" Style="DashDot" Width="4" />
            <esri:SimpleFillSymbol x:Key="DefaultFillSymbol" Fill="Green" BorderBrush="Blue" BorderThickness="3" />
        </Grid.Resources>
 
节点<Grid.Resources>是指明为资源文件,之下放置了实例化的各个Symbol组件。使用x:Key来标识。接下来看如何解析该资源:
             Symbol makersymbol = LayoutRoot.Resources["BlackMarkerSymbol"] as Symbol;
marker.Style = SimpleMarkerSymbol.SimpleMarkerStyle.Square;
graphic.Symbol = makersymbol;
graphic.Geometry = e.Geometry;
graphicLayer.Graphics.Add(graphic);

3.事件操作

 交互操作免不了有各种事件实现。有些事件是可以通过vs的事件钩子实现,例如按钮点击事件。有些就需要另外一种策略实现:事件订阅也就是eventHandler。这是一种将方法封装成事件处理程序的方式
每一个定义了事件的类都可以用+=来添加相应的evenHandler来处理。如:

   void initGraphic()
{
drawable = new Draw(map1);
drawable.DrawMode = DrawMode.Point;
drawable.DrawComplete += new EventHandler<DrawEventArgs>(drawable_DrawComplete);
}
void drawable_DrawComplete(object sender, DrawEventArgs e)
{
Graphic graphic = new Graphic();
SimpleMarkerSymbol marker = new SimpleMarkerSymbol();
marker.Size = ;
Symbol makersymbol = LayoutRoot.Resources["BlackMarkerSymbol"] as Symbol;
marker.Style = SimpleMarkerSymbol.SimpleMarkerStyle.Square;
graphic.Symbol = makersymbol;
graphic.Geometry = e.Geometry;
graphicLayer.Graphics.Add(graphic);
}

【ArcGIS for SivlerLight api(3)】基础图层增删改查的更多相关文章

  1. Android 系统API实现数据库的增删改查和SQLite3工具的使用

    在<Android SQL语句实现数据库的增删改查>中介绍了使用sql语句来实现数据库的增删改查操作,本文介绍Android 系统API实现数据库的增删改查和SQLite3工具的使用. 系 ...

  2. MVC3+EF4.1学习系列(二)-------基础的增删改查和持久对象的生命周期变化

    上篇文章中 我们已经创建了EF4.1基于code first的例子  有了数据库 并初始化了一些数据  今天这里写基础的增删改查和持久对象的生命周期变化 学习下原文先把运行好的原图贴来上~~ 一.创建 ...

  3. Java API实现Hadoop文件系统增删改查

    Java API实现Hadoop文件系统增删改查 Hadoop文件系统可以通过shell命令hadoop fs -xx进行操作,同时也提供了Java编程接口 maven配置 <project x ...

  4. ASP.NET Web API基于OData的增删改查,以及处理实体间关系

    本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ...

  5. [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系

    本文转自:http://www.cnblogs.com/darrenji/p/4926334.html 本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先 ...

  6. 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...

  7. week_one-python基础 列表 增删改查

    # Author:larlly #列表增删改查#定义列表name = ["wo","ni","ta","wo"] #定义 ...

  8. ElasticSearch6(三)-- Java API实现简单的增删改查

    基于ElasticSearch6.2.4, Java API创建索引.查询.修改.删除,pom依赖和获取es连接 可查看此文章. package com.xsjt.learn; import java ...

  9. ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查. 目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的. 下面我们通过创建一个简单的Web API来管理 ...

随机推荐

  1. 网络协议之socks---子网和公网的穿透

    http://www.cnblogs.com/imyijie/p/4595889.html

  2. jQuery-替换和删除元素

    1.replaceWith方法 用提供的内容替换集合中所有匹配的元素并且返回被替换元素的集合 参数类型说明: 1)普通字符串(可包含各种html标签) 2)jQuery对象 ①使用$函数创建的新元素( ...

  3. 根据PV量来确定需要进行压测的并发量

    在实际做压力测试的过程中,我们有时不知道用怎样的并发量比较好,下面是几个用PV量去确定并发量的公式,这个在我们公司是比较适用的,大家可以根据自己的业务进行运算. 方法一:这个方法是我在网上查到的80- ...

  4. linux mint 19解决 输入法问题

    安装搜狗后出现 You're currently running Fcitx with GUI, but fcitx-configtool couldn't be found, the package ...

  5. PHP实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定

    解决方案一:通过端口来区分不同的虚拟主机 ①按照绑定一个站点的方法做好准备 1. 先开发好自己的网站(d:/myblog(存放在D盘的myblog目录下)) 2. 配置httpd.conf文件(存放在 ...

  6. mysqldump: command not found

    原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件.首先得知道mysql命 ...

  7. ios - UILabel全属性

    label是大家在开发过程中使用频率很高的一个用来显示文本信息的控件,但是她所有的属性你都了解吗,下面让我们来 重新认识一下label! 1.创建 CGRect rect = CGRectMake(, ...

  8. ubuntu系统无eth0网卡解决办法

    ubuntu终端下命令ifconfig的问题解决 问题一. ifconfig之后只显示lo,没有看到eth0 问题二. ifconfig之后显示eth0,但是没有显示静态IP地址,即无inet.地址. ...

  9. cocos2d-x游戏引擎核心之五——触摸事件和触摸分发器机制

    一.触摸事件 为了处理屏幕触摸事件,Cocos2d-x 提供了非常方便.灵活的支持.在深入研究 Cocos2d-x 的触摸事件分发机制之前,我们利用 CCLayer 已经封装好的触摸接口来实现对简单的 ...

  10. android 动画学习系列(一)

    老师今天开始讲android的游戏,讲到了view和surfaceview 下面是view的演示部分 private Paint paint; //游戏里很少用double,都是用long priva ...