前台代码:

Code
<UserControl x:Class="SimpleClusterer.MainPage"
    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:esri="clr-namespace:ESRI.ArcGIS.Client;assembly=ESRI.ArcGIS.Client"
             xmlns:esriSymbols="clr-namespace:ESRI.ArcGIS.Client.Symbols;assembly=ESRI.ArcGIS.Client"
             xmlns:esriGeometry ="clr-namespace:ESRI.ArcGIS.Client.Geometry;assembly=ESRI.ArcGIS.Client"
             mc:Ignorable="d" d:DesignWidth="640" d:DesignHeight="480">
  <Grid x:Name="LayoutRoot">
            <esri:Map x:Name="myMap" ExtentChanged="myMap_ExtentChanged">
            <esri:ArcGISTiledMapServiceLayer x:Name="myTiledMapServiceLayer"
                                             Url="http://server.arcgisonline.com/ArcGIS/rest/services/ESRI_StreetMap_World_2D/MapServer"/>
            <esri:GraphicsLayer  ID="mygraphicslayer">
            </esri:GraphicsLayer>
        </esri:Map>
    </Grid>
</UserControl>

Code Behind C#

Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Media;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using ESRI.ArcGIS.Client;
using ESRI.ArcGIS.Client.Symbols;
using ESRI.ArcGIS.Client.Tasks;

namespace SimpleClusterer
{
    public partial class MainPage : UserControl
    {
        GraphicsLayer graphicslayer = null;
        SimpleMarkerSymbol simpleMarkerSymbol;
        public MainPage()
        {
            InitializeComponent();
            Init();
        }
        void Init()
        {
           
            //获取Graphicslayer
            graphicslayer = myMap.Layers["mygraphicslayer"] as GraphicsLayer;

GradientStopCollection gradientStopColl = new GradientStopCollection();
            GradientStop gstop1 = new GradientStop();
            gstop1.Color = Colors.Red;
            gstop1.Offset = 0;
            GradientStop gstop2 = new GradientStop();
            gstop2.Color = Colors.Gray;
            gstop2.Offset = 0.25;
            GradientStop gstop3 = new GradientStop();
            gstop3.Color = Colors.Black;
            gstop3.Offset = 0.5;
            GradientStop gstop4 = new GradientStop();
            gstop4.Color = Colors.Blue;
            gstop4.Offset = 0.75;
            GradientStop gstop5 = new GradientStop();
            gstop5.Color = Colors.Green;
            gstop5.Offset = 1;

gradientStopColl.Add(gstop1);
            gradientStopColl.Add(gstop2);
            gradientStopColl.Add(gstop3);
            gradientStopColl.Add(gstop4);
            gradientStopColl.Add(gstop5);

LinearGradientBrush mylinearGradientBrush = new LinearGradientBrush(gradientStopColl,0);
            mylinearGradientBrush.MappingMode = BrushMappingMode.RelativeToBoundingBox;

//初始化simpleMarkerSymbol
            SolidColorBrush symbolBrush = new SolidColorBrush(Colors.Purple);
            simpleMarkerSymbol = new SimpleMarkerSymbol();
            simpleMarkerSymbol.Size = 12;
            simpleMarkerSymbol.Style = SimpleMarkerSymbol.SimpleMarkerStyle.Circle;
            simpleMarkerSymbol.Color = symbolBrush;

//设置背景色
            SolidColorBrush backbrush = new SolidColorBrush(Colors.Yellow);
            //设置前景色
            SolidColorBrush forebrush = new SolidColorBrush();
            forebrush.Color = Color.FromArgb(99, 0, 0, 0);
            //设置集群
            FlareClusterer myflareClusterer = new FlareClusterer();
            myflareClusterer.FlareBackground = backbrush;
            myflareClusterer.FlareForeground = forebrush;

myflareClusterer.Radius = 10;
            myflareClusterer.MaximumFlareCount = 20; //最大个数
            myflareClusterer.Gradient = mylinearGradientBrush;

graphicslayer.Clusterer = myflareClusterer; 
        }

void LoadGraphic()
        {
            QueryTask querytask = new QueryTask();
            querytask.Url = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/0";
            querytask.ExecuteCompleted += new EventHandler<QueryEventArgs>(querytask_ExecuteCompleted);

Query query = new Query();
            query.OutSpatialReferenceWKID = myMap.SpatialReference.WKID;
            query.ReturnGeometry = true;
            query.Where = "1=1";

querytask.ExecuteAsync(query);
        }

void querytask_ExecuteCompleted(object sender, QueryEventArgs e)
        {
            FeatureSet featureset = e.FeatureSet;
            if (featureset == null || featureset.Features.Count < 1)
            {
                MessageBox.Show("No features retured from query");
                return;
            }
            foreach (Graphic g in featureset.Features)
            {
                g.Symbol = simpleMarkerSymbol;
                graphicslayer.Graphics.Add(g);
            }
        }

private void myMap_ExtentChanged(object sender, ExtentEventArgs e)
        {
            if (e.OldExtent == null)
                LoadGraphic();
        }

}
}

效果图:

转载于:https://www.cnblogs.com/JinDin/archive/2009/09/29/1576556.html

ArcGIS Server for Silverlight 之集群(Simple Clusterer)相关推荐

  1. [转] 微软SQL Server 2008故障转移集群概述(Windows Server Failover Clustering (WSFC))

    前言: 最近在研究微软的大数据解决方案,在收听MS TechNet "SQL Server 2012 AlwaysOn HA+DR设计模型.架构及最佳实践" 时,需要一些预备知识, ...

  2. 在Windows Server 2012 R2中搭建SQL Server 2012故障转移集群

    需要说明的是我们搭建的SQL Server故障转移集群(SQL Server Failover Cluster)是可用性集群,而不是负载均衡集群,其目的是为了保证服务的连续性和可用性,而不是为了提高服 ...

  3. SQL Server 2008故障转移集群+数据库镜像配置实例之三

    前两篇文章已经建立了SQL 2008 的故障转移集群,由于故障转移集群存在一个单点故障,既是当网络存储设备不可用时,整个集群就不可用了.所以为了获得更好的高可用特性和容灾机制,我们可以将集群中的某一特 ...

  4. 现场工程师出马:VMware+LVM卷快速在windows Server上部署Kafka集群

    最近遇到的疑难现场问题层出不穷,本次遭遇的挑战是在4台windows Server 服务器上部署Kafka集群.这是一种比较少见的操作,原因是有些依赖的驱动对虚拟化支持不好,只能运行在实体win机上. ...

  5. Docker部署SQL Server 2019 Always On集群

    Docker部署Always on集群 SQL Server在2016年开始支持Linux.随着2017和2019版本的发布,它开始支持Linux和容器平台上的HA/DR.Kubernetes和大数据 ...

  6. 分布式TensorFlow集群local server使用详解

    通过local server理解分布式TensorFlow集群的应用与实现. ​​简介 TensorFlow从0.8版本开始,支持分布式集群,并且自带了local server方便测试. Local ...

  7. 3、Spring Cloud - Eureka(高可用Eureka Server集群)

    在实际的项目中,可能有几十个或者几百个的微服务实例,这时 Eureka Server 承担了非 常高的负载.由于 Eureka Server 在微服务架构中有着举足重轻的作用,所以需要对 Eureka ...

  8. Linux服务器集群系统(一)—— LVS(Linux Virtual Server)简介

    背景: 九十年代中期,万维网(World Wide Web)的出现 Internet用户剧烈增长和Internet流量爆炸式地增长 Internet的飞速发展给网络带宽和服务器带来巨大的挑战 从网络技 ...

  9. 如何创建免费的Hyper-V Server故障转移集群

    尽管可能使Windows Server授权模型更加复杂,但用户还是可以使用免费Hyper-V Server来创建容错环境以及故障转移集群. 微软在很久之间就已经推出免费版Hyper-V Server, ...

最新文章

  1. 【带你重拾Redis】Redis过期策略 和 内存淘汰策略(key回收)
  2. 配置SQL Server 2008 镜像
  3. 使用Maven Assembly plugin将依赖打包进jar
  4. MySQL为关联表添加数据
  5. 慎用stl中的erase的返回值
  6. 利用XMLSerializer将对象串行化到XML
  7. 美团提出具有「位置编码」的Transformer,性能优于ViT和DeiT
  8. shell脚本语之运算符
  9. 人工智能都这么火了,底层基础架构还有必要开源吗?
  10. Ubuntu Git安装与使用
  11. 算法:限流之令牌桶算法实现
  12. 极客时间MySQL实战45讲笔记
  13. win10弹出计算机的内存不足,Win10系统提示“计算机内存不足”的解决方法
  14. [NFC] 读羊城通卡片信息
  15. 毕业设计_Android短信查询及加密系统_短信查询
  16. zookeeper客户端 curator的使用
  17. 基于java的银行信用卡业务系统
  18. 计算机毕业设计SSM本科培训班学员信息管理系统【附源码数据库】
  19. 能力成熟度模型集成(CMMI)
  20. 搜索引擎SEO因素的类型

热门文章

  1. BZOJ1103: [POI2007]大都市meg
  2. c# timer使用
  3. PHP array_merge() 函数
  4. Winsock服务器设计的四个关键问题
  5. 在Eclipse中集成Ant编程之配置篇
  6. 如何在debian 中启用 fbcon
  7. [代码笔记]VUE路由根据返回状态判断添加响应拦截器
  8. Windows Server 2016软件定义存储:Storage Spaces Direct介绍
  9. linux用终端上传文件和文件家到远程的服务器
  10. hiho_1089_floyd最短路