Tag Archives: arcgis

ArcIMS ArcXML 元数据搜索中文关键词问题

或者在c#代码中直接用中文字符构建 SEARCH_METADATA将搜索失败,提示非法的ArcXML
解决方法是使用中文的unicode表示,即旞类似的方式
提供了一个转换函数:

/// <summary>
/// 将汉字变成 黑&27827;的ascii编码
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
public static string UnicodeEncode(string text)
{
char[] chars = System.Web.HttpUtility.HtmlEncode(text).ToCharArray();
System.Text.StringBuilder result = new System.Text.StringBuilder(text.Length + (int)(text.Length * 0.1));

foreach (char c in chars)
{
int value = Convert.ToInt32(c);
if (value > 127)
result.AppendFormat("&#{0};", value);
else
result.Append(c);
}

return result.ToString();
}

ESRI本身提供的metadata explorer搜索中文关键词时有问题,是因为它的代码将中文解释成了 &amp;26789;类似,而不是梥,可能是将&再次解释了,搜索时将不返回结果。不知道9.1及以后版本的arcims metadata explorer里是否已经更正。

ArcCatalog使用iso元数据标准

为了系统只使用iso标准,ArcCatalog(以下称ac)做为发布端,需要做如下工作:

  1. 关闭fgdc和geo-network同步器。在metata菜单里,使用set working synchronizer命令关闭两者。
  2. 建立一个vba宏,删除xml里的fgdc标签。edn有现成可用的宏,在esri的edn开发网站上搜索 delete FGDC metadata,估计就可以找到。(或向我索要)建立好了,在ac里选择上需要处理的文档,支持宏即好。其实分析一下,就只有几个标签,手工去删除也不难。而且最好能有个自己的工具去批量删除。
  3. 关闭 arcims server上的基于内容的 validation功能,用处不大,那是为metadata explorer设计的,如果不用explorer,这个功能就没多大用处了,而且此功能实质是检查 fgdc标签的内容(或者说iso的内容处在低于fgdc内容的优先级别上)。

ArcGIS installation error 1904

With prompt like failed to register.

Solution: this is due to the embedded DEP (data execution protection). Change the parameter of boot.ini “NoExecute=OptIn” to “NoExecute=AlwaysOff” to work around this problem. After installation, please set it back to OptIn.

ArcGIS License server & firewall

为使得ArcGIS License Server通过 windows firewall 被其它机器所使用,需要如下 配置:
1. open License.dat or *.lic obtained from ESRI company,remember the port specified in the host line, commonly 27000, or 27004
2. specify the port used by arcgis.exe, for ex.
VENDOR ARCGIS PORT=1234 
(in my computer, it is 1025 by default)
3. open your firewall configuration window, add ports for manager (as item 1), 
as well as for arcgis.exe (as item 2) respectively
 
done!
 
 

arcCatalog不能通过ip address访问 sde spatial db

在arcCatalog里的spatial database connection对话框里,不能通过 ip address连接
到sde,但域名是可以的
解决方法:在本机的hosts(%system32%driversetc)文件里添加一行:
210.77.68.241 geodata #arcsde server
再在catalog里连接,使用ip或geodata都可以连接上去。

可能的原因:catalog在输入ip地址时,使用了getHostByAddr()方法,得到域名后,再
执行正常的连接(从host->ip->连接)。由于210.77.68.241这个ip没能反解得到域
名,故连接失败。
增加hosts项后,getHostByAddr可以反解得到域名是geodata,正常连接的时候,再行
解释域名到ip,从而正常连接。

评价:比较ugly的方法,如果不反解,而直接根据ip进行连接估计更好。可能是受
catalog采用的编程语言本身api的限制。

arcims .net link的几种方式

至少有三种方式可以实现:
1. 通过servlet,asp.net其实是生成了servlet的url get串所需的参数。网上可以找
到一个例子,.net primer的实现就是基于这种方式。效率可能有点低。
2. arcims自身提供的.net link dll,链接进vs project refences。未在asp.net 2下
测试,未必与2.0兼容。
3. 一个意大利人开发的 .net connector 2.14,他自称是支持asp.net 2,刚才用对象
查看器检查了一下,发现对image service等几个有比较好的支持,已经实现了一些便
利的比如取得地图等方法。缺少文档,仅有的一点也是意大利文,metadata没有实现的
支持,但可通过sendrequesttoservice方法来进行get_metadata和 publish_metadata

Unable to create ArcIMS metadata service

arcims 9 + sql 2k
在创建metadata service前一定要注意先配置sql 2k,为了支持xml column,需要创建
fulltext catalog,默认是 SDE_DEFAULT_CAT;如果忘了这个次序,立刻创建meta
service,可能就遇到我最近遇上的问题,花了整整一天的时间来解决问题,
administrator会提示缺少xml column,这时就想起来要去配置 全文目录,在sde数据
库里配置后,再到administrator,发现提示 unable to connect the database错误。
但image service等都是好的。message console则提示 sde connection broken等。
搜索网上没有好的解决方案。
一个笨办法,重新arcims post installation一次,可以通过custom选项,去掉
connector的配置,这样可以省掉又要重新配置 esri_mapprop

[转]ArcIMS Spatial Servers are not available?

 
arcims卸载再重装之后,在Administrator中 login 时,出现[WRN0402] ArcIMS Spatial Servers are not available on one or more machines这样的警告!
原因:以前的一些配置实例没有彻底删除!
解决办法: 
  1. 进入 Administrator移除 associated services and server instances
  2. 执行:
    1. java com.esri.aims.admincore.cmd.Exec <machine name> <admin username> <admin password> cmd REMOVEUNAVAILABLEMONITORS
    2. java com.esri.aims.admincore.cmd.Exec <machine name> <admin username> <admin password> cmd SAVE
  3. 注意 <machine name>是 http://localhost 格式

arcgis的iso, fgdc标准的xml实现

昨天一直在考虑如果在iso 19115的基础上扩展生态元数据的问题。突然想到是否可以
看看esri是如何统一iso和fgdc的标准,一看吓一跳。esir的iso和fgdc标准其实是实现
在同一个xml里,换句话说这个xml里既包括了iso的要素,也包括了fgdc的要素。
catalog提供的iso editor和fgdc editor其实只是一个界面,生成的并非是独立的fgdc
或iso。比如用iso editor生成一个abstract,是放在这个xml的某要素下面,再用fgdc
editor生成一个fgdc的abstract(fgdc的要素有更高的优先级,比如iso和fgdc都具备
了一个title,你要搜索title的时候,metadata service返回给你的是fgdc的title;
当然如果查询是使用了TAG xpath方式,则返回对应tag下的内容,不存在优先级的问
题),也在放在同一个xml里,不过就是用了不同的element。郁闷,esri居然用了这样
一个四不像的xml组织方式。而且esri没有提供iso xml的parser或import/export的功
能。
看来我们也只能接下去对这个四不像的esri profile of FGDC,进行扩展了。本来还想
着应该是生成一个比较标准的fgdc或iso xml呢!