ArcGIS API for Silverlight 入门学习笔记(二):发布并访问自己的map server

Map service是最常见的ArcGIS service,可以拥有很多能力和功能。Map service本身具备mapping和map viewing的能力,也可以支持modeling和geoprocessing,mobile GIS services以及OGC WMS, OGC WCS, KML的能力。

要发布map service,首先得在ArcMap中准备一个map document (.mxd)。将这个mxd文件发布成map service后,便可通过服务访问该地图文档的数据,显示图层,并使用该地图内建的任何能力。也可以选择对这个服务建立cache,使其能够更快速的被浏览。

创建map document

必须使用ArcGIS Desktop来创建map document。

创建准备发布成服务的map document的一些技巧

需要合理安排地图文档的内容,范围,标注,注记等等要素,将它们安排到合理的位置,切记不要太繁琐,同时考虑到地图的美观性。

发布service

我是用ArcCatalog进行发布的,所以只说使用ArcCatalog发布的方法。

  1. In the Catalog tree, navigate to the resource you want to publish. For example, navigate to a map document on disk.
  2. Right-click the resource and click Publish to ArcGIS Server.
  3. Choose which server you want to publish the resource to, type a name for the service, then choose the folder in which the service will reside. Click Next.
  4. Choose the capabilities you would like to enable for the resource and click Next. Different types of resources expose different types of capabilities.
  5. Review the information about the service that will be created. If you will be working with the service through the Web, take special note of the service's URL. You can't enter this URL in a browser directly, but you can enter the URL and append ?wsdl to see the service's Web service definition and verify that the service is working correctly.

    Note that multiple Web service endpoints can be created when you specify certain capabilities (for example, the KML capability for map services creates an additional endpoint suffixed KmlServer in addition to the default map service).

 

启动ArcCatalog——双击Add Arcgis Server —— 选择Manage Gis Server —— 下一步 —— 输入Host Name —— 右键新建的GIS Server —— Add new server —— 一路Next就可以了

以下是图解

2011011211304919.png2011011211355698.png

2011011211434814.png

2011011211442392.png

2011011211444380.png

2011011211445932.png

2011011211451554.png

2011011211453020.png

2011011211455533.png

2011011211461431.png

2011011211463726.png


启用service中的相应能力

发布一个map service后,通过启用相应的能力可以创建其他与map service一起工作的service。其中一些能力要求地图文档包含有特定的图层。

下表中列出了map service拥有的能力,和启用相应能力的要求。

2011011210411392.png

 

发布好服务,就可以访问自己的服务了。但是打开预览后,并没有出现我们所希望看到的地图,那么我们添加InitializationFailed属性,跟踪错误。

代码如下:相关详细内容点击这里

 

ContractedBlock.gif ExpandedBlockStart.gif 前台代码
 
   
< UserControl x:Class ="APIforSilverlightSamp.s2"
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"
mc:Ignorable
="d" >
< Grid x:Name ="LayoutRoot" Background ="White" >
< ESRI:Map x:Name ="mymap" >
< ESRI:Map.Layers >
< ESRI:ArcGISDynamicMapServiceLayer InitializationFailed ="ArcGISDynamicMapServiceLayer_InitializationFailed" Url ="http://junyuzhang/ArcGIS/rest/services/myMapService/MapServer" />
</ ESRI:Map.Layers >
</ ESRI:Map >
</ Grid >
</ UserControl >

 

 

 

 

ContractedBlock.gif ExpandedBlockStart.gif 后台代码
 
   
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;

namespace APIforSilverlightSamp
{
public partial class s2 : UserControl
{
public s2()
{
InitializeComponent();
}

private void ArcGISDynamicMapServiceLayer_InitializationFailed( object sender, EventArgs e)
{
ESRI.ArcGIS.Client.Layer layer
= sender as ESRI.ArcGIS.Client.Layer;
MessageBox.Show(layer.InitializationFailure.ToString());
}
}
}

 

 

 

出现如下提示:

2011011212134733.png

经过查证,是跨域访问的问题,在根目录下缺少  clientaccesspolicy.xml  crossdomain.xml 这两个文件

 

ContractedBlock.gif ExpandedBlockStart.gif clientaccesspolicy.xml

 

 

ContractedBlock.gif ExpandedBlockStart.gif crossdomain.xml
 
   
<? xml version="1.0" ?>
<! DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" >
< cross-domain-policy >
< allow-access-from domain ="*" />
< allow-http-request-headers-from domain ="*" headers ="*" />
</ cross-domain-policy >

 

 

把他们放入C:\Inetpub\wwwroot目录下,然后再预览一次。OK,可以正常访问了

2011011212255065.png

 

学习资料来源:http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#map_service.htm

http://www.cnblogs.com/SunYu/archive/2010/04/30/1724714.html

http://webhelp.esri.com/arcgisserver/9.3/dotNet/index.htm#what_can_you_publish.htm

转载于:https://www.cnblogs.com/junyuz/archive/2011/01/12/1933684.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值