zoukankan      html  css  js  c++  java
  • arcgis server 9.2代码阅读笔记一:在图层中增加一个点

    代码来源 ARCGIS 9.2例子

    // Copyright 2006 ESRI
    //
    // All rights reserved under the copyright laws of the United States
    // and applicable international laws, treaties, and conventions.
    //
    // You may freely redistribute and use this sample code, with or
    // without modification, provided you include the original copyright
    // notice and use restrictions.
    // AUTHER:糊涂虫 2007.9.19
    // See use restrictions at /arcgis/developerkit/userestrictions.

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using ESRI.ArcGIS.ADF.Web.UI.WebControls.Tools;
    using ESRI.ArcGIS.ADF.Web.UI.WebControls;
    using ESRI.ArcGIS.ADF.ArcGISServer;
    using ESRI.ArcGIS.Server;
    using ESRI.ArcGIS.Carto;
    using ESRI.ArcGIS.Geometry;
    using ESRI.ArcGIS.esriSystem;
    using ESRI.ArcGIS.Display;
    using System.Collections;
    using ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer;

    public class PointTool : IMapServerToolAction
    {
    public void ServerAction(ToolEventArgs args)
    {
    //获得图层控制
    ESRI.ArcGIS.ADF.Web.UI.WebControls.Map mapctrl;
    mapctrl = (ESRI.ArcGIS.ADF.Web.UI.WebControls.Map) args.Control;
    //获得屏幕上点的集合
    PointEventArgs pea = (PointEventArgs)args;
    System.Drawing.Point screen_point = pea.ScreenPoint;
    //获得图层的能力
    MapFunctionality mf = (MapFunctionality) mapctrl.GetFunctionality(0);
    //获得图层的描述
    ESRI.ArcGIS.ADF.ArcGISServer.MapDescription mapDescription = mf.MapDescription;
    //把屏幕上的点转换为ADF点
    ESRI.ArcGIS.ADF.Web.Geometry.Point adf_map_point = ESRI.ArcGIS.ADF.Web.Geometry.Point.ToMapPoint(screen_point, mapctrl.Extent, mf.DisplaySettings.ImageDescriptor.Width, mf.DisplaySettings.ImageDescriptor.Height);
    //定义点对象
    PointN ags_map_point = ESRI.ArcGIS.ADF.Web.DataSources.ArcGISServer.Converter.FromAdfPoint(adf_map_point);
    //设置点的颜色
    ESRI.ArcGIS.ADF.ArcGISServer.RgbColor rgb = new ESRI.ArcGIS.ADF.ArcGISServer.RgbColor();
    rgb.Red = 0;
    rgb.Green = 255;
    rgb.Blue = 0;
    rgb.AlphaValue = 255;
    //设置点的标识符
    ESRI.ArcGIS.ADF.ArcGISServer.SimpleMarkerSymbol sms = new ESRI.ArcGIS.ADF.ArcGISServer.SimpleMarkerSymbol();
    sms.Style = ESRI.ArcGIS.ADF.ArcGISServer.esriSimpleMarkerStyle.esriSMSDiamond;
    sms.Color = rgb;
    sms.Size = 20.0;
    //设置点
    ESRI.ArcGIS.ADF.ArcGISServer.MarkerElement marker = new ESRI.ArcGIS.ADF.ArcGISServer.MarkerElement();
    marker.Symbol = sms;
    marker.Point = ags_map_point;

    if (mapDescription.CustomGraphics != null)
    {
    //获得该图层上的所有对象
    GraphicElement[] oldges = mapDescription.CustomGraphics;
    //对象的个数
    int cnt = oldges.Length;
    //对象个数加一,并把新的对象(点)放进去
    GraphicElement[] newges = new GraphicElement[cnt + 1];
    oldges.CopyTo(newges, 0);
    newges[cnt] = marker;
    mapDescription.CustomGraphics = newges;
    }
    else
    {
    GraphicElement[] ges = new GraphicElement[1];
    ges[0] = marker;
    mapDescription.CustomGraphics = ges;
    }

    mapctrl.Refresh();
    }
    }

    这是一个在图层中添加点的例子,添加线段 图形和文字的代码基本上和这差不错,自己现在只是一个初学者,我在这里只是抛砖引玉,希望大家能发出更好的博客文章出来,同时支持原创。如有错误请交流jiyanliangcs@163.com。

    本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/zhangjie_xiaoke/archive/2008/03/05/2150725.aspx

  • 相关阅读:
    Flask-wtforms 组件
    flask-session
    [架构漫谈]软件架构师如何工作
    [Python]爬取新型冠状病毒2.2至今的所有数据 python 2020.2.13
    [Python]爬取首都之窗百姓信件网址id python 2020.2.13
    假期学习【十三】信息领域热词分析系统--整体完成
    假期学习【十二】热词分析系统--初步展示
    [Python]python对csv去除重复行 python 2020.2.11
    pip工具下载速度慢的问题
    [Python]pyhon去除txt文件重复行 python 2020.2.10
  • 原文地址:https://www.cnblogs.com/googlegis/p/2979065.html
Copyright © 2011-2022 走看看