0% found this document useful (0 votes)
8 views

Customizing Java Connector

Uploaded by

davidlister79
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views

Customizing Java Connector

Uploaded by

davidlister79
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 373

Copyright © 2000–2002 ESRI

All Rights Reserved.


Printed in the United States of America.

The information contained in this document is the exclusive property of ESRI. This work is protected under United States copyright law
and the copyright laws of the given countries of origin and applicable international laws, treaties, and/or conventions. No part of this
work may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying or recording, or
by any information storage or retrieval system, except as expressly permitted in writing by ESRI. All requests should be sent to
Attention: Contracts Manager, ESRI, 380 New York Street, Redlands, CA 92373-8100, USA.
The information contained in this document is subject to change without notice.

U. S. GOVERNMENT RESTRICTED/LIMITED RIGHTS


Any software, documentation, and/or data delivered hereunder is subject to the terms of the License Agreement. In no event shall the U.S.
Government acquire greater than RESTRICTED/LIMITED RIGHTS. At a minimum, use, duplication, or disclosure by the U.S.
Government is subject to restrictions as set forth in FAR §52.227-14 Alternates I, II, and III (JUN 1987); FAR §52.227-19 (JUN 1987)
and/or FAR §12.211/12.212 (Commercial Technical Data/Computer Software); and DFARS §252.227-7015 (NOV 1995) (Technical Data)
and/or DFARS §227.7202 (Computer Software), as applicable. Contractor/Manufacturer is ESRI, 380 New York Street, Redlands, CA
92373-8100, USA.
ESRI, ArcIMS, ArcSDE, and the ArcGIS logo are trademarks, registered trademarks, or service marks of ESRI in the United States, the
European Community, or certain other jurisdictions. Microsoft and the Windows logo are registered trademarks and the Microsoft
Internet Explorer logo is a trademark of Microsoft Corporation.
Other companies and products mentioned herein are trademarks or registered trademarks of their respective trademark owners.
Contents Introducing the Java Connector 1
ArcIMS Application Server Connectors 2
What is the Java Connector? 3
Features 4
Who should use the Java Connector? 5
Java Connector Object Model and Tag Library 6
Information resources 7

Getting started 9
Installing the Java Connector 10
Java Connector samples 11
Quick-start tutorial 12

Java Connector Object Model 19


About the API Specification document 20
Supported development environments 23
Object model overview 24

Java Connector Tag Library 28


JSP Tag Library conventions 29
acetateObject 32
addRelevance 35
addressMatchInputs 37
adminServer 40
adminService 42
arcMapService 44
browse 47
buffer 51
bufferLayer 58
calloutMarkerSymbol 60

v
chartSymbol 62
chartValue 65
coordSys 68
createDocument 71
createLayer 74
createService 77
createVirtualServer 81
dataset 84
datasetProperty 87
deleteDocument 89
densify 91
displayFeatures 93
documentInfo 95
envelope 97
exact 99
extractOutput 102
featureCoordSys 104
filter 107
filterCoordSys 115
getContainerAttribute 118
getElement 121
getInputAttribute 124
getLayerAttribute 127
getLayerId 129
getLayout 131
getMetadataDocument 133
getRasterInfo 135
getResultAttribute 137
getServer 139
getService 142
getServiceAttribute 145
getServices 148
getSettings 151
getUUID 153

vi
getVirtualServer 155
getVirtualServerAttribute 158
getVirtualServers 160
gradientFillSymbol 162
groupRenderer 164
hashLineSymbol 166
hideLayer 169
hole 171
httpConnection 173
imageWorkspace 175
iterateAddressMatchInputs 177
iterateAddressMatchResults 181
iterateContainersForServer 184
iterateContentType 187
iterateDataframe 190
iterateEnvelope 192
iterateGeometry 194
iterateLayers 196
iterateMetadata 198
iterateRasterInfo 201
iterateRecordset 203
iterateServices 205
iterateTableDesc 208
iterateVirtualServers 210
layer 212
legend 214
legendOutput 217
line 219
loadElements 221
map 224
mapOutput 228
mapService 230
metadataChild 232

vii
metadataSibling 234
moveLayer 236
moveLayerToBottom 238
moveLayerToTop 240
nestedSearch 242
northArrow 244
other 247
pan 249
point 251
polygon 253
publishDocument 255
putMetadataRelationship 257
putMetadataSemantic 259
range 261
rasterFillSymbol 264
rasterMarkerSymbol 266
rasterShieldSymbol 269
recordset 272
removeLayer 274
removeVirtualServer 276
request 278
scalebar 280
scaleDependentRenderer 284
sdeWorkspace 287
search 290
searchEnvelope 294
semanticPair 296
separators 298
setInput 301
shapeWorkspace 303
shieldSymbol 305
simpleLabelRenderer 307
simpleLineSymbol 312

viii
simpleMarkerSymbol 315
simplePolygonSymbol 318
simpleRenderer 322
siteSave 324
siteUser 326
subset 328
targetLayer 330
tcpConnection 332
text 334
textMarkerSymbol 336
textQuery 339
textSymbol 342
trueTypeMarkerSymbol 345
updated 349
validateConnection 351
valueMapLabelRenderer 353
valueMapRenderer 358
valueQuery 360
zoom 363
zoomFullExtent 365

Appendix 366
What happens to my AppServerLink applications in ArcIMS 4.0? 366

ix
Introducing the Java Connector
IN THIS CHAPTER
1
ESRI® ArcIMS® 4 software provides a suite of tools that allow you to create
effective Web sites for your mapping and geographic information system
• ArcIMS Application Server Con- (GIS) needs. ArcIMS provides the foundation for the graphical and functional
nectors components of these Web sites. You can build on this foundation through
• What is the Java Connector?
customization of the ArcIMS viewers.
Customizing ArcIMS is a series of programming reference books that
• Features describes customizing the HTML and JavaTM Viewers and creating viewers or
• Who should use the Java Connec-
applications supported by the Java, ActiveX®, and ColdFusion® Connectors.
tor? This book explains the ArcIMS Java Connector and provides a complete
reference to the Java Connector Object Model and Java Connector Tag
• Java Connector Object Model and Library.
Tag Library
This book assumes you have a working knowledge of JavaServer PagesTM
• Information resources (JSPTM) technology, the Java language, and HTML.

1
ArcIMS Application Server Connectors
The ArcIMS Application Server Connectors connect the Web server to the ArcIMS Application Server. The ArcIMS Servlet Connector
is the standard connector used with ArcIMS. Several alternatives to the ArcIMS Servlet Connector exist. They are
• Java Connector
• ColdFusion Connector
• ActiveX Connector
You can select a suitable Application Server Connector based on your development environment. The connectors reside on the Web
server computer. Each Web server can have many Application Server Connectors as long as they are different types.
The Java Connector communicates with the ArcIMS Application Server via a JSP client or a standalone Java application. The
ColdFusion and ActiveX Connectors work with custom clients and translate their own languages into ArcXML. For more information
about the ActiveX and ColdFusion Connectors, see the respective Customizing ArcIMS series of books.

2 CUSTOMIZING ARCIMS—JAVA CONNECTOR


What is the Java Connector?
ArcIMS Java Connector is an ArcIMS Application Server Connector that allows communication between the ArcIMS Application Server
and a JSP client or a standalone Java application. It is a reusable software component suite that includes a JavaBeansTM Object Model
Library and a rich set of custom JSP tags supported in the form of a Tag Library. These JavaBeans and JSP tags allow you to
programmatically establish communication with an ArcIMS Application Server—via a HTTP, HTTPS, or TCP/IP connection—and begin
sending ArcXML requests to it. Once the Application Server receives the request, it processes it and returns the appropriate response.
With that response, your application can react accordingly.

For example, suppose you’ve created a simple data browsing application that allows a user to pan and zoom around a map. To zoom in,
the user pushes a button on your application’s user interface. Your application translates that button press as an ArcXML request that
gets sent via the Java Connector to the Application Server, which in turn passes it to the Spatial Server for processing. Based on this
request, the Spatial Server generates a new zoomed-in display of the area of interest and informs the Application Server that the request
has been processed. Your application can then display the new image back to the user.

INTRODUCING THE ARCIMS JAVA CONNECTOR 3


Features
The Java Connector
• Communicates with the ArcIMS Application Server via a
HTTP, HTTPS, or TCP/IP connection.
• Includes a rich collection of custom JSP tags in the form of a
Tag Library.
• Includes server-side, object model JavaBeans for mapping,
display, query, and analysis.
• Supports Authentication using, in which you can protect/
control access to your sensitive data.
• Provides ability to overlay local and remote data.
• Provides complete support for all ArcXML capabilities that
can be processed on the server-side.
• Supports an open, cross-platform architecture. Web servers,
platforms, and other components can be easily upgraded or
switched without affecting your applications.

4 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Who should use the Java Connector?
If you are using Java or JSP to create a custom application and
you want to incorporate geographic data in it, you can use the
Java Connector to connect your application directly to the
ArcIMS Application Server. The Application Server processes
client requests sent to it and, if necessary, routes those requests
to the appropriate Spatial Server for further processing. By
connecting your application to the Application Server, you
connect to all the functionality provided by the Spatial Server—
such as the ability to view and query your geographic data. Thus,
you don’t have to write your application from scratch; instead,
you can rely on ArcIMS—through the Java Connector—to
provide the geographic operations you need.
Here are a few examples of how you might use the Java
Connector:
• You’re using JSP to build a browser-based, thin Internet
application (like Metadata Explorer) that allows people outside
your organization to search/browse for information that con-
tains geographic content. The application logic may reside in
server-based resources, such as JavaBeans, to provide addi-
tional Internet Security.
• You’re a Web developer with little or no knowledge of the
Java language and need to create an interactive Web site/update
an existing site with mapping capabilities—such as address
geocoding, feature selection using spatial filters, and selective
visibility of layers based on scale.
• You’re a Java developer creating a standalone Java applica-
tion that allows people within/outside your organization to
browse maps.
• You’re designing a custom servlet for an Internet mapping
application and your custom business logic resides behind a
Web server.

INTRODUCING THE ARCIMS JAVA CONNECTOR 5


Java Connector Object Model and Tag Library
The Java Connector Object Model is a collection of server-side
JavaBeans that implement the ArcXML specification. You can
utilize the Object Model beans and their methods in your
application to implement map display functions; perform
rendering and symbology; add dynamic layers; and perform
feature/spatial queries, address geocoding, projections, and
metadata functions. See Chapter 3, ‘Java Connector Object
Model’, for more information.
The Java Connector Tag Library is a collection of custom JSP
tags built on the Java Connector Object Model. These tags
provide high-level access to the entire server-side Object Model
library. Web developers with little or no knowledge of Java can
now develop advanced mapping applications or integrate
mapping capabilities into existing applications using the JSP Tag
Library.
Applications developed using the JSP architecture encapsulate
the business logic—such as database access, security, and
transaction integrity—and isolate it from the underlying
complexity. See Chapter 4, ‘Java Connector Tag Library’, for more
information about the Tag Library and the various tags
supported.

6 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Information resources
About this book • Refer to the appendix, ‘Enabling authentication using the
ArcIMS Java Connector’ in ArcIMS Help to learn how to setup
This chapter introduces you to ArcIMS Java Connector and its the Java Connector to authenticate services using an HTTP,
capabilities. HTTPS, or TCP/IP connection.
Chapter 2 contains a tutorial and is usually the best place to start. • The ArcXML Programmer’s Reference Guide is included on
Chapter 3 describes the Java Connector Object Model. the CD. This guide explains how to customize map configuration
files.
Chapter 4 introduces you to the JSP Tag Library and provides an
alphabetical listing of all tags. Contacting ESRI
There is one appendix. It explains how you can migrate your
If you need to contact ESRI for technical support, see the support
AppServerLink applications to Java Connector.
card you received with ArcIMS or refer to ‘Technical support’
under ‘Getting started’ in the ‘Introduction’ chapter of ArcIMS
Other helpful documentation
Help. You can also visit ESRI on the Web at www.esri.com.
• For information on installing the ArcIMS Java Connector, see
the section ‘Step 3: Installing ArcIMS: ArcIMS Custom The ArcIMS Knowledge Base
Application Server Connectors’ in the ArcIMS Installation
The ArcIMS Knowledge Base is a technical support database
Guide.
containing:
• Refer to the JSP Samples Installation and Setup Guide
• Frequently Asked Questions
located at <ArcIMS Installation Directory>/Samples/Java/
jspSamples/readme_samples.htm for details on how to install and • ‘How To’ instructions
configure the JSP samples. • Troubleshooting tips
• For detailed information on the methods and classes in the • Error messages
ArcIMS Java Connector Object Model, see the javadoc-
generated HTML reference—ArcIMS Java Connector Object You can search the Knowledge Base by typing keywords or
Model API Specification, located at <ArcIMS Installation browsing through folders. You can access the ArcIMS
Directory>/Documentation/Java_Connector/api_reference.htm. Knowledge Base through ArcIMS Online by typing
http://arcimsonline.esri.com as the Web address.

INTRODUCING THE ARCIMS JAVA CONNECTOR 7


ESRI education solutions
ESRI provides educational opportunities related to geographic
information science, GIS applications, and GIS technology. You
can complete instructor-led courses and Web-based courses or
work through self-study workbooks. ESRI has education
solutions fitting every learning style and pocketbook. For more
information, go to www.esri.com.

8 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Getting started
IN THIS CHAPTER
2
This chapter will help you get started with your application development using
the Java Connector.
• Installing the Java Connector
The tutorial included later in this chapter moves you through the process of
• Java Connector samples creating a map and deploying it as a Web application. The application can be
generated by either using the beans from the Java Connector Object Model or
• Quick-start tutorial the JavaServer Pages (JSP) tags from the Tag Library.
You will need the following additional documents to get started,
• For information on installing the ArcIMS Java Connector, refer to the
ArcIMS Installation Guide.
• Refer to the JSP Samples Installation and Setup Guide located at
<ArcIMS Installation Directory>/Samples/Java/
readme_samples.htm for details on how to install and configure the JSP
samples.

9
Installing the Java Connector
You can install the Java Connector, associated samples, and
documents by performing a custom install from the ArcIMS CD.
For step-by-step instructions on installing the Java Connector,
see the section ‘Step 3: Install ArcIMS: ArcIMS custom
Application Server Connectors’ in the ArcIMS Installation
Guide.

Overview of installed components


The following are the key files that are copied into the <ArcIMS
Installation Directory>/Connectors/Java_Connector
folder after installing the Java Connector,
• arcims_jconnect.jar—contains the Object Model Java class
files.
• arcims_taglib.tld—the Tag Library Descriptor (TLD) file.
• Authenticate.properties—the Java Connector authentication
file.
• jsse.jar—dependent JAR file provided by Sun Microsystems,
Inc.
• jnet.jar—dependent JAR file provided by Sun Microsystems,
Inc.
• jcert.jar—dependent JAR file provided by Sun Microsystems,
Inc.
• sample_aimsacl.xml—a sample ACL file that can be renamed
and used for authentication.
Based on the custom install options you choose, additional
documents and samples will be copied into the <ArcIMS
Installation Directory>/Documentation and <ArcIMS
Installation Directory>/Samples folder respectively.

10 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Java Connector samples
The Java Connector samples are designed to introduce you to the Sample 1. Basic operations in a Map
various aspects and functionality supported by the Java
Sample 1.1: Displays a service with legend and list of layers.
Connector Object Model and Tag Library. The custom install
program copies the Java Connector samples into the <ArcIMS Sample 1.2: Toggles the visibility of layers in a service.
Installation Directory>/Samples/Java folder. These Sample 1.3: Zooms in/out and performs directional pan.
samples demonstrate specific functionality using the Object
Model beans and the JSP tags in the Tag Library. You can learn Sample 1.4: Changes the order of layers.
more about using them by modifying the samples and adding
Sample 2. Acetate layers
additional functionality.
Sample 2.1: Displays a Point, Line, Polygon, NorthArrow, and a
Object Model and JSP Tag Library samples ScaleBar as an acetate layer on a Map.
To view the list of samples and its source code, refer to the file
Sample 3. Dynamic data
index.htm and the folder ‘src’ within <ArcIMS Installation
Directory>Samples/Java/jspSamples directory Sample 3.1: Adds data from a shape workspace.
respectively. You can install the JSP samples as a separate Web Sample 3.2: Adds data from an image workspace.
application or as individual files. The advantage of configuring
JSP as a Web application is that it is self-contained—all the Sample 3.3: Adds data from an ArcSDE workspace.
dependent files are in one location. If you choose to configure
JSP as individual files, you must add the dependent files to your Sample 4. Query
class path. Sample 4.1: Selects features with buffer as spatial filter.
Note: The Java Connector samples were designed to run as Web Sample 4.2: Uses a line to select features.
applications.
Sample 4.3: Identifies features in a layer.
For detailed information on how to configure the JSP samples, see
the JSP Samples Installation and Setup Guide located at Sample 5. Renderers and Symbols
<ArcIMS Installation Directory>/Samples/Java/
readme_samples.htm. Sample 5.1: Demonstrates a simple Label Renderer.

The samples (both JavaBeans and Tag implementations) Sample 5.2: Demonstrates a simple Line Symbol.
demonstrate the following: Sample 5.3: Demonstrates a Gradient Fill Symbol.
Sample 5.4: Demonstrates a Hash Line Symbol.
Sample 5.5: Demonstrates a Value Map Renderer (range).
Sample 5.6: Demonstrates a Value Map Renderer (exact).

GETTING STARTED 11
Quick-start tutorial
This section introduces you to the key steps involved in creating • Create a subdirectory ‘classes’ under ‘arcims_tutorial/WEB-
a Web application using the Java Connector. During this tutorial, INF’ directory. The container will look in this directory for classes
you will learn how to: used in the Web application.
• Setup your development environment • Create a subdirectory ‘lib’ under ‘arcims_tutorial/WEB-INF’
• Create a Web application descriptor file—web.xml directory. The container will look in this directory for class
• Create a Web application by using the Object Model beans or libraries used in the Web application.
the Tag Library
Step 2: Creating the Web application descriptor
• Deploy your Web application file—web.xml
• Display your Map
In order for the Web server/servlet engine’s JSP container to
understand the tutorial application, you need to describe it. This
Step 1: Setting up your development environment
is done in a Web application descriptor file—web.xml, which
You need to setup the development environment before you start resides in the ‘WEB-INF’ directory of the application. This file
the tutorial. This tutorial will consist of an unpacked Web holds configuration information about your Web application.
application. In this section, you will create ‘web.xml’ and copy it into the
The file structure that holds the tutorial Web application should ‘WEB-INF’ directory. You will setup this file with minimum
look like this: configuration settings only. Refer to http://java.sun.com/j2ee/
dtds/web-app_2_2.dtd for more details.
1. Using a text editor, create a new file—web.xml—and save it in
‘/arcims_tutorial/WEB-INF/’directory. Enter the following
content.

<?xml version=”1.1" encoding=”UTF-8"?>

<!DOCTYPE web-app PUBLIC ‘-//Sun Microsystems,


• Create a new directory ‘arcims_tutorial’. Inc.//DTD Web Application 2.2//EN’ ‘http://
• Create a subdirectory ‘source’ under ‘arcims_tutorial’ java.sun.com/j2ee/dtds/web-app_2_2.dtd’>
directory. You will store content such as your JSP, HTML pages,
The first line defines this file as a version 1.1 XML file. The
text files, and images in this directory.
second line defines the format of the XML to conform to the Web
• Create a subdirectory ‘WEB-INF’ under ‘arcims_tutorial’ application 2.2 definitions and also where this definition can be
directory. The container will look in this directory for deployment found.
information about the Web application.

12 CUSTOMIZING ARCIMS—JAVA CONNECTOR


2. Continue to type the following: 1. Locate the files arcims_jconnect.jar, jsse.jar, jnet.jar, jcert.jar
under <ArcIMS Installation Directory>/Connectors/
<web-app> Java_Connector directory.
<display-name> ArcIMS Java </
display-name> 2. Copy these files to ‘/arcims_tutorial/WEB-INF/lib’ directory.
<description> ArcIMS Java Tutorial </
3. Create a file—map.jsp in ‘/arcims_tutorial/source/’ directory.
description>
This is your first JSP page using the Java Connector. Type the
</web-app>
following code into this file:
The lines above define the display name and the description of
the Web application. Most Web server/servlet engines will <jsp:useBean id=”connection”
class=”com.esri.aims.mtier.io.ConnectionProxy”
display this on deployment.
scope=”page”/>
3. Save and close web.xml.
<jsp:useBean id=”map”
Step 3: Creating a Web application class=”com.esri.aims.mtier.model.map.Map”
scope=”page”/>
In this section, you will learn how to create your Web application
by using the Java Connector Object Model beans or the custom The tag <jsp:useBean> instantiates an object identifier. In the
JSP Tag Library. above code, we instantiated the objects ‘connection’ and ‘map’ of
class ‘ConnectionProxy’ and ‘Map’ respectively. The scope of
Creating a Web application using the Object Model these objects was set as ‘page’.

The Java Connector Object Model is contained within a ‘Java 4. In map.jsp, type the following:
ARchive (JAR)’ file—arcims_jconnect.jar. There are three more <html>
dependent JAR files—jsse.jar, jnet.jar, and jcert.jar, which are <head><title>
provided by Sun Microsystems, Inc. The Java Connector uses ArcIMS Java Connector Tutorial
‘xerces 1.3.1’ for parsing XML. </title></head>
Note: For detailed information on the methods and classes in the <body>
ArcIMS Java Connector Object Model, see the Javadoc- The above lines start an HTML part of the JSP file, set its title,
generated HTML reference—ArcIMS Java Connector Object and open a body tag.
Model API Specification, located in <ArcIMS Installation
Directory>/Documentation/Java_Connector/
api_reference.htm.

GETTING STARTED 13
5. Set the connection information for the ConnectionProxy object <table border=’0’>
by including the following lines of codes in map.jsp: <tr><td>
<img src=<%=map.getMapOutput().getURL()%>
<% >
//set Connection information </td><td>
connection.setConnectionType(“tcp”); <img
connection.setHost(“localhost”); src=<%=map.getLegend().getLegendOutput().getURL()%>
connection.setPort(5300); >
</td></tr>
connection.setService(“SantaClara”);
</table>
The ConnectionProxy object is the entry point into the Object </body>
Model. The above code sets the ConnectionProxy’s type to TCP, </html>
host to localhost, port to 5300, and service to SantaClara.
The URL output generated by refreshing the map is used to
6. Set the properties of the map like width and height by adding display the map and legend.
the following lines of code in map.jsp:
8. Save and close your file.
//set map properties See ‘Step 4: Deploying your Web application’ to deploy your
map.setHeight(400); Web application.
map.setWidth(400);
map.setBackground(“220,165,63”);
Creating a Web application using the Tag Library
map.initMap(connection,750,false,false,false,false);
map.refresh(); The Java Connector Tag Library is a collection of custom JSP tag
%> elements. The Tag Library Descriptor (TLD) file is named as
The background color is set in RGB values. You can set ‘arcims_taglib.tld’.
additional properties to the Map object; only a few are set here. 1. Locate arcims_taglib.tld in <ArcIMS installation
The Map object is then initialized with the connection object and directory>/Connectors/Java_Connector directory and
with a dpi of 750. The envelope, renderers, recordset, and copy it into ‘/arcims_tutorial/WEB-INF/lib’ directory.
extensions are not initialized. The map is refreshed to create a 2. Open the file web.xml from ‘/arcims_tutorial/WEB-INF/’
URL output with the latest properties set on the Map object. directory and add the following lines above the tag </web-app>,
7. Continue to add the following lines of code in Map.jsp:

14 CUSTOMIZING ARCIMS—JAVA CONNECTOR


<taglib> <aims:httpConnection id=”myhttp” url=”http://
<taglib-uri>arcims_taglib</taglib-uri> localhost” />
<taglib-location>/WEB-INF/lib/
arcims_taglib.tld</taglib-location> <aims:mapService id=”santaclara”
</taglib> connectionId=”<%=myhttp%>” name=”SantaClara” />
‘arcims_taglib’ is the name by which the Tag Library will be 7. Continue to add the following:
accessed inside a JSP file. The tag <taglib-location> specifies the
actual location of the TLD file. <aims:map id=”mymap” legend=”mylegend”
serviceId=”<%=santaclara%>” width=”500"
3. Save and close web.xml. height=”500" />
4. Create a file called ‘maptag.jsp’ in the ‘/arcims_tutorial/source/’ The above line creates a Map object by passing a service object
directory. This is your first JSP using the Tag Library. Enter the as its parameter, which in turn holds the connection information.
following code in the file:
8. Continue to add the following:
<%@taglib uri=”arcims_taglib” prefix=”aims” %>
<table border=’0’ >
In order to use the Tag Library from a JSP file, the Tag Library has <tr><td>
to be referenced. The above line does this. The uri is the name <img src=<%=mymap%> >
specified in the file ‘web.xml’, the prefix ‘aims’ is used to fully </td><td>
<img src=<%=mylegend%> >
qualify the tags used and avoid conflicts if you are using more
</td>
than one tag library inside your JSP file. </tr>
5. Add the following code to maptag.jsp: </table>
</body>
<html> </html>
<head><title>ArcIMS JSP Connector Tag Library
Tutorial</title></head> The above lines set the map variable identifier and legend that
<body>
hold the URL path to the Map and Legend respectively.
9. Save and close maptag.jsp.
The above lines start the HTML part of a JSP file, set its title, and
open a body tag. See ‘Step 4: Deploying your Web application’ to deploy your
Web application.
6. Create an HTTP connection object and a service object by
adding the following lines:

GETTING STARTED 15
Step 4: Deploying your Web application • In the left panel under Servlets, click Configure and verify that
JSP10Servlet has been loaded.
In this section, refer to your platform, Web server, and servlet
engine combination for instructions on deploying your Web • In the left panel under Servlets, click Aliases and verify that
application. For more configurations, refer to ‘Step 3: Configuring there is an entry for *.jsp that points to JSP10Servlet.
your Web server and servlet engine’ section in the document JSP 2. Open ServletExec Admin.
Samples Installation and Setup Guide, located in <ArcIMS
3. In the left panel under Web Applications, click Configure.
Installation Directory>Samples/Java/
readme_samples file. 4. Click Add Web Application.
Note: 5. Choose an Application Name such as ‘ArcIMS Tutorial’.
1. Some Web server/servlet engines require you to package the 6. Enter a name for the URL Context Path. This is the name you
application into an archive (*.war) file before deploying. will use to run the samples (For example, ‘/tutorial/’).
2. The Web application name and virtual directory name used in Note: The context path—‘/tutorial/’ in this case—is case
this document is ‘tutorial’. You can change this name. sensitive. If you want to access ‘tutorial’ with mixed/upper case
names, you might want to create more than one Web application
Apache 1.3.x and Tomcat 3.2.x (for UNIX and Windows) with context path names such as ‘Tutorial’ or ‘TUTORIAL’
pointing to the same location ‘<full path to the arcims_tutorial
1. Copy the folder ‘/arcims_tutorial’ into <Jakarta-Tomcat
directory>’.
Installation Directory>/webapps directory.
2. Open <Apache installation directory>/conf/httpd.conf in a text 7. Enter the full path to arcims_tutorial directory under Location.
editor. 8. Restart both IIS and ServletExec.
3. Search for the alias section and add a new alias pointing to
IIS and Tomcat 3.2.x
‘arcims_tutorial’ directory.
Alias /tutorial ”<Full path to 1. Copy the folder ‘/arcims_tutorial’ into <Jakarta-Tomcat
arcims_tutorial directory>” Installation Directory>/webapps directory.
4. Save and close the file. 2. In the IIS Console, add a new virtual directory called tutorial.
5. Restart both Apache and Tomcat. To add virtual directories to IIS:
• Open the IIS Internet Service Manager.
IIS and ServletExec 3.1 or 4.0
• Under your localhost name, find the Default Web Site. Click to
1. Verify that ServletExec is configured for JSP by doing the highlight it.
following:
• Click Action in the toolbar.
• Open ServletExec via http://localhost/servlet/admin.

16 CUSTOMIZING ARCIMS—JAVA CONNECTOR


• From the dropdown menu, point to New and click Virtual • Click OK, click Save and Apply, and click OK.
Directory. The New Virtual Directory Wizard displays.
• Click Servers in the top navigation bar.
• For the alias, type a name such as tutorial and click Next.
• Click Manage.
• Click Browse to select the directory at <Full path to
• Click Java in the top navigation bar and verify that Enable
arcims_tutorial directory>.
Java Globally is checked.
• For IIS 4.0, check Allow Directory Browsing and click Finish.
• Click OK, click Save and Apply, and click OK.
• For IIS 5.0, check Browse and click Next. tutorial appears in
2. Open <iPlanet installation directory>\https-
the virtual directory list.
<localhost>.<domain>.com\config\web-apps.xml in a
3. Open the file uriworkermap.properties under <Jakarta- text editor.
Tomcat Installation
Directory>\conf\uriworkermap.properties add the
3. Scroll to the end of file and add the following lines before </
vs>:
entry below to the end of the file,
/tutorial/*=ajp12 <web-app uri=”/tutorial” dir=”<Full path to
Save and close the file. arcims_tutorial directory>” />

4. Restart both IIS and Tomcat. Note 1: Make sure you specify a valid directory path for web-app.
Invalid entries will prevent your iPlanet Web Server from starting.
iPlanet 6.0 Note 2: The context path—‘/tutorial/’ in this case—is case
1. Verify that iPlanet has JSP enabled and is pointing to the sensitive. If you want to access ‘tutorial’ with mixed/upper case
correct Java 2 SDK compiler by doing the following: names you might want to create more than one Web application
with context path names such as ‘Tutorial’ or ‘TUTORIAL’
• Open iPlanet Web Server Administration Server via http:// pointing to the same location ‘<Full path to arcims_tutorial
localhost:<port number>. Alternately, if you already
directory>’.
have iPlanet’s Web Server Administration Server open, select
Web Server Administration Server from the Server Manager 4. Restart the iPlanet Web Server.
menu at the top of your browser window.
Step 5: Displaying your Map
• Click Global Settings from the top navigation bar.
To display the Map that you created in this tutorial:
• In the left panel, click Configure JRE/JDK Paths.
1. Make sure your Web server/servlet engine and ArcIMS are
• Choose JDK.
running.
• Specify the Java 2 SDK path. For example, /<JDK
2. To display the Java Connector Object Model bean tutorial,
installation directory>/jdk1.3.x.
open the URL <http://localhost/tutorial/source/map.jsp> in your
Note: The libpath and classpath can be left blank.
Web browser.

GETTING STARTED 17
3. To display the Java Connector Tag Library tutorial, open the
URL <http://localhost/tutorial/source/maptag.jsp> in your Web
browser.
Congratulations! You have created your first Web application
using the Java Connector.

18 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Java Connector Object Model
IN THIS CHAPTER
3
The ArcIMS Java Connector Object Model is a collection of serverside
JavaBeans that implement the ArcXML specification. You can utilize these
• About the API Specification docu- beans and their methods in your application to implement map display
ment. functions, rendering and symbology; to add dynamic layers; to perform
feature/spatial queries, address geocoding, projections, and metadata; and to
• Supported development environ-
ments administer/authenticate services.

• Object model overview

19
About the API Specification document
The ArcIMS Java Connector Object Model API Specification document is a javadoc-generated HTML reference that is available as a
documentation option during a custom install of ArcIMS. The Application Programming Interface (API) Specification document
provides complete details on all packages, classes, interfaces, exceptions, and methods that are available in the Java Connector Object
Model.

How this document is organized


This API document has pages corresponding to the items in the navigation bar, described as follows.

Overview
The Overview page is the front page of this API document and provides a list of all packages with a summary for each.

20 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Package Section 3:
Each package has a page that contains a list of its classes and • Field Detail
interfaces, with a summary for each. This page can contain four • Constructor Detail
categories:
• Method Detail
• Interfaces (italic)
Each summary entry contains the first sentence from the detailed
• Classes description for that item. The summary entries are alphabetical,
• Exceptions while the detailed descriptions are in the order they appear in the
source code.
• Errors
Tree (Class Hierarchy)
Class/Interface
There is a Class Hierarchy page for all packages plus a hierarchy
Every class, interface, and exception in the object model has its
for each package. Each hierarchy page contains a list of classes
own separate page. Each of these pages has three sections
and a list of interfaces. The classes are organized by inheritance
consisting of a class/interface/exception description, summary
structure starting with java.lang.Object. The interfaces do
tables, and detailed member descriptions:
not inherit from java.lang.Object.
Section 1:
• When viewing the Overview page, clicking on ‘Tree’ displays
• Class inheritance diagram the hierarchy for all packages.
• Direct subclasses • When viewing a particular package, class, or interface page,
• All known subinterfaces clicking ‘Tree’ displays the hierarchy for only that package.

• All known implementing classes Deprecated API


• Class/Interface/Exception declaration The Deprecated API page lists all of the APIs that have been
• Class/Interface/Exception description deprecated. A deprecated API is not recommended for use,
Section 2: generally due to improvements, and a replacement API is usually
given. Deprecated APIs may be removed in future
• Inner Class Summary implementations.
• Field Summary
Index
• Constructor Summary
The Index contains an alphabetic list of all classes, interfaces,
• Method Summary
constructors, methods, and fields.

JAVA CONNECTOR OBJECT MODEL 21


Prev/Next
These links take you to the next or previous class, interface,
package, or related page.

Frames/No Frames
These links show and hide the HTML frames. All pages are
available with or without frames.

22 CUSTOMIZING ARCIMS—JAVA CONNECTOR


Supported development environments
The Java Connector Object Model beans can be used with many
of the integrated development environments (IDEs) available for
Java programmers including Borland’s JBuilder, Forte for Java,
and Oracle’s JDeveloper. Keep in mind, however, that if you are
using an IDE, the import and use of the Java Connector Object
Model beans can be IDE dependent. Refer to the documentation
provided by your chosen IDE for more information.
If you choose not to use an IDE but develop and compile your
applications using the command prompt, you need to ensure that
the references to arcims_jconnect.jar—the JAR file for the Java
Connector Object Model and other dependent JAR files (jsse.jar,
jnet.jar, and jcert.jar provided by Sun Microsystems)—are correct.

JAVA CONNECTOR OBJECT MODEL 23


Object model overview
The Java Connector Object Model beans are easy to use and associated with a username and password. The username and
customize. Several samples that use many of the JavaBeans in the password will be validated with the Access Control List (ACL),
object model ship with ArcIMS. For more information on these which can be file or JDBC based. See ‘Enabling Authentication
samples, refer to the section ‘Java Connector samples’ in Chapter using the Java Connector’ in ArcIMS Help for more information.
2, ‘Getting started’.
For detailed information on the methods and classes in the object
com.esri.aims.mtier.model.acetate
model, see the javadoc-generated HTML reference, ArcIMS Java This package contains ArcIMS acetate objects that are used for
Connector Object Model API Specification, located in: <ArcIMS rendering acetate symbology on a map. You can use the objects
Installation Directory>/Documentation/ defined in this package to:
Java_Connector/api_reference.htm. For additional
• Create map layout features such as north arrow, scale bar, and
information also refer to the ArcXML Programmer’s Reference
text objects.
Guide.
• Create and display geometric shapes such as line, point,
The Java Connector Object Model supports several packages.
polygon, hole, and ring.
Each package, in turn, supports several beans with similar/related
functionality as described below: • Perform spatial queries using the geometric shape objects
created.
com.esri.aims.mtier.io
com.esri.aims.mtier.model.admin
This package contains the ConnectionProxy object and
associated exceptions. This package supports several objects that implement an
ArcIMS/ArcSDE service and administers ArcSDE connections.
A ConnectionProxy object is the gateway to using the Java
Connector Object Model. This object and its methods are used An ArcSdeConnection object implements an object used to store
by client applications to establish communication with an ArcIMS ArcSDE connections.
Application Server. The client can choose to use an HTTP, An SdeServer object registers an ArcSDE service.
HTTPS, or TCP/IP connection to communicate with an ArcIMS
server. An SdeServerCollection object implements a collection of
ArcSDE servers that are administered by an ArcIMS Monitor.
com.esri.aims.mtier.model.auth An SdeStatus object represents the status of an ArcSDE
instance.
This package supports an Authenticate object which is used to
provide restricted access to services. This process is called A Server object implements a proxy object for a site monitor.
authentication. On initialization, this object reads the A ServerCollection represents a collection of server objects.
Authenticate.properties file and determines if the property
authenticate is set to True. If true, all client requests have to be A Service object defines an ArcIMS service.

24 CUSTOMIZING ARCIMS—JAVA CONNECTOR


A ServiceCollection object represents a collection of ArcIMS com.esri.aims.mtier.model.map.environment
service objects.
The objects in this package contain locale information for ArcIMS
A Site object represents the access point to a site and all services. This package includes an ImageLimit, Locale,
operations on that site. Separators, and UIFont object.
A VirtualServer object implements a proxy for a site’s virtual
server. com.esri.aims.mtier.model.map.layer
A VirtualServerCollection defines a collection of virtual servers. This package contains objects that represent different ArcIMS
layer types.
com.esri.aims.mtier.model.axl
An AcetateLayer object represents an ArcIMS acetate layer.
This package contains objects for handling ArcXML exceptions A FeatureLayer object represents an ArcIMS feature layer.
and other related utilities.
An ImageLayer object represents an ArcIMS image layer.
com.esri.aims.mtier.model.envelope A Layer object represents an abstract ArcIMS layer.
This package defines an Envelope object, which is used for
com.esri.aims.mtier.model.map.layer.geocode
setting extents of the map, setting spatial queries in a
FeatureLayer’s Filter object, and displaying the extents of This package contains objects that are used to perform
individual recordset results. geocoding operations.
An AddressMatchInputs object adds address values to process a
com.esri.aims.mtier.model.map
geocode request.
This package defines objects that represent the components of An AddressMatchResults object represents a collection of
an ArcIMS service. These objects are used extensively for map geocoded results objects.
creation, display, and interaction.
A Result object represents an individual result. This object is
A Layers collection defines a collection of layers associated with created after a geocode process and contains the score, value,
a service. and PointObject containing the resulting coordinates.
A Legend object represents a map’s legend and supports several
methods to manipulate legend-related properties . com.esri.aims.mtier.model.map.layer.query
A Map object represents the map to be displayed. This object This package supports objects that are used to perform queries,
supports methods for zooming, panning, setting transparency, for aggregating values based on spatial queries, setting the
and background color among many other functions. geometry of features, and creating shapes to perform spatial
selects.
A Buffer object is used to perform buffers against an ArcIMS

JAVA CONNECTOR OBJECT MODEL 25


service. This object defines several properties that are associated CalloutMarkerSymbol, ChartSymbol, HashLineSymbol,
with a buffer. GradientFillSymbol, and ShieldSymbol among several others.
A Filter object supports several methods and properties that are
required to perform queries, spatial queries, and buffers against a
com.esri.aims.mtier.model.map.output
specific ArcIMS service. This package supports individual output objects that specify and
A Geometry object supports a collection of points associated contain parameters that describe a response from an ArcIMS
with a given recordset. This object also contains methods for service.
creating Line, Polygon, and Ring objects. An ExtractOutput object supports parameters that describe an
A Records object contains a collection of recordset values. An extract response from an ArcIMS service.
instance of Records is created after a filter has been applied to a A LayoutOutput object is used in conjunction with the ArcIMS
FeatureLayer object. ArcMap Server. This object holds the output locations for the
A Recordset object contains a collection of Records, Geometry, associated layout file. The LayoutOutput object extends the
and Envelope objects associated with a specific query against a Output object.
layer. This object is created after a filter has been applied to a A LegendOutput object is used to set specific parameters when
FeatureLayer object. creating a legend image. It is also used for storing the location of
A Tabledesc object is created if the loadRecordset argument in the newly created legend image. The LegendOutput object
the Map.initMap method is set to True. This object supports extends the Output object.
several methods to get and set field names, field lengths, field A MapOutput object contains the output properties of a map
type, and field precision properties. image. It also holds the locations for generated map images. The
MapOutput object extends the Output object.
com.esri.aims.mtier.model.map.layer.renderer
An Output object represents an abstract output object.
This package implements a renderer object for each ArcIMS
ArcXML defined renderer. The renderers included in this package com.esri.aims.mtier.model.map.projection
are Exact, GroupRenderer, Range, Other, SimpleRenderer,
This package contains objects that are used to reproject the
ScaleDependentRenderer, SimpleLabelRenderer, ValueMap,
views of an ArcIMS service.
ValueMapRenderer, and ValueMapLabelRenderer.
A CoordSys object defines the projection coordinate system of a
com.esri.aims.mtier.model.map.layer.renderer.symbol layer.
The objects in this package represent ArcIMS symbols. These A Densify object sets the interval used for adding points to a
symbols help enhance the cartographic appeal of maps and layer. The process of data densification adds points to a layer
provide the ability to display more information within the limited before the layer is projected.
area of a map. The symbols included in this package are A FeatureCoordSys object represents the projection coordinate

26 CUSTOMIZING ARCIMS—JAVA CONNECTOR


system that layers in a service or a specific service are projected Java Connector Points object.
to. A DomToString object converts an XML document into a String
A FilterCoordSys object represents the current coordinate object.
system for layers in a service or a specific service. A DoubleConversion object provides simple utilities to convert
between double and string.
com.esri.aims.mtier.model.metadata
A FileUpLoad object is a utility that performs file upload with
This package contains objects that define metadata and multipart/form data.
implement a metadata document and its collection.
An InputStreamToString object converts an InputStream object
A Dataset object represents a metadata document being served. to a String object.
A DatasetCollection represents a collection of metadata A ToStringComparator object compares two objects using their
documents. toString() methods.
An Envelope object implements a wrapper class for a map
envelope. com.esri.aims.mtier.model.wmsmap
A GetProp object reads data from the properties file. This package supports objects that are associated with OGC’s
A User object defines a metadata user and supplies actions for Web Map Service (WMS) 1.1.0 Implementation Specification.
manipulating users.
com.esri.aims.mtier.model.workspace
com.esri.aims.mtier.model.metadata.publish This package contains objects representing the different ArcIMS
Supports objects that are used to publish data to a metadata workspaces available. These objects allow you to add dynamic
server. layers to your services from different data sources.
A Dataset object specifies a file to be added as a dynamic layer.
com.esri.aims.mtier.model.metadata.query An ImageWorkspace object specifies a workspace for image files.
This package supports objects that are used to query a metadata An SDEWorkspace object defines an ArcSDE data source.
server.
A ShapeWorkspace object defines a shapefile data source.
com.esri.aims.mtier.model.util
This object contains utility objects for performing tasks
associated with the Java Connector.
A Base64Encoder object defines a data encoder.
A CoordsToPoints object converts a string of coordinates to a

JAVA CONNECTOR OBJECT MODEL 27


Java Connector Tag Library
IN THIS CHAPTER
4
The ArcIMS Java Connector Tag Library is a collection of custom JavaServer
• Java Connector Tag Library
Pages (JSP) tags built on the Java Connector Object Model. These tags
provide high-level access to the entire server-side Object Model library. Web
developers with little or no knowledge of Java can now develop advanced
mapping applications or integrate mapping capabilities to their existing
applications using the Tag Library.
Samples that use the Tag Library are available through the custom install
process. See the section ‘Java Connector samples’ in Chapter 2, ‘Getting
started’, for more details.
The Metadata Explorer is a Web application that further demonstrates the
capabilities of the Java Connector Tag Library. This browser-based
application is available through the typical install of ArcIMS and is developed
using the JSP tags from the Tag Library. See Creating and Using Metadata
Services located in the <ArcIMS Installation Directory>/
Documentation folder for more details on the Metadata Explorer.
An alphabetical listing of JSP tags in the Java Connector Tag Library is
included in this chapter.

28
JSP Tag Library Conventions
The JSP Tag Library structure includes the tag name, attributes, and any nested tags.

Tag Name

JAVA CONNECTOR TAG LIBRARY 29


1. The name of the tag.
2. The group to which the tag belongs. The JSP Tag Library is divided into three general groups: mapping, administration, and metadata.
3. The opening tag starts with a less than symbol (<) and is followed by its name. Note that all tag names must be preceded by a prefix. The prefix used in
all the examples is "aims:". Tag names are case sensitive.
4. The opening tag ends with a greater than symbol (>).
5. The closing tag is similar to the opening element. It begins with the less than symbol and a forward slash (/) and is followed by the prefix and its name.
The tag ends with a greater than symbol.
6. If the tag includes any attributes, they are included after the opening tag.
7. Attributes are divided into three types: attributes that set values, attributes the return values, and attributes that pass objects.
8. All nested tags are inserted before the closing element.

Attributes

1. Attributes are case sensitive. If the attribute is required, it is bold. A definition of each attribute is found in the attribute table for the tag.
2. If an attribute has a defined list of valid values, all possible values are listed. Only one value can be used at a time. Attribute values are always placed
inside of double quotes (").
3. If the attribute has a default value, it is listed in brackets after the attribute list or type.
4. If an attribute does not have a list of known values, the value type is listed such as double, integer, and string.

30 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Nested tags

1. Nested tags are case sensitivie. If a nested tag is required, it is bold. Each nested tag is linked to the corresponding page describing that tag.
2. Some nested tags can be used multiple times. If this is the case, the letter "m" in parentheses (m) is in front of the tag.
3. In some cases, special instructions are given in brackets after the element. The most common scenario is when a group of nested tags is listed but only
one tag can be used. In this example, [Or] means to select one tag from the group. More details are given in the Restrictions section to explain special
instructions.

JAVA CONNECTOR TAG LIBRARY 31


acetateObject
Used in: mapping
Parent elements: aims:createLayer

<aims:acetateObject

Attributes that set values:

When using ArcMap Server:


units ="database | pixel" [database]

When using Image Server:


lower ="string" [1:1]
units ="database | pixel" [database]
upper ="string" [1:infinity]
>

<coordSys... />
<line... />
<northArrow... />
<point... />
<polygon... />
<scalebar... />
<text ... />

</aims:acetateObject >

Description:
Defines the scale thresholds and units of an object to be placed on an acetate layer.

Restrictions:
None

32 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Notes:
None

Attribute Descriptions for acetateObject:


Attribute Usage
lower Minimum scale to display Acetate Object using a relative scale such as 1:24000. Scale can also be calculated as the number of
map units per pixel.
units Determines how coordinates for the object are specified. Coordinates can be specified two ways:
• Database. Refers to positioning an object using x,y coordinates in the coordinate system of the ArcIMS service or
request. For example, if the service is in Robinson, then the coordinates for the object should also be in Robinson. If the
coordinates for the object are different from the coordinate system used in the service or request, then aims:coordSys
should be used.

<aims:acetateObject...>
<aims:coordSys.../>
...
</aims:acetateObject>
• Pixel. Refers to positioning an object using x,y coordinates in pixels. The pixels along the left edge of the map frame
have an x-coordinate of zero. The pixels along the bottom edge have a y-coordinate of zero. /UL>
upper Maximum scale to display Acetate Object using a relative scale such as 1:24000. Scale can also be calculated as the number of
map units per pixel.

Examples for acetateObject:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300"/>
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />

<aims:map id="myMap" serviceId="<%=myMapService%>" width="300" height="200" background="100,140,230"


transcolor="0,0,0">
<aims:createLayer layerId="LayerNorthArrow" name="AcetateLayer" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:northArrow x="50" y="50" type="3" shadow="230,230,230" />
</aims:acetateObject>

JAVA CONNECTOR TAG LIBRARY 33


<aims:acetateObject units="pixel">
<aims:line coords="50 10;250 10" >
<aims:hashLineSymbol color="0,0,0" lineThickness="3" tickThickness="3" transparency="0.5"
interval="16" width="16" type="foreground" antialiasing="false" overlap="true" />
</aims:line>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

34 Cu STOMIZING ARC IMS—JAVA CONNECTOR


addRelevance
Used in: metadata
Parent elements: None

<aims:addRelevance

Attributes that set values:


docId ="string"
relevance ="1 - 10"

Attributes that pass objects:


connectionId ="object"
service ="object"
>

No Child Elements
</aims:addRelevance >

Bold: Attribute or child element is required.

Description:
Sends a request to the server to increment a particular document's relevance.

Restrictions:
None

Notes:
None

Attribute Descriptions for addRelevance:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.

JAVA CONNECTOR TAG LIBRARY 35


Attribute Usage
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
relevance Value between 1 and 10 indicating the relative relevance of the document to the client. The value is added to the existing value
for a new relevance total.
service The name of the metadata service.

Examples for addRelevance:


Example 1: Send a request to the server to increment a particular document's relevance.
<aims:getSettings id="hostName" value="meta_host_name" />
<aims:getSettings id="portNumber" value="meta_port_number" />
<aims:getSettings id="serviceName" value="meta_service_name" />

<aims:tcpConnection id="myConnection" host="<%= hostName %>" port="<%= portNumber %>" debug="true" />

<% String docId = request.getParameter("docId"); %>

<aims:addRelevance relevance="4" connectionId="<%= myConnection %>" service="<%= serviceName %>" docId="<%=


docId %>" />

36 Cu STOMIZING ARC IMS—JAVA CONNECTOR


addressMatchInputs
Used in: mapping
Parent elements: aims:layer

<aims:addressMatchInputs

Attributes that set values:


maxCandidates ="integer" [20]
minScore ="0 – 100" [60]

Attributes that return values:


id ="string"
>

(m) <setInput... />

</aims:addressMatchInputs >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Reads in the address match inputs from the GET_GEOCODE request and sets a value for the matching ID.

Restrictions:
• AddressMatchInputs must be nested in a layer that contains a geocoding index.

Notes:
• LoadExtensions must be set to "true" in aims:mapService to read in the inputs.

JAVA CONNECTOR TAG LIBRARY 37


Attribute Descriptions for addressMatchInputs:
Attribute Usage
id Returns the AddressMatchInputs object.
maxCandidates Maximum number of returned candidates.
minScore Minimum score of returned candidates. If not included, all candidates with scores above 60 are returned. A candidate with a
score of 100 means a perfect match, and 0 means no match.

Examples for addressMatchInputs:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="brugge" debug="true" />

<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="geostreets" loadExtensions="true"


/>

<aims:map id="mapImage" serviceId="<%=myService%>" reset="false" >


<aims:layer layerId="0" >
<aims:addressMatchInputs id="myInputs" minScore="0" maxCandidates="100" >
<aims:setInput inputId="STREET" value="380 New York St" />
<aims:setInput inputId="ZONE" value="" />
<aims:setInput inputId="CROSSSTREET" value="" />
</aims:addressMatchInputs>
<table>
<aims:iterateAddressMatchInputs inputs="<%=myInputs%>" count="myCount" minScore="myMinScore"
maxCandidates="myMax" style="myStyle" >
<aims:getInputAttribute id="myDes" attribute="DESCRIPTION" />
<aims:getInputAttribute id="myId" attribute="ID" />
<aims:getInputAttribute id="myLabel" attribute="LABEL" />
<aims:getInputAttribute id="myType" attribute="TYPE" />
<aims:getInputAttribute id="myWidth" attribute="WIDTH" />
<tr><td>
<b>desc is: <%=myDes%></b><br>
id is: <%=myId%><br>
label is: <%=myLabel%><br>
type is: <%=myType%><br>

38 Cu STOMIZING ARC IMS—JAVA CONNECTOR


width is: <%=myWidth%>
</td></tr>
</aims:iterateAddressMatchInputs>

<tr><td>
<b>INPUT count is: <%=myCount%></b><br>
minScore is: <%=myMinScore%><br>
maxCandidates is: <%=myMax%><br>
style is: <%=myStyle%>
</td></tr>

<aims:iterateAddressMatchResults inputs="<%=myInputs%>" count="resultsCount" >


<aims:getResultAttribute id="myValue" attribute="VALUE" />
<aims:getResultAttribute id="myScore" attribute="SCORE" />
<aims:getResultAttribute id="myPoint" attribute="POINT" />
<tr><td>
<b>value is: <%=myValue%></b><br>
score is: <%=myScore%><br>
point is: <%=myPoint%>
</td></tr>
</aims:iterateAddressMatchResults>

<tr><td>
<br><b>RESULT count is: <%=resultsCount%></b>
</td></tr></table>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 39


adminServer
Used in: administration
Parent elements: None

<aims:adminServer

Attributes that set values:


action ="addContainer | removeContainer"
name ="string"
removeId ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


error ="string"
addedId ="string"
>

No Child Elements
</aims:adminServer >

Bold: Attribute or child element is required.

Description:
Administers the ArcIMS Spatial Servers for a server machine.

Restrictions:
None

Notes:
None

40 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for adminServer:
Attribute Usage
action Defines whether to add or remove an ArcIMS Spatial Server.
addedId Returns a string identifying the new ArcIMS Spatial Server name.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
name The name of the server machine to administer.
removeId The name of the ArcIMS Spatial Server to remove.

Examples for adminServer:


Example 1: Add and remove an ArcIMS Spatial Server.
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
username="admin"
password="admin"
/>

<aims:adminServer name="mymachine" action="addContainer" addedId="myId"


connectionId="<%=myhttpConnection%>" error="addError" />

<%=myId%>

<aims:adminServer name="mymachine" action="removeContainer" removeId="<%=myId%>"


connectionId="<%=myhttpConnection%>" error="removeError" />

JAVA CONNECTOR TAG LIBRARY 41


adminService
Used in: administration
Parent elements: None

<aims:adminService

Attributes that set values:


action ="start | stop | remove"
service ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


error ="string"
>

No Child Elements
</aims:adminService >

Bold: Attribute or child element is required.

Description:
Administers a service from a site.

Restrictions:
None

Notes:
• The service attribute can be retrieved from aims:getService, getServices, or createService. A Service or ServiceCollection object is returned.

42 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for adminService:
Attribute Usage
action Defines whether to start, stop, or remove the service.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
service The name of service to administer.

Examples for adminService:


Example 1: Stop, start or remove a service.
<aims:httpConnection
id="myhttpConnection"
url="http://brugge"
role="admin"
username="admin"
password="admin"
/>

<aims:getService id="myService" connectionId="<%=myhttpConnection%>" name="World" error="error1"/>

<aims:adminService service="<%=myService%>" connectionId="<=myhttpConnection%>" action="stop"


error="error2" />

<aims:adminService service="<%=myService%>" connectionId="<=myhttpConnection%>" action="start"


error="error3" />

<aims:adminService service="<%=myService%>" connectionId="<=myhttpConnection%>" action="remove"


error="error4" />

JAVA CONNECTOR TAG LIBRARY 43


arcMapService
Used in: mapping
Parent elements: None

<aims:arcMapService

Attributes that set values:


name ="string"
dpi ="1 - NNN"
outputType ="ai | bmp | emf | eps | jpg | pdf | png8 | png24"
password ="string"
username ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="string"
error ="string"
loadEnvelope ="true | false" [false]
loadExtensions ="not used"
loadLayout ="true | false"
loadRecordset ="true | false" [false]
loadRenderer ="not used"
>

<envelope... />

</aims:arcMapService >

Bold: Attribute or child element is required.

Description:
Reads initial values from an ArcMap Image Service such as envelopes, layout information, and database field names.

44 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Restrictions:
None

Notes:
• When using aims:envelope as a nested tag, the units are in page units rather than map units. This envelope is referencing an ArcMap layout rather than a
map.
• For reading initial values from an Image Service, see aims:mapService.

Attribute Descriptions for arcMapService:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
dpi Dots per inch. Used for calculating the correct scale thresholds for scale-dependent elements. The dpi value overrides the value
used in a service.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns a Data Frames Collection object.
loadEnvelope Loads individual layer envelopes from service.
loadExtensions Not used in this release of ArcIMS.
loadLayout Loads the layout information.
loadRecordset Loads individual layer recordsets from service.
loadRenderer Not used in this release of ArcIMS.
name ArcIMS service name.
outputType Output file type. Can be ai, bmp, emf, eps, jpg, pdf, png8 (8 bit), or png24 (24 bit).
password Password if authentication required.
username Username if authentication required.

JAVA CONNECTOR TAG LIBRARY 45


Examples for arcMapService:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:arcMapService id="myDataframeCollection" connectionId="<%=(myConnection)%>" name="serviceName"


loadLayout="true" error="myError"/>

<aims:iterateDataframe id="myMapObject" dataframeName="dfn"


dataframeCollection="<%=(myDataframeCollection)%>">

<b>Data Frame Name </b> <%=(dfn)%><br>


<aims:map id="myMap" serviceId="<%=(myMapObject)%>" width="600" height="300" />

<img src="<%=myMap%>" /><br>

</aims:iterateDataframe>

46 Cu STOMIZING ARC IMS—JAVA CONNECTOR


browse
Used in: metadata
Parent elements: None

<aims:browse

Attributes that set values:


batchSize ="integer"
docId ="string"
folderMask ="1 - 15" [15]
sort ="name | relevance | contenttype | localarea | globalarea" [name]
sort2 ="name | relevance | contenttype | localarea | globalarea"
startBatchAt ="0 - NNN" [0]
startResult ="integer" [0]
type ="children | parents | siblings | ancestors | descendants" [children]

Attributes that pass objects:


connectionId ="object"
service ="object"

Attributes that return values:


id ="object"
numResults ="integer"
totalResults ="integer"
>

No Child Elements
</aims:browse >

Bold: Attribute or child element is required.

Description:
Returns a subset of documents.

JAVA CONNECTOR TAG LIBRARY 47


Restrictions:
None

Notes:
None

Attribute Descriptions for browse:


Attribute Usage
batchSize The maximum number of results to return.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
DocId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
folderMask Specifies folder types to be returned in the response. The value of folderMask is an integer storing the sum of one or more of the
following values:
• 1 = Root document
• 2 = "Normal" folder
• 4 = Document
• 8 = Related Services folder
For example, use "4" to return documents only. Use "15" (1 + 2 + 4 + 8) to return all types of folders. The different values are:
• 1 = Root document only (1)
• 2 = "Normal" folders only (2)
• 3 = Root document and "normal" folders (1 + 2)
• 4 = Documents only (4)
• 5 = Root document and documents (1 + 4)
• 6 = "Normal" folders and documents (2 + 4)
• 7 = Root document, "normal" folders, and documents (1 + 2 + 4)
• 8 = Related Services folder only (8)
• 9 = Root document and Related Services folder (1 + 8)
• 10 = "Normal" folders and Related Services folder (2 + 8)
• 11 = Root document, "normal" folders, and Related Services folder (1 + 2 + 8)

48 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
• 12 = Documents and Related Services folder (4 + 8)
• 13 = Root document, documents, and related Services folder (1 + 4 + 8)
• 14 = "Normal" folders, documents, and related Services folder (2 + 4 + 8)
• 15 = Root document, "normal" folders, documents, and Related Services folder (1 + 2 + 4 + 8)
id Returns a DataCollection object.
numResults Returns a value containing the number of results returned in this batch.
service The name of the metadata service.
sort Preference for ordering results. "Name" orders the results alphabetically. "Relevance" lists results from highest to lowest
relevance. "Contenttype" sorts and groups results by content type. "Localarea" lists results by area in ascending order.
"Globalarea" lists results by area in descending order.
sort2 Sorts search results that were batched using startresult and maxresults. "Name" orders the results alphabetically. "Relevance"
lists results from highest to lowest relevance. "Contenttype" sorts and groups results by content type. "Localarea" lists results by
area in ascending order. "Globalarea" lists results by area in descending order.
startBatchAt By default, all records meeting the search criteria are returned starting with record 0. This attribute allows a specified record as
the start record.
startResult Returns a value containing the starting index of the batched results.
totalResults Returns a value containing the total number of results found.
type The type of documents to browse for.

Examples for browse:


Example 1: Returns a subset of documents.
<aims:getSettings id="hostName" value="meta_host_name" />
<aims:getSettings id="portNumber" value="meta_port_number" />
<aims:getSettings id="serviceName" value="meta_service_name" />

<aims:tcpConnection id="myConnection" host="<%= hostName %>" port="<%= portNumber %>" debug="true" />

<% String docId = request.getParameter("docId"); %>

JAVA CONNECTOR TAG LIBRARY 49


<%-- Retrieve a handle to the children of the specified document --%>
<aims:browse
id="browseChildren"
connectionId="<%= myConnection %>"
service="<%= serviceName %>"
docId="<%= docId %>"
folderMask="2" />

<%-- Iterate through the list of children, printing out for each their name --%>
<% if (browseChildren.size() > 0) { // print selected folder's children %>

<aims:iterateMetadata iterate="<%= browseChildren %>" size="mySize">

<% if (!printedHeader) { %>


<span class="explorerText">Categories</span>
<ul>
<% printedHeader = true; %>
<% } %>

<aims:datasetProperty id="theName" value="NAME" />


<aims:datasetProperty id="theDocId" value="DOCID" />

<li><a href="JavaScript:browseFolder('<%= URLEncoder.encode(theName) %>','<%=


URLEncoder.encode(theDocId) %>');"><%= theName %></a></li>

</aims:iterateMetadata>

<% } %>

50 Cu STOMIZING ARC IMS—JAVA CONNECTOR


buffer
Used in: mapping
Parent elements: aims:filter

<aims:buffer

Attributes that set values:


distance ="double"
bufferUnits ="decimal_degrees | miles | feet | kilometers | meters"
performBuffer ="true | false"
project ="true | false" [true]
>

<bufferLayer... />
<targetLayer... />

</aims:buffer >

Bold: Attribute or child element is required.

Description:
Builds a buffer region around selected features.

Restrictions:
• Aims:filter used in aims:buffer cannot contain another buffer inside.
• Known limitation with the Java Connector. When using a target layer, the target layer cannot be the same layer as the buffer layer. This limitation is
with the Java Connector and not with ArcXML. Using ArcXML, the target and buffer layers can be the same.
• Known limitation with the Java Connector. A spatial filter cannot be buffered. For example, a point, line, polygon, or envelope generated on-the-fly
cannot be buffered. This limitation is with the Java Connector and not with ArcXML. Using ArcXML, a spatial filter can be buffered.
• Known limitation with the Java Connector Tag Library. When using subfields in aims:filter, the subfields are ignored when using aims:buffer. All
fields are returned.

JAVA CONNECTOR TAG LIBRARY 51


• Known issue with the Java Connector. When using a buffer layer and a target layer, the symbol tags for drawing features are opposite of how they
would be used in ArcXML. The symbol used inside aims:bufferLayer is the symbol used for the target layer. The symbol used inside aims:targetLayer is
the buffer symbol.

Notes:
• Aims:buffer can be used two ways:
To buffer a region around one or more selected features, use aims:buffer inside
aims:filter. In this example, the Colorado River is buffered.

<aims:layer visible="true" layerId="Rivers">


<aims:filter whereExpression="NAME = 'Colorado">
<aims:buffer distance="80" bufferUnits="MILES"
performBuffer="true">
<aims:bufferLayer>
<aims:simplePolygonSymbol fillColor="255,255,0"
fillTransparency=".3" boundaryColor="255,255,0"
boundaryWidth="2" />
</aims:bufferLayer>
</aims:buffer>
</aims:filter>
</aims:layer>
To select features from another layer that fall within the buffer region, use
aims:targetLayer as a nested tag. In this example, cities within 80 miles of the Colorado
River are selected. Note that the symbol tags for drawing the buffer around the river and
for highlighting the cities are opposite of how they would be used in ArcXML. In other
words, the symbol used with aims:bufferLayer is the symbol used for the target layer.
The symbol used with aims:targetLayer is the symbol for drawing the buffer around the
river.

<aims:layer visible="true" layerId="Rivers">


<aims:filter whereExpression="NAME = 'Colorado'">
<aims:buffer distance="80" bufferUnits="MILES"
performBuffer="true">
<aims:bufferLayer>
<aims:simpleMarkerSymbol color="255,255,0"
width="6" />

52 Cu STOMIZING ARC IMS—JAVA CONNECTOR


</aims:bufferLayer>
<aims:targetLayer targetLayerId="Cities" />
<aims:simplePolygonSymbol fillcolor="255,255,0"
filltransparency=".3" boundarycolor="255,255,0"
boundarywidth="2"/>
</aims:targetLayer>
</aims:buffer>
</aims:filter>
</aims:layer>
• When using subfields in aims:filter, the subfields apply to the target layer if a target layer is present. If no target layer is present, the subfields apply to
the buffer layer. The field #SHAPE# or #ALL# must be included in the subfields list.
• A buffer distance of 0 can be used on polygon features. If a buffer distance of 0 is used with line or point features, no data is returned.
• Buffer results may be inaccurate on unprojected data. It is recommended to project data before applying a buffer.

Attribute Descriptions for buffer:


Attribute Usage
bufferUnits Specifies units that apply to buffer.
distance Buffer area width in buffer units.
performBuffer Performs a buffer operation on the given request.
project Generated buffers are projected if aims:featureCoordSys is in the request. If project is set to "false", the buffer is not projected.

Examples for buffer:


Example 1: When displaying a buffer on a map.
<%@page contentType="text/html"%>
<%@taglib uri="arcims_taglib.tld" prefix="aims" %>
<html>
<head><title>buffFeature.jsp</title></head>
<body>

<%--Buffer Calabazas River in SantaClara 2 miles.--%>

<aims:tcpConnection id="mytcpConnection" host="localhost" port="5300" debug="true" />


<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="SantaClara"

JAVA CONNECTOR TAG LIBRARY 53


loadEnvelope="ture" loadExtensions="true" loadRecordset="true" loadRenderer="true" />
<aims:map id="myMap" serviceId="<%=myMapService%>" width="500" height="350"
envelope="myExtent" legend="myLegend" extract="true" bufferImage="true"
bufferRegion="true" createMap="true">
<aims:envelope minx="-122.121" miny="37.203" maxx="-121.895" maxy="37.466" />
<aims:layer visible="true" layerId="3"> <%--ID 3 is rivers layer.--%>
<aims:filter whereExpression="NAME = 'CALABAZAS CREEK'">
<aims:buffer distance="3" bufferUnits="MILES" performBuffer="true">
<aims:bufferLayer>
<aims:simplePolygonSymbol fillColor="255,255,0" fillTransparency="0.3"
fillType="HORIZONTAL"/>
</aims:bufferLayer>
</aims:buffer>
</aims:filter>
</aims:layer>
</aims:map>

<img src="<%=myMap%>" >


</body>
</html>

Example 2: When displaying a buffer on a map along with selected features in the target layer.
<%@page contentType="text/html"%>
<%@taglib uri="arcims_taglib.tld" prefix="aims" %>
<html>
<head><title>buffFeature.jsp</title></head>
<body>

<%--Buffer Belgium 100 miles and select all the cities within.--%>

<aims:tcpConnection id="mytcpConnection" host="localhost" port="5300" debug="true" />


<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="basicworld"
loadEnvelope="ture" loadExtensions="true" loadRecordset="true" loadRenderer="true" />
<aims:map id="myMap" serviceId="<%=myMapService%>" width="500" height="350"
envelope="myExtent" legend="myLegend" extract="true" bufferImage="true"
bufferRegion="true" createMap="true">

54 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:envelope minx="0.933" miny="47.129" maxx="8.608" maxy="54.764" />
<aims:layer visible="true" layerId="1"> <%--ID 1 is countries layer.--%>
<aims:filter relation="area_intersection">
<aims:buffer distance="100" bufferUnits="MILES" performBuffer="true">
<aims:bufferLayer>
<aims:simpleMarkerSymbol color="255,0,0" type="star" width="20" />
</aims:bufferLayer>
<aims:targetLayer targetLayerId ="2" > <%--ID 2 is cities layer--%>
<aims:simplePolygonSymbol fillColor="255,255,0" fillType="HORIZONTAL"/>
</aims:targetLayer>
</aims:buffer>
<aims:envelope minx="4.68" miny="50.34" maxx="5.46" maxy="50.86" />
</aims:filter>
</aims:layer>
</aims:map>

<img src="<%=myMap%>" >


</body>
</html>

Example 3: When displaying a map and attributes of the target layer.


<%@taglib prefix="aims" uri="arcims_taglib.tld" %>
<html>
<head>
<title>ArcIMS JSP Connector - Buffer</title>
</head>
<body>
<%
int i=0;
String featureCount = "0";
%>
<aims:tcpConnection id="myConnection" host="Kabilan" port="5300"/>
<aims:mapService id="myMapService" connectionId="<%=(myConnection)%>" name="SantaClara" loadEnvelope="ture"
loadExtensions="true" loadRecordset="true" loadRenderer="true"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" envelope="myEnvelope" legend="myLegend" extract="true"
width="500" height="350" bufferImage="true" bufferRegion="true" >

JAVA CONNECTOR TAG LIBRARY 55


<aims:separators ts="," cs=" " />
<aims:layer layerId="4" visible="true">
<aims:filter whereExpression="NAME = 'STEVENS CREEK'" >
<aims:buffer distance="5" bufferUnits="Miles" performBuffer="true">
<aims:targetLayer targetLayerId="6" >
<aims:simplePolygonSymbol transparency="0.5" fillType="" fillTransparency="0.5"
fillColor="255,255,0" boundaryColor="0,0,255"/>
</aims:targetLayer>
<aims:bufferLayer>
<aims:simpleMarkerSymbol width="25" color="0,255,255" type="star"/>
</aims:bufferLayer>
</aims:buffer>
</aims:filter>
<aims:recordset>
<table border="1"><tr>
<aims:iterateTableDesc fieldName="fName" fieldType="fType" fieldPrecision="fPrec" fieldLength="fLen">
<td bgcolor="#ffe6a6"><%=(fName)%></td>
</aims:iterateTableDesc>
</aims:recordset>
</tr><tr>
<aims:recordset>
<aims:iterateRecordset recordsetCount="myCount" recordLength="recLength" fieldValue="fValue">
<%
if (i % (Integer.parseInt(recLength)) == 0) {
%>
</tr><tr><td><%=(fValue)%></td>
<%
}else{
%>
<td><%=(fValue)%></td>
<%
}
i++;
featureCount = myCount;
%>
</aims:iterateRecordset>
</aims:recordset>
</table><br>

56 Cu STOMIZING ARC IMS—JAVA CONNECTOR


There are <font color="red"><%=featureCount%> </font>cities within 5 miles buffer of Stevens Creek.
</aims:layer>
</aims:map>
<center><img src="<%=(myMap)%>"/></center>
</body>
</html>

JAVA CONNECTOR TAG LIBRARY 57


bufferLayer
Used in: mapping
Parent elements: aims:buffer

<bufferLayer >
No Attributes

<gradientFillSymbol... /> [Or]


<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<truetypeMarkerSymbol... /> [Or]

</aims:bufferLayer >

Description:
Main tag for setting up buffer layer properties.

Restrictions:
• Only one symbol can be used per request.

Notes:
None

Examples for bufferLayer:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>

58 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300" bufferImage="true"
bufferRegion="true">
<aims:layer layerId="6" visible="true">
<aims:filter whereExpression="NAME='San Jose'">
<aims:buffer distance="15" bufferUnits="Miles" performBuffer="true" >
<aims:targetLayer targetLayerId="5" />
<aims:simplePolygonSymbol fillTransparency="1.0" fillType="HORIZONTAL" boundaryColor="0,0,0"
fillColor="0,0,0"/>
</aims:targetLayer>
<aims:bufferLayer>
<aims:simpleMarkerSymbol type="STAR" width="20" color="255,0,255" />
</aims:bufferLayer>
</aims:buffer>
</aims:filter>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 59


calloutMarkerSymbol
Used in: mapping
Parent elements: aims:exact aims:other aims:range aims:simpleLabelRenderer

<aims:calloutMarkerSymbol

Attributes that set values:


antialiasing ="true | false" [false]
backColor ="0,0,0 - 255,255,255" [255,255,255]
boundaryColor ="0,0,0 - 255,255,255" [0,0,0]
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [12]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
interval ="0 - NNN" [10]
outline ="0,0,0 - 255,255,255"
shadow ="0,0,0 - 255,255,255"
transparency ="0.0 - 1.0" [1.0]
>
No Child Elements
</aims:calloutMarkerSymbol >

Description:
Creates a callout box around each label.

Restrictions:
• This symbol only works with point layers.
• Outline and glowing should not be used together; use one or the other.
• Not valid with ArcMap Server.
Notes:
None

60 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for calloutMarkerSymbol:
Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
backColor Background color using RGB values.
boundaryColor Boundary color using RGB values.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.
fontSize Font size.
fontStyle Font style.
glowing Glow color around text using RGB values.
interval Distance between point and callout box; smaller number brings box closer to point.
outline Outline color using RGB values.
shadow Shadow color using RGB values.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.

Examples for calloutMarkerSymbol:


Example 1:
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="0" visible="true">
<aims:simpleLabelRenderer field="AREA">
<aims:calloutMarkerSymbol font="Times New Roman" fontStyle="italic" fontSize="24" fontColor="0,0,255"
glowing="255,0,0" shadow="0,0,50" backColor="0,255,0" interval="10" boundaryColor="255,255,0"
transparency="0.8" antialiasing="false" />
</aims:simpleLabelRenderer>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 61


chartSymbol
Used in: mapping
Parent elements: aims:exact aims:other aims:range aims:simpleLabelRenderer

<aims:chartSymbol

Attributes that set values:


antialiasing ="true | false" [false]
maxSize ="1 - NNN"
maxValue ="1 - NNN"
minSize ="1 - NNN"
minValue ="1 - NNN"
mode ="pie | bar" [pie]
outline ="0,0,0 - 255,255,255" [none]
shadow ="0,0,0 - 255,255,255"
size ="1 - NNN"
sizeField ="string"
transparency ="0.0 - 1.0" [1.0]
>

(m) <chartValue... />

</aims:chartSymbol >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Symbolizes features with bar or pie diagrams.
Although chart symbols draw on the map, no information about the chart symbols is displayed in the legend. ArcIMS 4 does not support
displaying chart values in the legend.

62 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Restrictions:
• The size of a chart can be determined in one of three ways:
1. Using the size attribute.
2. Using the sizeField attribute.
3. Using the minSize, maxSize, minValue, and maxValue attributes.

One of the three options must be used or no charts are drawn. Size ranks first in priority, and it takes precedence over the other attributes even if they are
included. SizeField is second in priority, and it takes precedence over the other attributes if size is not present. MinSize, maxSize, minValue, and
maxValue rank third in priority and are acknowledged only when size and sizeField are not present.
• Not valid with ArcMap Server.

Notes:
• A field listed in aims:chartSymbol sizeField must also be listed in aims:simpleLabelRenderer field or aims:valueMapLabelRenderer labelField.
• The attributes minSize and maxSize determine the minimum and maximum size of a chart, respectively. For each feature, the size of the chart is relative
to other features based on the minimum and maximum values. These values are set using minValue and maxValue.

If a feature has a value less than or equal to minValue, then the chart is drawn at minSize. If a feature has a value greater than or equal to maxValue, then
the chart is drawn at maxSize. In the following example, the values are based on population. If a feature has a population less than or equal to 10,000,
then the size of the chart is 10 pixels. If the feature has a population greater than or equal to 200,000, then the size of the chart is 50 pixels.

<aims:chartSymbol minSize="10" minValue="10000" maxSize="50" maxValue="200000" >

All other features are assigned a chart size between 10 and 50 pixels based on population. A feature with a population of 100,000 will have a chart
approximately 30 pixels in size. A feature with a population of 1,000,000 is assigned a chart size of 50 pixels since that is the maximum size allowed
using maxSize.
• If the size assigned to a chart is very large, the chart may not display. If you find that no charts are displaying, try a smaller chart size.

Attribute Descriptions for chartSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
maxSize Maximum size of chart if size or sizeField is not used.
maxValue Maximum value that corresponds to the maximum chart size in maxSize.

JAVA CONNECTOR TAG LIBRARY 63


Attribute Usage
minSize Minimum size of chart if size or sizeField is not used.
minValue Minimum value that corresponds to the minimum chart size in minSize.
mode Type of chart: pie or bar.
outline Outline color of charts using RGB values.
shadow Shadow color using RGB values.
size Size of charts. All charts are the same size.
sizeField The field in the database containing the size of the chart. The field can be in the layer table or in a joined table.
• For shapefiles with no joined tables, the field can be referenced using the short format.
sizeField="AREA"
• For shapefiles with joined tables, the name of the joined table must be included along with the field.
sizeField="JOINEDTABLE.AREA"
• For ArcSDE layers without joined tables, the field can be referenced using the short format.
sizeField="AREA"
The full long name can also be used.
sizeField="ARCSDENAME.TABLE.AREA"
• For ArcSDE layers with joined tables, joined fields must be referenced using the full long format.
sizeField="ARCSDENAME.TABLE.AREA"
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.

Examples for chartSymbol:


Example 1:
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="0" visible="true">
<aims:simpleLabelRenderer field="AREA">
<aims:chartSymbol>
<aims:chartValue lookUpField="AREA" />
</aims:chartSymbol>
</aims:simpleLabelRenderer>
</aims:layer>
</aims:map>

64 Cu STOMIZING ARC IMS—JAVA CONNECTOR


chartValue
Used in: mapping
Parent elements: aims:chartSymbol

<aims:chartValue

Attributes that set values:


lookUpField ="string"
color ="0,0,0 - 255,255,255" [0,0,0]
lower ="integer"
upper ="integer"
value ="integer"
>

No Child Elements
</aims:chartValue >

Bold: Attribute or child element is required.

Description:
Sets which fields are used in pie and bar diagrams.

Although chart symbols draw on the map, no information about the chart symbols is displayed in the legend. ArcIMS 4 does not support
displaying chart values in the legend.

Restrictions:
• The attribute lookUpField is not required when value is used. It is required in all other cases.
• Not valid with ArcMap Server.

Notes:
• All fields listed in aims:chartValue lookUpField must also be listed in aims:simpleLabelRenderer field or aims:valueMapLabelRenderer labelField.

JAVA CONNECTOR TAG LIBRARY 65


• The attributes lower and upper are used together to change the color of a chart segment depending on the value for a feature. For example, a segment
might be blue for population less than 1,000,000 and red for population greater than 1,000,000. For each range, a new aims:chartSymbol should be used
for referencing the same lookUpField such as in the following example:
<aims:simpleLabelRenderer field="POP1999" >
<aims:chartSymbol size="30" transparency="1.0" >
<aims:chartValue lookUpField="POP1999" color="0,0,255" lower="0" upper="1000000" />
<aims:chartValue lookUpField="POP1999" color="255,0,0" lower="1000001" upper="100000000" />
</aims:chartSymbol>
</aims:simpleLabelRenderer>
• The attribute value is used to change the color of a chart segment depending on user-assigned integer values. All values within the aims:chartSymbol
group are a ratio of the sum of the values. For example, assume two aims:chartValue tags are used to build a chart, and the values are 14018000 and
15743000. The sum of these values is 29761000. Therefore, the size of the first chart segment is 14018000 / 29761000, or 47 percent of the chart. The
second segment is 53 percent.

In the following example, values were calculated ahead of time for populations under 30 and 30 and over for California. These two values were then
assigned to two aims:chartValue tags. The aims:valueMapLabelRenderer labelField must be present even though it is not used. For the string to parse
properly, a valid field name in labelField must be included. If aims:simpleLabelRenderer were used, field would be used instead. Again, a valid field
name must be included. In aims:chartValue, no lookUpField is needed.
<aims:valueMapLabelRenderer lookUpField="STATE_NAME" labelField="POP1999" >
<aims:exact value="California">
<aims:chartSymbol size="50" >
<aims:chartValue color="255,0,0" value="14018000" />
<aims:chartValue color="0,0,255" value="15743000" />
</aims:chartSymbol>
</aims:exact>
</aims:valueMapLabelRenderer>

• The lookUpField order must be the same order as fields listed in aims:simpleLabelRenderer field or aims:valueMapLabelRenderer labelField.

66 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for chartValue:
Attribute Usage
Color Color used for segment of pie or bar chart using RGB values.
lookUpField Lookup field for chart segment. The field can be in the layer table or a joined table.

• For shapefiles with no joined tables, the field can be referenced using the short format.
lookUpField="AREA"
• For shapefiles with joined tables, the name of the joined table must be included along with the field.
lookUpField="JOINEDTABLE.AREA"
• For ArcSDE layers without joined tables, the field can be referenced using the short format.
lookUpField="AREA"
The full long name can also be used.
lookUpField="ARCSDENAME.TABLE.AREA"
• For ArcSDE layers with joined tables, joined fields must be referenced using the full long format.
lookUpField="ARCSDENAME.TABLE.AREA"

Lower Used together with upper to determine the minimum value for drawing a chart segment.
upper Used together with lower to determine the maximum value for drawing a chart segment.
value Used to change the color of a chart segment depending on user-assigned integer values. All values within the aims:chartSymbol
group are a ratio of the sum of the values.

Examples for chartValue:


Example 1:
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="0" visible="true">
<aims:simpleLabelRenderer field="AREA">
<aims:chartSymbol>
<aims:chartValue lookUpField="AREA" />
</aims:chartSymbol>
</aims:simpleLabelRenderer>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 67


coordSys
Used in: mapping
Parent elements: aims:acetateObject aims:createLayer aims:getRasterInfo

<aims:coordSys

Attributes that set values:

When using ArcMap Server:


id ="integer"
string ="string"

When using Image Server:


datumTransformId ="integer"
datumTransformString ="string"
id ="integer"
string ="string"
>

No Child Elements
</aims:coordSys >

Description:
Defines the projection coordinate system of a layer. Aims:coordSys cannot be used to project a layer; its purpose is to provide the metadata for the layer.
aims:featureCoordSys and aims:filterCoordSys are used to project the layers to a specified projection.

Restrictions:
• Must use either id or string, but not both.
• For datum transformations either datumTransformId or datumTransformString is used, but not both.
• In ArcMap Image Services, datumtransformid or datumtransformstring are not valid.

68 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Notes:
• For a complete list of supported IDs and definition strings, see:
o Projected Coordinate Systems Listing [Sorted by projection ID] [Sorted by name]
o Geographic Coordinate Systems Listing [Sorted by projection ID] [Sorted by name]
o Datum Transformation Listing [Sorted by projection ID] [Sorted by name]
• When using definition strings, the quotes in the string must be changed to &quot; so the ArcIMS Spatial Server can interpret the string correctly. For
example, the definition string for World Mollweide is:

PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIME
M["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0],PARAMETER["False_
Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1]]

Once the quotes have been changed, the string looks like this:

PROJCS[&quot;World_Mollweide&quot;,GEOGCS[&quot;GCS_WGS_1984&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS
_1984&quot;,6378137,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0],UNIT[&quot;Degree&quot;,0.017453292519943295]],PROJECTION[
&quot;Mollweide&quot;],PARAMETER[&quot;False_Easting&quot;,0],PARAMETER[&quot;False_Northing&quot;,0],PARAMETER[&quot;Centra
l_Meridian&quot;,0],UNIT[&quot;Meter&quot;,1]]
• The attributes datumTransformId and datumTransformString are used when datum transformation information needs to be included. Only datum
transformations to and from WGS 1984 are supported.
o When these attributes are used with aims:coordSys and aims:filterCoordSys, the datum transformation is from a non-WGS 1984 datum to
WGS 1984. For example, Pulkovo_1942_To_WGS_1984 (datumtransformid="8157") transforms data from Pulkovo 1942 to WGS 1984.
o When these attributes are used with aims:featureCoordSys, the datum transformation is from WGS 1984 to a non-WGS 1984 datum. In the
above example, the datum transformation is from WGS 1984 to Pulkovo 1942.
• When using aims:coordSys in an acetate layer, it should be placed inside acetateObject rather than aims:createLayer.
• aims:coordSys can be used to designate the current projection of an image. Image layers can be projected along with feature and acetate layers.
• aims:coordSys is not needed if no datum transformation information is needed for the layer and:
o A *.prj file is available for a shapefile.
o A *.prj file is available for a coverage in ArcSDE for Coverages.
o A spatial references table is used in ArcSDE.

Datum transformation information is not included in *.prj files and spatial reference tables. Therefore, aims:coordSys must be included if a datum
transformation is needed.
• If a layer does not project, double-check that a *.prj file or spatial reference table exists for the layer. If not, aims:coordSys must be included.

JAVA CONNECTOR TAG LIBRARY 69


Attribute Descriptions for coordSys:
Attribute Usage
datumTransformId Datum transformation ID.
datumTransformString Datum transformation definition string.
id Projected or geographic coordinate system ID.
string Projected or geographic coordinate system definition string.

Examples for coordSys:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="imageServiceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">

<aims:getRasterInfo id="myRaster" layerId="0" x="1099.067" y="1349.42">


<aims:coordSys id="4326" />
</aims:getRasterInfo>

<aims:iterateRasterInfo rasterInfo="<%=(myRaster)%>" rasterId="id" number="no" value="val">


<b>Raster Id = </b> <%=(id)%>
<b>Number = </b> <%=(no)%>
<b>Value = </b> <%=(val)%><br>
</aims:iterateRasterInfo>
</aims:map>

70 Cu STOMIZING ARC IMS—JAVA CONNECTOR


createDocument
Used in: metadata
Parent elements: None

<aims:createDocument

Attributes that set values:


name ="string"
content ="liveData | downloadableData | offlineData | staticMapImage | document | application | geographicService | clearinghouse | unknown"
documentContent ="string"
folder ="true | false" [false]
maxx ="double"
maxy ="double"
minx ="double"
miny ="double"
onlink ="string"
parentDocId ="string"
private ="true | false" [false]
server ="string"
service ="string"
serviceType ="metadata | image | feature | wms"
thumbnail ="string"
Attributes that pass objects:
docId ="object"
Attributes that return values:
id ="object"
>
No Child Elements
</aims:createDocument >

Bold: Attribute or child element is required.

Description:
Publishes a metadata document from a client to the server.

JAVA CONNECTOR TAG LIBRARY 71


Restrictions:
None

Notes:
• The Document object returned by aims:createDocument can be used in aims:publishDocument and aims:deleteDocument.

Attribute Descriptions for createDocument:


Attribute Usage
content The values for this attribute correspond to the content types listed in the drop-down comb box of the Metadata Explorer.

Tag Attribute Value Combo Box Content


liveData Live Data and Maps

downloadableData Downloadable Data


offlineData Offline Data
staticMapImage Static Map Images

documents Other Documents


application Applications
geographicService Geographic Services

clearinghouse Clearinghouses

docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
documentContent The content of the XML document associated with this dataset as a string.
folder Determines whether document represents a folder. Use "false" if the document does not contain other documents. Use "true" if
the document represents a folder.
id Returns the Document object.
maxx Maximum x-coordinate in map units.

72 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
maxy Maximum y-coordinate in map units.
minx Minimum x-coordinate in map units.
miny Minimum y-coordinate in map units.
name Name that identifies the dataset corresponding to the document.
onlink A string identifying the location of the dataset corresponding to the document.
parentDocId Unique string for identifying a document belonging to the parent name and parent owner.
private Determines whether document is viewable for all users. Use "false" if the document is viewable by all users. Use "true" when the
document is viewable only by the document owner.
server The URL of the Web server containing data or metadata associated with the document, for example,
http://mymachine.domain.com.
service The name of the ArcIMS service containing data or metadata associated with the document.
serviceType Type of ArcIMS service.
thumbnail URL of the thumbnail image.

Examples for createDocument:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" username="publish"
password="publish" />

<aims:getUUID id="myUUID" connectionId="<%=(myConnection)%>" service="serviceName" />


<%
String docId = myUUID.elementAt(0).toString();
%>

<aims:createDocument id="myDocument" docId="<%=(docId)%>" name="Document" folder="true" />

<aims:publishDocument connectionId="<%=(myConnection)%>" dataset="<%=(myDocument)%>" service="serviceName"


/>

JAVA CONNECTOR TAG LIBRARY 73


createLayer
Used in: mapping
Parent elements: aims:map

<aims:createLayer

Attributes that set values:


layerId ="string"
type ="shape | sde | acetate | image"
name ="string"
visible ="true | false" [true]
>

Nested tag for defining an acetate object:


<acetateObject... />

Nested tag for referencing a workspace:


<dataset... />

Nested tags for defining a renderer:


<groupRenderer... /> [Or]
<scaleDependentRenderer... /> [Or]
<simpleLabelRenderer... /> [Or]
<simpleRenderer... /> [Or]
<valueMapLabelRenderer... /> [Or]
<valueMapRenderer... /> [Or]

Nested tags for defining a workspace:


<imageWorkspace... /> [Or]
<sdeWorkspace... /> [Or]
<shapeWorkspace... /> [Or]

Nested tags for identifying the coordinate system of the layer:


<coordSys... />
<densify... />

74 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Nested tags for showing a subset of data:
<displayFeatures... />
<filter... />

</aims:createLayer >

Bold: Attribute or child element is required.

Description:
Adds a dynamic layer to a map.

Restrictions:
• Only one renderer and/or one workspace as a subtag of aims:createLayer may be used.

Notes:
• To add a shapefile, image, or ArcSDE layer, <MAP dynamic="true" > must be set in the map configuration file.

Attribute Descriptions for createLayer:


Attribute Usage
layerId Unique ID for a layer. The ID can be any combination of alpha and numeric characters.
name Layer name. Can be an alias.
type Specifies layer type. Use "featureclass" for shapefiles and ArcSDE vector layers. Use "image" for raster image files, GRIDs, and
ArcSDE raster layers. Use "acetate" for adding graphics on top of the map.
visible Specifies layer visibility.

Examples for createLayer:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" />

<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="mexico" />

JAVA CONNECTOR TAG LIBRARY 75


<aims:map id="mapImage" serviceId="<%=myService%>" width="200" height="200" >

<aims:createLayer layerId="111" type="acetate" visible="true">


<aims:acetateObject units="pixel">
<aims:scalebar x="10" y="10" fontSize="5" barWidth="100" mapUnits="decimal_degrees" scaleUnits="miles"
distance="10.0" barTransparency="1" />
</aims:acetateObject>
</aims:createLayer>

</aims:map>

76 Cu STOMIZING ARC IMS—JAVA CONNECTOR


createService
Used in: administration
Parent elements: None

<aims:createService

Attributes that set values:


configContents ="string | InputStream | ByteArray"
configFile ="string"
name ="string"
virtualServer ="string"
virtualServerType ="FeatureServer | ImageServer | MetadataServer"
encode ="true | false" [false]
imageType ="jpg | gif | png | png8 | bmp" [jpg]
ouputDir ="string"
outputCleanup ="integer" [10]
outputURL ="string"
pixelCount ="double" [480000]
start ="true | false" [false]
virtualServerVersion ="ArcMap" [""]

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
error ="string"
>

No Child Elements
</aims:createService >

Bold: Attribute or child element is required.

JAVA CONNECTOR TAG LIBRARY 77


Description:
Creates an ArcIMS service.

Restrictions:
• GIF format is not supported as an output format with the ArcMap Server. GIF format can be used with the Image Server.

Notes:
None

Attribute Descriptions for createService:


Attribute Usage
configContents Sets the contents of the configuration file.
configFile The location of the configuration file for this service.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
encode If "true", sets the encoding of the configuration contents to base64.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns the Service object created.
imageType Defines the type of image output for a given service. GIF format is not valid with ArcMap Image Services.
name The name of the service to be created.
ouputDir Sets the output directory for image, extract, and other services that output files.
outputCleanup The cleanup interval for files generated by service.
outputURL Sets the output URL for image, extract, and other services that output files.
pixelCount Represents the maximum number of pixels allowed in a map image. The calculation is made by multiplying the width times the
height. For example, an image 400 x 600 in size contains 240000 pixels.
start If "true", starts the service after it is created.
virtualServer The name of the Virtual Server associated with this service.
virtualServerType The type of virtual server.
virtualServerVersion Sets the version string for the Virtual Server.

78 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for createService:
Example 1: Using fileUpload bean (as implemented in Web Administrator).
<jsp:useBean id="TheBean" scope="page" class="com.esri.aims.mtier.model.util.FileUpload" />

<%
TheBean.doUpload(request);
String name = TheBean.getFieldValue("name");
String vserver = TheBean.getFieldValue("vserver");
if (description==null) description = "";
String outfile = TheBean.getFieldValue("outfile");
if (outfile==null) outfile = "";
String outurl = TheBean.getFieldValue("outurl");
if (outurl==null) outurl = "";
String imagetype = TheBean.getFieldValue("imagetype");
if (imagetype==null) imagetype = "jpeg";
String pixelcount = TheBean.getFieldValue("pixelcount");
if (pixelcount==null) pixelcount = "4";
int pixel = (Integer.parseInt(pixelcount) * 262144);
String pixelStr = Integer.toString(pixel);
String cleanupStr = TheBean.getFieldValue("cleanup");
if (cleanupStr==null) cleanupStr = "0";

String configFile = TheBean.getFilepath() + TheBean.getFilename();


InputStream configStream = TheBean.getUploadedFileAsStream();
%>

<html>
<head>
<title>Adding Service - Administrator</title>
</head>

<body bgcolor="#336699" text="White" link="#000099" vlink="#000099" alink="#999999" >


<div align="center"><font face="Arial,Helvetica,sans-serif"><b>

<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"

JAVA CONNECTOR TAG LIBRARY 79


debug="true"
role="admin"
username="myUsername"
password="myPassword"
/>

<aims:createService id="myService" connectionId="<%=myhttpConnection%>"


name="<%=name%>"configFile="<%=configFile%>" configContents="<%=configStream%>"
virtualServer="<%=vserver%>" virtualServerType="<%=vsType%>" virtualServerVersion="<%=vsVersion%>"
imageType="<%=imagetype%>" outputCleanup="<%=cleanupStr%>" outputDir="<%=outfile%>" outputURL="<%=outurl%>"
pixelCount="<%=pixelStr%>" encode="<%=doEncode%>" error="myError" start="true" />
<%

//
if (TheBean.getUploadedFile().length()>0) {
} else { %>
Unable to upload file.

<% } %>

80 Cu STOMIZING ARC IMS—JAVA CONNECTOR


createVirtualServer
Used in: administration
Parent elements: None

<aims:createVirtualServer

Attributes that set values:


containers ="string, string, ..."
name ="string"
type ="FeatureServer | ImageServer | MetadataServer"
access ="private | public" [public]
description ="string" [""]
threadsForContainers ="integer, integer, .." [2,2, ..]
version ="ArcMap | """ [""]

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="string"
error ="string"
>

No Child Elements
</aims:createVirtualServer >

Bold: Attribute or child element is required.

Description:
Creates a virtual server.

Restrictions:
None

JAVA CONNECTOR TAG LIBRARY 81


Notes:
• The attributes containers and threadForContainers have a one-to-one correlation within the comma-delimited lists. The order of items should be the
same in both lists.

Attribute Descriptions for createVirtualServer:


Attribute Usage
access Determines whether public or private access is allowed to this Virtual Server.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
containers A comma-delimited list of ArcIMS Spatial Servers to add to this Virtual Server.
description The Virtual Server description.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns the VirtualServer object created.
name The name of the new Virtual Server.
threadsForContainers The comma-delimited list of number of instances (threads) to associate with each container listed in the container attribute. If the
number of threads is not specified, the default is 2.
type The type of Virtual Server to be created.
version The Virtual Server version.

Examples for createVirtualServer:

Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>
<aims:createVirtualServer id="myNewServer" connectionId="<%=myhttpConnection%>" name="ImageServerArcMap2"
type="ImageServer" version="ArcMap" containers="mymachine_1,mymachine_2,mymachine_3"

82 Cu STOMIZING ARC IMS—JAVA CONNECTOR


threadsForContainers="2,3,4" error="myError" />

<aims:iterateVirtualServers virtualServers="<%=myNewServer%>" count="serverCount" >


<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

JAVA CONNECTOR TAG LIBRARY 83


dataset
Used in: mapping
Parent elements: aims:createLayer

<aims:dataset

Attributes that set values:


name ="string"
type ="point | line | polygon | image"
workspace ="string"
>

No Child Elements
</aims:dataset >

Bold: Attribute or child element is required.

Description:
Defines the dataset used in the layer.

Restrictions:
None

Notes:
• There are five different ways to access images and GRIDs as detailed in the table below.

Image Access Method Workspace Location DATASET Layer Name


Specify by name. Use aims:imageWorkspace; attribute directory Name of image including its extension.
points to location of specified image.

Use all images in a directory. Images in the same Use aims:imageWorkspace; attribute directory Use *ImageDirectory for the name:
directory automatically tile if they use the same points to location of the group of images. name="*ImageDirectory"
coordinate projection and are drawn when they are
within the extent requested.

84 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Image Access Method Workspace Location DATASET Layer Name
Use an ArcView image catalog. Use aims:imageWorkspace; attribute directory Name of the image catalog DBF file. For
points to location of catalog, not images. instance, if catalog is named imagecat.dbf, use
name="imagecat.dbf".
Add a GRID. Use aims:imageWorkspace. A GRID has two Name of directory that contains GRID data; for
directories: one for the GRID data and one for the a GRID named Blizzard, use name="blizzard".
INFO files. Both these directories should be
grouped together under a parent directory. The
directory attribute points to the parent directory
above the GRID and INFO directories. A *.clr file
can be included to color the GRID. This file
should have the same name as the GRID and be
included in the parent directory above the INFO
and GRID directories.

Use an image in ArcSDE. Use aims:sdeWorkspace. Name is the full ArcSDE name including the
field name where the image resides. In this
example, "REDLANDS" is the field where the
image resides:
RASTER.IMAGES.REDLANDS.

Attribute Descriptions for dataset:


Attribute Usage
name For shapefiles, use the name of the data file without an extension such as STATES. For ArcSDE, use the full name of the layer
such as DATA.STATES. For images, refer to the table in the Notes section.
type Source layer feature type.
workspace References the workspace name where the data resides.

JAVA CONNECTOR TAG LIBRARY 85


Examples for dataset:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">


<aims:createLayer layerId="topoq" type="shape" name="topoquad" visible="true" >
<aims:simpleRenderer >
<aims:simpleLineSymbol color="0,255,0" width="1" />
</aims:simpleRenderer>
<aims:shapeWorkspace name="workspace1" directory="C:\\ArcIMS\\AXL\\TutorialData\\SantaClara"
featureClass="line" />
<aims:dataset name="sc_topoq24" type="polygon" workspace="workspace1" />
</aims:createLayer>
</aims:map>

<img src="<%=(myMap)%>" />

86 Cu STOMIZING ARC IMS—JAVA CONNECTOR


datasetProperty
Used in: metadata
Parent elements: aims:iterateMetadata

<aims:datasetProperty

Attributes that set values:


value ="THUMBNAIL | NAME | GND | URL | ONLINK | OWNER | SERVER | SERVICE | SERVICETYPE | TIMESTAMP | DOCID |
ENVELOPE | MINX | MINY | MAXX | MAXY | PARENT | FOLDER | CONTENT | INDEXSTATUS | CHILDREN | PRIVATE | REFCOUNT |
UPDATED"
dataset ="string"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:datasetProperty >

Bold: Attribute or child element is required.

Description:
Used to get individual items from the results of searching or browsing the metadata repository.

Restrictions:
• The attribute dataset is not required when nested inside aims:iterateMetadata.

Notes:
• Column names added through RESPONSE_COLUMN in the map configuration file become "custom attributes" in aims:datasetProperty. For example,
if you include RESPONSE_COLUMN columnname="service_running", then in addition to the existing attributes in aims:datasetProperty, a new value
named SERVICE_RUNNING can be specified in the aims:datasetProperty value attribute.

<aims:datasetProperty id="service_running" value="SERVICE_RUNNING" />

JAVA CONNECTOR TAG LIBRARY 87


Attribute Descriptions for datasetProperty:
Attribute Usage
dataset The metadata document to retrieve the information from.
id Returns the value of the property specified in the value attribute.
value The name of the document property to retrieve.

Examples for datasetProperty:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300"/>

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="serviceName" sort="name"


operator="and">
<aims:documentInfo name="Parent" />
</aims:search>

<h1>Search Result Size : <%=(searchResults.size())%></h1>

<aims:iterateMetadata iterate="<%=searchResults%>" size="mySize" >


<aims:datasetProperty id="myDocId" value="DOCID" />
Document Id : <%=(myDocId)%><br>
<aims:datasetProperty id="myFolder" value="FOLDER" />
Folder : <%=(myFolder)%><br>
<aims:datasetProperty id="myUpdated" value="UPDATED" />
Updated : <%=(myUpdated)%><br>
</aims:iterateMetadata>

88 Cu STOMIZING ARC IMS—JAVA CONNECTOR


deleteDocument
Used in: metadata
Parent elements: None

<aims:deleteDocument

Attributes that set values:


docId ="string"
service ="string"

Attributes that pass objects:


connectionId ="object"
>

No Child Elements
</aims:deleteDocument >

Bold: Attribute or child element is required.

Description:
Deletes a metadata document from the metadata repository.

Restrictions:
• This element can be used only by the owner established in aims:createDocument. Any other user will get an error message.

Notes:
None

Attribute Descriptions for deleteDocument:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.

JAVA CONNECTOR TAG LIBRARY 89


Attribute Usage
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
service The name of the metadata service containing the document to delete.

Examples for deleteDocument:


Example 1: Deletes a metadata document from the metadata repository.
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" username="publish"
password="publish" />

<aims:deleteDocument connectionId="<%=(myConnection)%>" docId="{d78914f0-1a61-11d6-bd72-f713332c6e33}"


service="serviceName" />

90 Cu STOMIZING ARC IMS—JAVA CONNECTOR


densify
Used in: mapping
Parent elements: aims:createLayer

<aims:densify

Attributes that set values:


tolerance ="double"
>

No Child Elements
</aims:densify >

Bold: Attribute or child element is required.

Description:
The process of data densification adds virtual points to a layer before the layer is projected.

Restrictions:
None

Notes:
• Using aims:densify in a request can slow down the ArcIMS Spatial Server noticeably. Use only when features are missing from one or more layers in a
requested image, usually around the periphery. It is better to start with a large number for tolerance. A guideline is to start with a value about 20 to 30
percent of the distance between the minimum and maximum x-coordinates of the current map extent.
• The units for tolerance are the same as the units for the layer. For example, if the layer is in feet, the tolerance distance is in feet.
• Needed only if a layer is going to be projected. If the layer is in the same projection as the service, aims:densify does not need to be used.

Attribute Descriptions for densify:


Attribute Usage
tolerance Defines distance (tolerance) between points and is applied on geometry before projecting takes place.

JAVA CONNECTOR TAG LIBRARY 91


Examples for densify:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">

<aims:createLayer layerId="topoq" type="shape" name="topoquad" visible="true" >


<aims:coordSys id="26744" />
<aims:densify tolerance="100" />

<aims:shapeWorkspace name="workspace1" directory="C:\\ArcIMS\\AXL\\TutorialData\\SantaClara"


featureClass="line" />
<aims:dataset name="sc_topoq24" type="polygon" workspace="workspace1" />
<aims:simpleRenderer >
<aims:simpleLineSymbol color="255,0,250" width="12" />
</aims:simpleRenderer>
</aims:createLayer>

</aims:map>
<img src="<%=(myMap)%>" />

92 Cu STOMIZING ARC IMS—JAVA CONNECTOR


displayFeatures
Used in: mapping
Parent elements: aims:createLayer aims:layer

<aims:displayFeatures

Attributes that set values:


expression ="string"
zoomToFeatures ="true | false" [false]
>

<gradientFillSymbol... /> [Or]


<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<truetypeMarkerSymbol... /> [Or]

</aims:displayFeatures >

Bold: Attribute or child element is required.

Description:
Selects and zooms to a specified feature or group of features on the map.

Restrictions:
• Only one symbol can be used at a time.

Notes:
None

JAVA CONNECTOR TAG LIBRARY 93


Attribute Descriptions for displayFeatures:
Attribute Usage
expression Expression to query for the desired features.
zoomToFeatures Specifies whether to zoom to the selected features.

Examples for displayFeatures:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=(myMapService)%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

<aims:layer layerId="4" visible="true">


<aims:displayFeatures expression="PLACENAME = 'Asia'" zoomToFeatures="true">
<aims:gradientFillSymbol startColor="255,255,255" finishColor="0,0,0" />
</aims:displayFeatures>
</aims:layer>

</aims:map>

94 Cu STOMIZING ARC IMS—JAVA CONNECTOR


documentInfo
Used in: metadata
Parent elements: aims:nestedSearch aims:search

<aims:documentInfo

Attributes that set values:


name ="string"
owner ="string"
>

No Child Elements
</aims:documentInfo >

Description:
Specifies the name and/or owner of a document in the metadata repository allowing searches for all documents with a specific name or all documents
owned by a certain user.

Restrictions:
None

Notes:
None

Attribute Descriptions for documentInfo:


Attribute Usage
Name Name that identifies the dataset corresponding to the document.
Owner Name identifying the owner of the metadata document.

JAVA CONNECTOR TAG LIBRARY 95


Examples for documentInfo:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" username="publish"
password="publish" />

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="serviceName" sort="name"


operator="and">

<aims:documentInfo name="Parent" />

</aims:search>

<h1>Search Result Size : <%=(searchResults.size())%></h1>

96 Cu STOMIZING ARC IMS—JAVA CONNECTOR


envelope
Used in: mapping
Parent elements: aims:arcMapService aims:filter aims:map

<aims:envelope

Attributes that set values:


maxx ="double"
maxy ="double"
minx ="double"
miny ="double"
>

No Child Elements
</aims:envelope >

Bold: Attribute or child element is required.

Description:
Defines the extent of a map.

Restrictions:
None

Notes:
• When using aims:envelope as a nested tag in aims:arcMapService, the units are in page units rather than map units. This envelope is referencing an
ArcMap layout rather than a map.

Attribute Descriptions for envelope:


Attribute Usage
maxx Maximum x-coordinate in map or page units.
maxy Maximum y-coordinate in map or page units.

JAVA CONNECTOR TAG LIBRARY 97


Attribute Usage
minx Minimum x-coordinate in map or page units.
miny Minimum y-coordinate in map or page units.

Examples for envelope:


Example 1: When using page units referencing an ArcMap layout.
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:arcMapService id="myDataframeCollection" connectionId="<%=(myConnection)%>" name="multidf" dpi="0"


loadLayout="true" error="myError">
<aims:envelope minx="10" miny="10" maxx="15" maxy="15" />
</aims:arcMapService>

<aims:getLayout id="layoutURL" value="LAYOUTURL" dataframeCollection="<%=(myDataframeCollection)%>" />


<img src="<%=(layoutURL)%>" />

Example 2: When using map units.


<aims:tcpConnection id="myTCPConnection" host="myMachine"port="5300" debug="true"/>
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" name="serviceName"/>
<aims:map id="myMapURL" serviceId="<%=myService%>">
<aims:envelope minx="-120.0" miny="35.0" maxx="-90.0" maxy="60.0" />
</aims:map>
<img src="<%=(myMapURL)%>" />

98 Cu STOMIZING ARC IMS—JAVA CONNECTOR


exact
Used in: mapping
Parent elements: aims:valueMapLabelRenderer aims:valueMapRenderer

<aims:exact

Attributes that set values:


label ="string"
method ="IsExact | isContained" [IsExact]
value ="string, numeric, or date"
>

When parent element is aims:valueMapLabelRenderer:


<calloutMarkerSymbol... /> [Or]
<chartSymbol... /> [Or]
<rasterShieldSymbol... /> [Or]
<shieldSymbol... /> [Or]
<textSymbol... /> [Or]

When parent element is aims:valueMapRenderer:


<gradientFillSymbol... /> [Or]
<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<trueTypeMarkerSymbol... /> [Or]

</aims:exact >

Description:
Used with value maps for matching exact values within a specified field in the database.

JAVA CONNECTOR TAG LIBRARY 99


Restrictions:
• Not valid with ArcMap Server.

Notes:
• If there are leading or trailing blanks in a field value, they will be trimmed before a comparison is made. For example, a field value of " Hello " is
interpreted as "Hello".

Attribute Descriptions for exact:


Attribute Usage
label Label for legend.
method Refers to the way a value in the data field is compared to the exact value. Use "isExact" for an exact match. Use "isContained" to
search for the value anywhere in a string. String comparisons are case sensitive.
value Values used for matching records in a selected field. They can be a numeric, string, or date value. Multiple values can be
grouped together for one exact category. The default separator between values is a semicolon. To use another separator, use
aims:separators.

Examples for exact:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="350">
<aims:layer layerId="0" visible="true" >
<aims:valueMapRenderer lookUpField="TRACT">
<aims:exact label="Tract#5121" value="5121" >
<aims:simplePolygonSymbol fillColor="255,0,0" fillTransparency="1.0"/>
</aims:exact>
<aims:exact label="Tract#511898" value="511898" >
<aims:simplePolygonSymbol fillColor="0,255,0" fillTransparency="1.0"/>
</aims:exact>
<aims:other label="other">
<aims:simplePolygonSymbol fillColor="0,0,255" fillTransparency="1.0"/>
</aims:other>
</aims:valueMapRenderer>

100 Cu STOMIZING ARC IMS—JAVA CONNECTOR


</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 101


extractOutput
Used in: mapping
Parent elements: aims:map

<aims:extractOutput

Attributes that set values:


baseURL ="string"
name ="string"
path ="string"
url ="string"

Attributes that return values:


file ="string"
>

No Child Elements
</aims:extractOutput >

Description:
Defines a pathname and URL for extracted ZIP files.

Restrictions:
• ExtractOutput works with paired attributes. If one of the attributes is used, its pair is also required. The attribute pairs are listed in the table below.
Attribute Paired Attribute Filename Assignment

path baseURL ArcIMS assigns random filename.


name url User assigns a filename.

Notes:

102 Cu STOMIZING ARC IMS—JAVA CONNECTOR


• If aims:extractOutput is used, the output files are not automatically deleted by ArcIMS Tasker. In order for the files to be deleted, the taskfile property
must be set in tasker.properties. For information on setting this property, see the ArcIMS Help.

Attribute Descriptions for extractOutput:


Attribute Usage
baseURL Paired with path. URL of output directory if default filename is generated by ArcIMS. Do not include a filename.
file Full pathname and filename for location of ZIP file generated by the ArcIMS Spatial Server.
name Paired with url. User assigns an output ZIP filename. Only filenames with a *.zip extension are valid. Use full pathname along
with the filename. The filename must match the filename used in url. UNC pathnames are valid
(\\myComputer\arcims \output\myfile.zip).
path Paired with baseURL. Directory to output ZIP file generated by Extract Server. Do not include the filename. UNC pathnames are
valid (\\myComputer\arcims \output).
url Paired with name. URL of output ZIP file. Include filename as part of URL. The filename must match the filename used in
name.

Examples for extractOutput:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" />
<aims:map id="myMapURL" serviceId="<%=myService%>" service="world" legend="myLegend" >
<aims:extractOutput name="C:/Netscape/Server4/docs/output/map.zip" url="http://mymachine/output/map.zip"
/>
</aims:map>

<img src="<%=myMapURL%>" />

JAVA CONNECTOR TAG LIBRARY 103


featureCoordSys
Used in: mapping
Parent elements: aims:map

<aims:featureCoordSys

Attributes that set values:


datumTransformId ="integer"
datumTransformString ="string"
id ="integer"
string ="string"
>

No Child Elements
</aims:featureCoordSys >

Description:
The projection coordinate system to which layers in an ArcIMS service are projected.

Restrictions:
• Must use either id or string, but not both.
• For datum transformations either datumTransformId or datumTransformString is used, but not both.
• In ArcMap Image Services, datumtransformid or datumtransformstring are not valid.

Notes:
• For a complete list of supported IDs and definition strings, see:
o Projected Coordinate Systems Listing [Sorted by projection ID] [Sorted by name]
o Geographic Coordinate Systems Listing [Sorted by projection ID] [Sorted by name]
o Datum Transformation Listing [Sorted by projection ID] [Sorted by name]

104 Cu STOMIZING ARC IMS—JAVA CONNECTOR


• When using definition strings, the quotes in the string must be changed to &quot; so the ArcIMS Spatial Server can interpret the string correctly. For
example, the definition string for World Mollweide is:

PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIME
M["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0],PARAMETER["False_
Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1]]

Once the quotes have been changed, the string looks like this:

PROJCS[&quot;World_Mollweide&quot;,GEOGCS[&quot;GCS_WGS_1984&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS
_1984&quot;,6378137,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0],UNIT[&quot;Degree&quot;,0.017453292519943295]],PROJECTION[
&quot;Mollweide&quot;],PARAMETER[&quot;False_Easting&quot;,0],PARAMETER[&quot;False_Northing&quot;,0],PARAMETER[&quot;Centra
l_Meridian&quot;,0],UNIT[&quot;Meter&quot;,1]]
• The attributes datumTransformId and datumTransformString are used when datum transformation information needs to be included. Only datum
transformations to and from WGS 1984 are supported.
o When these attributes are used with aims:coordSys and aims:filterCoordSys, the datum transformation is from a non-WGS 1984 datum to
WGS 1984. For example, Pulkovo_1942_To_WGS_1984 (datumtransformid="8157") transforms data from Pulkovo 1942 to WGS 1984.
o When these attributes are used with aims:featureCoordSys, the datum transformation is from WGS 1984 to a non-WGS 1984 datum. In the
above example, the datum transformation is from WGS 1984 to Pulkovo 1942.
• If a layer does not project, double-check that a *.prj file or ArcSDE spatial reference table exists for the layer. If not, aims:coordSys must be included
with the layer.

Attribute Descriptions for featureCoordSys:


Attribute Usage
datumTransformId Datum transformation ID.
datumTransformString Datum transformation definition string.
id Projected or geographic coordinate system ID.
string Projected or geographic coordinate system definition string.

JAVA CONNECTOR TAG LIBRARY 105


Examples for featureCoordSys:
Example 1:
<aims:tcpConnection id=”myTCPConnection” host=”myMachine” port=”5300” />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>"
name="<%=myService%>" />
<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=(myMapService)%>"
extract="true" width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">
<aims:featureCoordSys id="54008"/>
<aims:filterCoordSys id="4326" />
</aims:map>

106 Cu STOMIZING ARC IMS—JAVA CONNECTOR


filter
Used in: mapping
Parent elements: aims:createLayer aims:layer

<aims:filter

Attributes that set values:


accuracy ="Distance between points" [0]
checkESC ="true | false" [false]
envelope ="true | false" [false]
featureLimit ="integer" [All that meet criteria]
geometry ="true | false" [true]
globalEnvelope ="true | false" [false]
joinExpression ="string"
joinTables ="string"
projectBuffer ="true | false"
relation ="area_intersection | envelope_intersection"
searchOrder ="optimize | spatialfirst | attributefirst" [optimize]
subFields ="#ALL# | #ID# | #SHAPE# | Other fields in database" [#ALL#]
whereExpression ="string"
>

<buffer... />
<envelope... />
<line... />
<point... />
<polygon... />

</aims:filter >

Description:
Sets a filter on a layer by querying dataset attributes or by making a spatial query.

JAVA CONNECTOR TAG LIBRARY 107


Restrictions:
• The attributes accuracy, joinExpression, and joinTables are not valid with ArcMap Image Services.
• When joining shapefiles, shapefile layers can only be joined to other DBF files located in the same directory as the shapefile. A joined DBF file cannot
be another shapefile DBF file that is currently being used in an ArcIMS service.
• DBF jointable names are limited to 10 characters.
• When joining tables in ArcSDE, ArcSDE layers can only be joined to other tables in the relational database management system (RDBMS).

Notes:
• Queries defined in a map configuration file always filter the data and cannot be changed through a request. Any requests made to a filtered layer in a
map configuration file can select only features within the filtered subset. For example, assume a map configuration file has a world cities layer that has
been filtered to display only cities with a population greater than 1,000,000. All requests to this layer, whether tabular or spatial, include only cities with
a population greater than 1,000,000. Other cities in the database are ignored.
• When using aims:filter, one of the options is to return the geometry of selected features by setting the geometry attribute to "true". To return geometry,
the #SHAPE# field (or #ALL#) must be included in the subFields list.
• When creating a where clause, two fields from the same attribute table can be used for comparison. For example, a query can be made to find states with
a female population greater than the male population.

<aims:filter whereExpression="COUNTRY.STATE.FEMALES &gt; COUNTRY.STATE.MALES" />


• Some symbols must be "escaped" inside a where expression:
ampersand (&) is escaped to &amp;
double quotes (") are escaped to &quot;
single quotes (') are escaped to &apos;
greater than (>) is escaped to &gt;
less than (<) is escaped to &lt;
• Joining ArcSDE tables. When joining ArcSDE tables, all valid joins between the RDBMS and ArcSDE are also valid in ArcIMS. To join ArcSDE
tables, a where clause is used for defining which tables are joined and for any additional filters using SQL syntax. Multiple joins are also permitted.

In the following examp le, the where statement includes setting up two relates (in bold type) and filtering the selection to FIPS_CNTRY='CA' (in italic
type).

<aims:filter whereExpression="DB.CITY.CITY_FIPS = DB.SCHOOLS.CITY_FIPS and DB.SCHOOLS.SCHOOL_ID =


DB.SCHOOL_STATS.SCHOOL_ID and DB.CITY.CNTY_FIPS=&apos;013&apos;" jointables="DB.SCHOOLS
DB.SCHOOL_INFO" />

In this statement, cities (DB.CITY) are first joined to schools (DB.SCHOOLS) using the column CITY_FIPS as the common join item. Next, the

108 Cu STOMIZING ARC IMS—JAVA CONNECTOR


schools (DB.SCHOOLS) are joined to a table with statistics on the schools (DB.SCHOOL_STATS) using SCHOOL_ID as the join item. A further filter
is placed on this query by limiting the results to schools located within a specified county, in this example, where CNTY_FIPS='013'.

The list of joined tables must be listed under the jointables attribute. If more than one table is joined, table names are separated by a space. When
naming tables, the full ArcSDE table name must be used. In the above example, the two joined tables are DB.SCHOOLS and DB.SCHOOL_INFO.

• Joining DBF files. When joining DBF tables, joins can be made between the shapefile DBF table and one or more external DBF tables that reside in the
same directory as the shapefile. One restriction is that a joined DBF file cannot be another shapefile DBF file that is currently being used in a service.

To join DBF files, the joinexpression attribute is used. This attribute uses the syntax: "To=[master table column which will be used for joining],
From=[defines a join table column which will be joined], Type=[exact or scan]".

Refers to the master DBF table and defines the field that is used for joining. When referring to this table, the DBF table
To name must be used as a prefix to the field name. The entire expression is surrounded by square brackets, e.g.,
joinexpression="To=[mastertable.fieldname]".
Refers to the DBF table that is joined to the master DBF table and the field that is used for joining, e.g.,
From
joinexpression="From=[jointable.fieldname]".
Defines an exact match relation that permits only a single match between the master and join tables. Both one-to-one and
many-to-one relations are exact match relations. In a one-to-one relation, there is only one record in the master that
Type=[exact] matches a single record in the join table. In a many-to-one relation, there are one or more records in the master that
match a single join record. If there are multiple join records that match a single master record, then a composite record is
only generated for the first join record.

In a scan relation, if there are multiple join records for a master record, there is one composite record in the extended
data file for each of the matching join records. Both one-to-many and many-to-many relations are scan relations. In a
Type=[scan]
one-to-many relation, each record in the master can have multiple matching join records. A many-to-many relation is the
same as one-to-many, except that different master records can match the same join record.

• To, From, and Type parameters are case sensitive (first letter is capitalized), and they are separated by a comma, ",". Any number of joined tables can be
defined in the joinExpression attribute. Joined tables are separated by a semicolon, ";" such as the following:

joinExpression="To=[A.ID],From=[B.ID],Type=[scan];To=[B.NAME],From=[C.NAME], Type=[exact] "

All joined DBF tables must be listed under joinTables. If multiple tables are joined, table names are separated by a space. When naming tables, the name
of the DBF file without the extension is used. An example DBF query expression is:

JAVA CONNECTOR TAG LIBRARY 109


<aims:filter joinExpression="To=[counties.CNTY_FIPS],From=[countyinfo.FIPS],Type=[scan];
To=[countyinfo.FIPS],From=[state_roads.FIPS],Type=[scan]" joinTables="countyinfo state_roads" whereExpression="counties.
NAME=&apos;Washoe&apos;" />

In this example, a county DBF file (counties.dbf) is first joined to a DBF file containing county information (countyinfo.dbf). They are joined on the
field FIPS (counties.CNTY_FIPS and countyinfo.FIPS). Next, countyinfo.dbf is joined to state_roads.dbf, once again using FIPS as the join item. The
jointables are listed as countyinfo and state_roads, separated by a space. The query is filtered to only include one county, in this case Washoe.

• When joining DBF files to a shapefile, the DBF file cannot be read-only.
• Querying with dates. The syntax for querying dates is the same regardless of the locale. A date query uses the following syntax:

{ts 'YYYY-MM-DD hh:mi:ss'}

where
YYYY Year Required Use four digits for the year.

MM Month (01-12) Required Use two digits for the month. March is 03.
DD Day (01-31) Required Use two digits for the day. The fourth is 04.
hh Hour (00-23) Optional Use a 24-hour clock. 8 a.m. is 08, and 8 p.m. is 20.

mi Minutes (00-59) Optional Use two digits for the minutes. If minutes is used, hours must also be included.
ss Seconds (00-59) Optional Use two digits for the seconds. If seconds is used, hours and minutes must also be included.
• The year, month, and day are each separated by a dash (-). The hour, minutes, and seconds are each separated by a colon (:). The date is enclosed in
single quotes (') inside curly brackets ({}). Before the date, ts (for time stamp) must be included.

For 8:03:23 a.m. January 4, 2000, the query on a DBF file looks like:
<aims:filter whereExpression="MYDATE = {ts '2000-01-04 08:03:32'}" />

For 9:18 p.m. March 8, 2002, the query on an ArcSDE layer looks like:
<aims:filter whereExpression="ARCSDE.TABLE.MYDATE = {ts '2002-03-08 21:18:00'}" />
• When "area_intersection" is used with relation, all features that partially or fully fall within the area of the filter are selected. This results in a complex
operation that can take some time. To speed up processing, "envelope_intersection" can be used instead. This method checks to see if the bounding box
of the filter overlaps any bounding boxes of the features in the layer. A much quicker search results, but the features found could fall outside the area of
the filter. In the examples below, an oval shape is used as the filter. When "envelope_intersection" is used, features outside the filter can be selected
even though they are far outside the filter.

110 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Shape of spatial filter to Points selected when
select points Points selected when
relation="area_intersection" relation="envelope_intersection"

Shape of spatial filter to


select polygons

No polygons are selected when Polygon is selected when


relation="area_intersection" relation="envelope_intersection"

Attribute Descriptions for filter:


Attribute Usage
Accuracy Generalizes geometry when geometry="true" based on the distance specified and the resolution of the image. Units are the same
as the service.
CheckESC Used to determine if the returned data should include escaped characters for ampersand, single quote, double quote, less than,
and greater than. For example, if the value for SUB_REGION is "P&NW", then:

• If checkesc="false", in the response the value of SUB_REGION is "P&NW".


• If checkesc="true", the value of SUB_REGION is "P&amp;NW".

envelope Used to request the bounding envelope of each returned feature.

JAVA CONNECTOR TAG LIBRARY 111


Attribute Usage
featureLimit Maximum number of features to be extracted that meet criteria.
geometry Requests feature coordinates.
globalEnvelope When set to "true", the overall envelope for all the features returned is included in the response. Because the number of features
returned depends on beginrecord and featurelimit, only the actual records extracted based on featurelimit are included in the
overall envelope. Note that in order for the global envelope to be returned, subfields must include either #SHAPE# or #ALL#.
joinExpression Used for joined tables with DBF files only; jointables must be filled to contain list of tables used; not required when a table join
is done on ArcSDE.

String must form expression: "To=[master table column which will be used for joining], From=[defines a join table column
which will be joined], Type=[exact or scan]".
joinTables List of joined table names separated by blank spaces; for ArcSDE, table name is full name including database name (e.g.,
DATA.STATE); for shapefiles, use the DBF filename without the extension (e.g., STATES).
projectBuffer Projects the buffer.
relation Describes spatial relation. See Notes section for more details.
searchOrder Used with ArcSDE layers only. Determines whether the attribute or spatial part of an ArcSDE query is processed first.
"Spatialfirst" processes the spatial part of the query before the attribute part. "Attributefirst" processes the attribute part of the
query first. If "optimize" is used, ArcSDE makes the judgment whether to pick "spatialfirst" or "attributefirst".
subFields List of fields available for querying or extracting. Multiple fields can be included in the subfields list. Fields must be separated
by a blank space.

If subfields is not used, all fields are returned. If subfields is used, only listed fields are returned. The subfields #SHAPE# or
#ALL# must be included if geometry is to be returned. In addition, the geometry attribute must be set to "true".

The subfields list can include fields from the layer table or a joined table.

• For shapefiles with no joined tables, the field can be referenced using the short format.
field="AREA"
• For shapefiles with joined tables, the name of the joined table must be included along with the field.
field="JOINEDTABLE.AREA"
• For ArcSDE layers with or without joined tables, the field must be referenced using the full long format.
field="ARCSDENAME.TABLE.AREA"

112 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
whereExpression Defines where part of SQL expression. Required when jointables attribute for ArcSDE tables is used. See Notes section for
information on querying dates.

Examples for filter:


Example 1: When using a buffer as a filter.
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300" bufferImage="true"
bufferRegion="true">
<aims:layer layerId="3" visible="true">
<aims:filter envelope="true" geometry="true" globalEnvelope="true">
<aims:buffer distance="1" bufferUnits="Miles" >
<aims:targetLayer targetLayerId="5">
<!-- Only simplePolygonSymbol tag allowed inside targetLayer tag -->
<aims:simplePolygonSymbol fillColor="2,255,250" boundaryColor="255,255,255" />
</aims:targetLayer>
<aims:bufferLayer>
<!-- List of symbol tag allowed inside bufferLayer: gradientFillSymbol, hashLineSymbol,
rasterFillSymbol, rasterMarkerSymbol, simpleLineSymbol, simpleMarkerSymbol, simplePolygonSymbol, and
trueTypeMarkerSymbol-->
<aims:simplePolygonSymbol fillColor="2,255,250" boundaryColor="255,255,255" />
</aims:bufferLayer>
</aims:buffer>
</aims:filter>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 113


Example 2:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>"


loadRecordset="true" loadEnvelope="true" loadExtensions="true" loadRenderer="true" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" width="500"


height="300">
<aims:separators ts="," cs=" " />
<aims:layer layerId="0" visible="true">
<aims:filter envelope="true" geometry="true" globalEnvelope="true">
<aims:line coords="-122.483 37.769,-122.482 37.763" />
</aims:filter>
<aims:recordset>
<aims:iterateTableDesc fieldName="fName" fieldType="fType" fieldPrecision="fPrec" fieldLength="fLen">
<%=(fName)%>
<%=(fType)%>
<%=(fPrec)%>
<%=(fLen)%> <br>
</aims:iterateTableDesc>
</aims:recordset>
</aims:layer>
</aims:map>

114 Cu STOMIZING ARC IMS—JAVA CONNECTOR


filterCoordSys
Used in: mapping
Parent elements: aims:map

<aims:filterCoordSys

Attributes that set values:


datumTransformId ="integer"
datumTransformString ="string"
id ="integer"
string ="string"
>

No Child Elements
</aims:filterCoordSys >

Description:
The current coordinate system of the requesting client.

Restrictions:
• Must use either id or string, but not both.
• For datum transformations either datumTransformId or datumTransformString is used, but not both.
• In ArcMap Image Services, datumtransformid or datumtransformstring are not valid.

Notes:
• For a complete list of supported IDs and definition strings, see:
o Projected Coordinate Systems Listing [Sorted by projection ID] [Sorted by name]
o Geographic Coordinate Systems Listing [Sorted by projection ID] [Sorted by name]
o Datum Transformation Listing [Sorted by projection ID] [Sorted by name]

JAVA CONNECTOR TAG LIBRARY 115


• When using definition strings, the quotes in the string must be changed to &quot; so the ArcIMS Spatial Server can interpret the string correctly. For
example, the definition string for World Mollweide is:

PROJCS["World_Mollweide",GEOGCS["GCS_WGS_1984",DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]],PRIME
M["Greenwich",0],UNIT["Degree",0.017453292519943295]],PROJECTION["Mollweide"],PARAMETER["False_Easting",0],PARAMETER["False_
Northing",0],PARAMETER["Central_Meridian",0],UNIT["Meter",1]]

Once the quotes have been changed, the string looks like this:

PROJCS[&quot;World_Mollweide&quot;,GEOGCS[&quot;GCS_WGS_1984&quot;,DATUM[&quot;D_WGS_1984&quot;,SPHEROID[&quot;WGS
_1984&quot;,6378137,298.257223563]],PRIMEM[&quot;Greenwich&quot;,0],UNIT[&quot;Degree&quot;,0.017453292519943295]],PROJECTION[
&quot;Mollweide&quot;],PARAMETER[&quot;False_Easting&quot;,0],PARAMETER[&quot;False_Northing&quot;,0],PARAMETER[&quot;Centra
l_Meridian&quot;,0],UNIT[&quot;Meter&quot;,1]]
• The attributes datumTransformId and datumTransformString are used when datum transformation information needs to be included. Only datum
transformations to and from WGS 1984 are supported.
o When these attributes are used with aims:coordSys and aims:filterCoordSys, the datum transformation is from a non-WGS 1984 datum to
WGS 1984. For example, Pulkovo_1942_To_WGS_1984 (datumtransformid="8157") transforms data from Pulkovo 1942 to WGS 1984.
o When these attributes are used with aims:featureCoordSys, the datum transformation is from WGS 1984 to a non-WGS 1984 datum. In the
above example, the datum transformation is from WGS 1984 to Pulkovo 1942.
• If a layer does not project, double-check that a *.prj file or ArcSDE spatial reference table exists for the layer. If not, aims:coordSys must be included
with the layer.

Attribute Descriptions for filterCoordSys:


Attribute Usage
datumTransformId Datum transformation ID.
datumTransformString Datum transformation definition string.
id Projected or geographic coordinate system ID.
string Projected or geographic coordinate system definition string.

116 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for filterCoordSys:
Example 1:
<aims:tcpConnection id=”myTCPConnection” host=”myMachine” port=”5300” />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>"
name="<%=myService%>" />
<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=(myMapService)%>"
extract="true" width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">
<aims:featureCoordSys id="54008"/>
<aims:filterCoordSys id="4326" />
</aims:map>

JAVA CONNECTOR TAG LIBRARY 117


getContainerAttribute
Used in: administration
Parent elements: aims:iterateContainersForServer

<aims:getContainerAttribute

Attributes that set values:


attribute ="NAME | TYPE | ACCESS | DESCRIPTION | VERSION | CONTAINERSET"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="string"
virtualServers ="object"
>

No Child Elements
</aims:getContainerAttribute >

Bold: Attribute or child element is required.

Description:
Retrieves the name of an ArcIMS Spatial Server and all of the Virtual Servers associated with this Spatial Server.

Restrictions:
None

Notes:
None

118 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for getContainerAttribute:
Attribute Usage
attribute The name of the attribute to retrieve about an ArcIMS Spatial Server. If attribute is not recognized, an empty string is returned.
Currently, NAME is the only possible value.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
Id Returns a string containing the value of the attribute specified.
virtualServers Returns a Virtual Server collection. Use aims:iterateVirtualServers to list the values of each Virtual Server.

Examples for getContainerAttribute:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:getServer id="myServer" connectionId="<%=myhttpConnection%>" name="mymachine" error="myError" />

<aims:iterateContainersForServer server="<%=myServer%>" count="containerCount" >


<aims:getContainerAttribute id="myContainer" attribute="NAME" connectionId="<%=myhttpConnection%>"
virtualServers="myVirtualServers" />
<td>
<br><b>Container Name is: <%=myContainer%></b>
</td>
<aims:iterateVirtualServers virtualServers="<%=myVirtualServers%>" count="serviceCount2" >
<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />

JAVA CONNECTOR TAG LIBRARY 119


<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

</aims:iterateContainersForServer>
containerCount <%=containerCount%>

120 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getElement
Used in: metadata
Parent elements: None

<aims:getElement

Attributes that pass objects:


loadedElements ="object"

Attributes that return values:


id ="string"
value ="string"
>

No Child Elements
</aims:getElement >

Bold: Attribute or child element is required.

Description:
Retrieves the value of a metadata element.

Restrictions:
• The element value must be loaded into memory using aims:loadElements before it can be accessed using aims:getElement.

Notes:
None

Attribute Descriptions for getElement:


Attribute Usage
id Returns the element's text value.
loadedElements The set of elements retrieved using aims:loadElements.

JAVA CONNECTOR TAG LIBRARY 121


Attribute Usage
value Defines the xpath or location of an element inside an XML tree. For example, the element "title" might be inside an XML
structure such as

<idinfo>
<citation>
<citeinfo>
<title>...</title>
</citeinfo>
</citation>
</idinfo>

To define "title", the string value for this attribute would be "idinfo/citation/citeinfo/title".

Examples for getElement:


Example 1: Retrieves the value of a metadata element.
<%
String FGDCElements = "metadata/idinfo/citation/citeinfo/title,"
+ "metadata/idinfo/keywords/place/placekey,"
+ "metadata/spdoinfo/direct,"
+ "metadata/idinfo/browse/browsen,"
+ "metadata/idinfo/browse/browsed,"
+ "metadata/idinfo/citation/citeinfo/pubinfo/publish,"
+ "metadata/dataqual/lineage/srcinfo/srcscale,"
+ "metadata/Esri/gn/resolution,";
%>

<%-- Load all the element values we'll be using --%>


<aims:loadElements id="theElements" url="<%= metadataUrl %>" names="<%= FGDCElements %>" />

<%-- Get the dataset's title --%>


<aims:getElement id="theTitle" loadedElements="<%= theElements %>"
value="metadata/idinfo/citation/citeinfo/title" />

<%-- Get the dataset's publisher --%>

122 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:getElement id="publish" loadedElements="<%= theElements %>"
value="metadata/idinfo/citation/citeinfo/pubinfo/publish" />

<P>
<b>Title:</b> <%= theTitle %><br>
<P>
<b>Publisher:</b> <%= publish %><br>

JAVA CONNECTOR TAG LIBRARY 123


getInputAttribute
Used in: mapping
Parent elements: aims:iterateAddressMatchInputs

<aims:getInputAttribute

Attributes that set values:


attribute ="DESCRIPTION | LABEL | ID | TYPE | WIDTH"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getInputAttribute >

Bold: Attribute or child element is required.

Description:
Used to retrieve values stored in the addressMatchInputs object.

Restrictions:
None

Notes:
None

Attribute Descriptions for getInputAttribute:


Attribute Usage
attribute The name of the attribute to return in id.
id Returns the value of the property specified in attribute.

124 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for getInputAttribute:
Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="brugge" debug="true" />

<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="geostreets" loadExtensions="true"


/>

<aims:map id="mapImage" serviceId="<%=myService%>" reset="false" >


<aims:layer layerId="0" >
<aims:addressMatchInputs id="myInputs" minScore="0" maxCandidates="100" >
<aims:setInput inputId="STREET" value="380 New York St" />
<aims:setInput inputId="ZONE" value="" />
<aims:setInput inputId="CROSSSTREET" value="" />
</aims:addressMatchInputs>
<table>
<aims:iterateAddressMatchInputs inputs="<%=myInputs%>" count="myCount" minScore="myMinScore"
maxCandidates="myMax" style="myStyle" >
<aims:getInputAttribute id="myDes" attribute="DESCRIPTION" />
<aims:getInputAttribute id="myId" attribute="ID" />
<aims:getInputAttribute id="myLabel" attribute="LABEL" />
<aims:getInputAttribute id="myType" attribute="TYPE" />
<aims:getInputAttribute id="myWidth" attribute="WIDTH" />
<tr><td>
<b>desc is: <%=myDes%></b><br>
id is: <%=myId%><br>
label is: <%=myLabel%><br>
type is: <%=myType%><br>
width is: <%=myWidth%>
</td></tr>
</aims:iterateAddressMatchInputs>

<tr><td>
<b>INPUT count is: <%=myCount%></b><br>
minScore is: <%=myMinScore%><br>

JAVA CONNECTOR TAG LIBRARY 125


maxCandidates is: <%=myMax%><br>
style is: <%=myStyle%>
</td></tr>

<aims:iterateAddressMatchResults inputs="<%=myInputs%>" count="resultsCount" >


<aims:getResultAttribute id="myValue" attribute="VALUE" />
<aims:getResultAttribute id="myScore" attribute="SCORE" />
<aims:getResultAttribute id="myPoint" attribute="POINT" />
<tr><td>
<b>value is: <%=myValue%></b><br>
score is: <%=myScore%><br>
point is: <%=myPoint%>
</td></tr>
</aims:iterateAddressMatchResults>

<tr><td>
<br><b>RESULT count is: <%=resultsCount%></b>
</td></tr></table>
</aims:layer>
</aims:map>

126 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getLayerAttribute
Used in: mapping
Parent elements: aims:iterateLayers

<aims:getLayerAttribute

Attributes that set values:


attribute ="NAME | ID | VISIBLE | MAXSCALE | MINSCALE | TYPE"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getLayerAttribute >

Bold: Attribute or child element is required.

Description:
Returns layer information.

Restrictions:
None

Notes:
None

Attribute Descriptions for getLayerAttribute:


Attribute Usage
attribute The layer property to retrieve.
id Returns the value of the property specified in attribute.

Examples for getLayerAttribute:

JAVA CONNECTOR TAG LIBRARY 127


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=myMapService%>" width="300" height="100">
<aims:iterateLayers count="layerCount">
<aims:getLayerAttribute id="layerId" attribute="ID" />
ID : <%=layerId%>
<aims:getLayerAttribute id="layerName" attribute="NAME" />
Layer Name : <%=layerName%><br>
</aims:iterateLayers>
Layer Count : <%=(layerCount)%>
</aims:map>

128 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getLayerId
Used in: mapping
Parent elements: aims:map

<aims:getLayerId

Attributes that set values:


name ="string"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getLayerId >

Bold: Attribute or child element is required.

Description:
Returns the layer ID for a specified layer name.

Restrictions:
• If multiple layers in the service have the same name, only the id of the first layer in the list is returned.
Notes:
None

Attribute Descriptions for getLayerId:


Attribute Usage
id Returns the layer ID based on the layer name.
name Name of the layer.

JAVA CONNECTOR TAG LIBRARY 129


Examples for getLayerId:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

<aims:getLayerId id="myId" name="continents" />


<%=myId%>

</aims:map>

130 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getLayout
Used in: mapping
Parent elements: None

<aims:getLayout

Attributes that set values:


value ="IMAGEHEIGHT | IMAGEWIDTH | OUTPUTTYPE | PAGEUNITS | MINX | MINY | MAXX | MAXY | FEATUREID |
FEATURESTRING | FILTERID | FILTERSTRING | LAYOUTPATH | LAYOUTTYPE | LAYOUTURL"

Attributes that pass objects:


dataframeCollection ="object"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getLayout >

Bold: Attribute or child element is required.

Description:
Requests an ArcMap layout.

Restrictions:
• Valid only with ArcMap Server.
• Known limitation with the Java Connector and JSP Tag Library. When using aims:getLayout, only the default layout as specified in the map
document can be retrieved. You can zoom and pan the layout page using aims:envelope as a nested tag in aims:arcMapService. However, you cannot
change the projection or extent of individual data frames. When using the Java Connector beans, one projection and extent can be used for all
dataframes. In order to have complete control of projections and extents in individual data frames, ArcXML must be used.
Notes:
None

JAVA CONNECTOR TAG LIBRARY 131


Attribute Descriptions for getLayout:
Attribute Usage
dataframeCollection Data Frames Collection object passed from aims:arcMapService id.
id Returns the value of the property specified in value.
value Name of the layout property to retrieve.

Examples for getLayout:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:arcMapService id="myDataframeCollection" connectionId="<%=(myConnection)%>" name="multidf" dpi="0"


loadLayout="true" error="myError">
<aims:envelope minx="10" miny="10" maxx="15" maxy="15" />
</aims:arcMapService>

<aims:getLayout id="layoutURL" value="LAYOUTURL" dataframeCollection="<%=(myDataframeCollection)%>" />


<img src="<%=(layoutURL)%>" />

132 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getMetadataDocument
Used in: metadata
Parent elements: None

<aims:getMetadataDocument

Attributes that set values:


docId ="string"
service ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
>

No Child Elements
</aims:getMetadataDocument >

Bold: Attribute or child element is required.

Description:
Gets a metadata document for the given document ID.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 133


Atribute Descriptions for getMetadataDocument:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
id Returns the Document object.
service The name of the metadata service.

Examples for getMetadataDocument:


Example 1: Gets a handle to a metadata document for the given document ID.
<aims:getSettings id="hostName" value="meta_host_name" />
<aims:getSettings id="portNumber" value="meta_port_number" />
<aims:getSettings id="serviceName" value="meta_service_name" />

<aims:tcpConnection id="myConnection" host="<%= hostName %>" port="<%= portNumber %>" debug="true" />
<% String docId = (String)request.getAttribute("docId"); %>
<aims:getMetadataDocument id="theDataset" connectionId="<%= myConnection %>" service="<%= serviceName %>"
docId="<%= docId %>" />
<aims:datasetProperty id="theThumbnail" value="THUMBNAIL" dataset="<%= theDataset %>" />
<aims:datasetProperty id="theGND" value="GND" dataset="<%= theDataset %>" />
<aims:datasetProperty id="theServiceType" value="SERVICETYPE" dataset="<%= theDataset %>" />
<aims:datasetProperty id="hasSiblings" value="SIBLINGS" dataset="<%= theDataset %>" />
<aims:datasetProperty id="theContentType" value="CONTENT" dataset="<%= theDataset %>" />
<aims:datasetProperty id="theMapServer" value="SERVER" dataset="<%= theDataset %>" />
<aims:datasetProperty id="theMapService" value="SERVICE" dataset="<%= theDataset %>" />
<P>
<img src="<%= theThumbnail %>" width="200" height="133" vspace="5" hspace="2" border="1">
<P>
Content Type: <%= theContentType %>

134 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getRasterInfo
Used in: mapping
Parent elements: None

<aims:getRasterInfo

Attributes that set values:


layerId ="string"
x ="double"
y ="double"

Attributes that return values:


id ="object"
>

<coordSys... />

</aims:getRasterInfo >

Bold: Attribute or child element is required.

Description:
Returns the pixel value of an image at a given x,y coordinate location for the specified layer.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 135


Attribute Descriptions for getRasterInfo:
Attribute Usage
id Returns the RasterInfo object.
layerId ID of the layer to query.
x X-coordinate of selected point.
y Y-coordinate of selected point.

Examples for getRasterInfo:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="imageServiceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">

<aims:getRasterInfo id="myRaster" layerId="0" x="1099.067" y="1349.42" />

<aims:iterateRasterInfo rasterInfo="<%=(myRaster)%>" rasterId="id" number="no" value="val">


<b>Raster Id = </b> <%=(id)%>
<b>Number = </b> <%=(no)%>
<b>Value = </b> <%=(val)%><br>
</aims:iterateRasterInfo>
</aims:map>

136 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getResultAttribute
Used in: mapping
Parent elements: aims:iterateAddressMatchResults

<aims:getResultAttribute

Attributes that set values:


attribute ="string"

Attributes that return values:


id ="VALUE | SCORE | POINT"
>

No Child Elements
</aims:getResultAttribute >

Bold: Attribute or child element is required.

Description:
Returns geocoding information.

Restrictions:
None

Notes:
None

Attribute Descriptions for getResultAttribute:


Attribute Usage
attribute The name of the geocode property to retrieve.
id Returns the value of the property specified in id.

Examples for getResultAttribute:

JAVA CONNECTOR TAG LIBRARY 137


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" debug="true"/>
<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="geoServiceName"
loadExtensions="true" />
<aims:map id="mapImage" serviceId="<%=myService%>" reset="false" >
<aims:layer layerId="3" >
<aims:addressMatchInputs id="myInputs" minScore="0" maxCandidates="100" >
<aims:setInput inputId="STREET" value="380 New York St" />
<aims:setInput inputId="ZONE" value="" />
<aims:setInput inputId="CROSSSTREET" value="" />
</aims:addressMatchInputs>
<aims:iterateAddressMatchInputs inputs="<%=myInputs%>" count="myCount" minScore="myMinScore"
maxCandidates="myMax" style="myStyle" >
<aims:getInputAttribute id="myDes" attribute="DESCRIPTION" />
<aims:getInputAttribute id="myId" attribute="ID" />
<aims:getInputAttribute id="myLabel" attribute="LABEL" />
<aims:getInputAttribute id="myType" attribute="TYPE" />
<aims:getInputAttribute id="myWidth" attribute="WIDTH" />
<b>Description </b>: <%=myDes%> <br>
<b>Id </b>: <%=myId%> <br>
<b>Label </b>: <%=myLabel%> <br>
<b>Type </b>: <%=myType%> <br>
<b>Width </b>: <%=myWidth%> <br>
</aims:iterateAddressMatchInputs>
<aims:iterateAddressMatchResults inputs="<%=myInputs%>" count="resultsCount" >
<aims:getResultAttribute id="myValue" attribute="VALUE" />
<aims:getResultAttribute id="myScore" attribute="SCORE" />
<aims:getResultAttribute id="myPoint" attribute="POINT" />
<b>Value </b>: <%=myValue%> <br>
<b>Score </b>: <%=myScore%> <br>
<b>Point </b>: <%=myPoint%> <br>
</aims:iterateAddressMatchResults>
<b>Result count </b>: <%=resultsCount%>
</aims:layer>
</aims:map>

138 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getServer
Used in: administration
Parent elements: None

<aims:getServer

Attributes that set values:


name ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
error ="string"
>

No Child Elements
</aims:getServer >

Bold: Attribute or child element is required.

Description:
Returns a Server object that contains information on the containers and Virtual Server types associated with this server.

Restrictions:
None

Notes:
• The Server object returned can be used in aims: iterateContainersForServer.

JAVA CONNECTOR TAG LIBRARY 139


Attribute Descriptions for getServer:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns a Server object corresponding to the ArcIMS Spatial Server name.
name The name of the server.

Examples for getServer:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://brugge"
role="admin"
debug="true"
username="myUsername"
password="myPassword"
/>

<aims:getServer id="myServer" connectionId="<%=myhttpConnection%>" name="brugge" error="myError1" />

<aims:iterateContainersForServer server="<%=myServer%>" count="containerCount" >


<aims:getContainerAttribute id="myContainer" attribute="NAME" connectionId="<%=myhttpConnection%>"
virtualServers="myVirtualServers" />
<td>
<br><b>Container Name is: <%=myContainer%></b>
</td>
<aims:iterateVirtualServers virtualServers="<%=myVirtualServers%>" count="serviceCount2" >
<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>

140 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

</aims:iterateContainersForServer>
containerCount <%=containerCount%>

JAVA CONNECTOR TAG LIBRARY 141


getService
Used in: administration
Parent elements: None

<aims:getService

Attributes that set values:


name ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
error ="string"
>

No Child Elements
</aims:getService >

Bold: Attribute or child element is required.

Description:
Returns the Service object of the named service.

Restrictions:
None

Notes:
None

142 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for getService:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns the Service object in the value of the id attribute.
name The name of the service.

Examples for getService:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://brugge"
role="admin"
username="admin"
password="admin"
/>

<aims:getService id="myService" connectionId="<%=myhttpConnection%>" name="mexico2" error="getError"/>

<aims:iterateServices services="<%=myService%>" count="myCount" >


<aims:getServiceAttribute id="theName" attribute="NAME" />
<aims:getServiceAttribute id="theFile" attribute="CONFIGFILE" />
<aims:getServiceAttribute id="theType" attribute="IMAGETYPE" />
<aims:getServiceAttribute id="theOutDir" attribute="OUTPUTDIR" />
<aims:getServiceAttribute id="theOutClean" attribute="OUTPUTCLEANUP" />
<aims:getServiceAttribute id="theOutURL" attribute="OUTPUTURL" />
<aims:getServiceAttribute id="thePixel" attribute="PIXELCOUNT" />
<aims:getServiceAttribute id="theVSName" attribute="VIRTUALSERVERNAME" />
<aims:getServiceAttribute id="theVSInfo" attribute="VIRTUALSERVERINFO" />
<aims:getServiceAttribute id="theStatus" attribute="STATUS" />
<aims:getServiceAttribute id="theDes" attribute="DESCRIPTION" />
<aims:getServiceAttribute id="theAcc" attribute="ACCESS" />
<td>
<br><b>Iterate one service</b>

JAVA CONNECTOR TAG LIBRARY 143


<br><b>Service name: <%=theName%></b>
<br><b>Config file: <%=theFile%></b>
<br><b>Image Type: <%=theType%></b>
<br><b>Pixelcount: <%=thePixel%></b>
<br><b>Virtual Server Name: <%=theVSName%></b>
<br><b>Virtual Server Info: <%=theVSInfo%></b>
<br><b>Output Dir: <%=theOutDir%></b>
<br><b>Output URL: <%=theOutURL%></b>
<br><b>Output Cleanup: <%=theOutClean%></b>
<br><b>Description: <%=theDes%></b>
<br><b>Access: <%=theAcc%></b>
<br><b>Status: <%=theStatus%></b>
<br><b></b>
</td>
</aims:iterateServices>

144 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getServiceAttribute
Used in: administration
Parent elements: aims:iterateServices

<aims:getServiceAttribute

Attributes that set values:


attribute ="NAME | CONFIGFILE | IMAGETYPE | OUTPUTCLEANUP | OUTPDIR | OUTPUTURL | PIXELCOUNT | ACCESS | STATUS |
VIRTUALSERVERNAME | VIRTUALSERVERINFO"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getServiceAttribute >

Bold: Attribute or child element is required.

Description:
Returns a value defining an attribute of a service.

Restrictions:
None

Notes:
None

Attribute Descriptions for getServiceAttribute:


Attribute Usage
attribute The name of the attribute to retrieve from the Service object. If attribute is not recognized, an empty string is returned.
id Returns a string defining the attribute specified.
Examples for getServiceAttribute:

JAVA CONNECTOR TAG LIBRARY 145


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
username="admin"
password="admin"
/>

<aims:getServices id="myServices" connectionId="<%=myhttpConnection%>" />

<aims:iterateServices services="<%=myServices%>" count="myCount" >


<aims:getServiceAttribute id="theName" attribute="NAME" />
<aims:getServiceAttribute id="theFile" attribute="CONFIGFILE" />
<aims:getServiceAttribute id="theType" attribute="IMAGETYPE" />
<aims:getServiceAttribute id="theOutDir" attribute="OUTPUTDIR" />
<aims:getServiceAttribute id="theOutClean" attribute="OUTPUTCLEANUP" />
<aims:getServiceAttribute id="theOutURL" attribute="OUTPUTURL" />
<aims:getServiceAttribute id="thePixel" attribute="PIXELCOUNT" />
<aims:getServiceAttribute id="theVSName" attribute="VIRTUALSERVERNAME" />
<aims:getServiceAttribute id="theVSInfo" attribute="VIRTUALSERVERINFO" />
<aims:getServiceAttribute id="theStatus" attribute="STATUS" />
<aims:getServiceAttribute id="theDes" attribute="DESCRIPTION" />
<aims:getServiceAttribute id="theAcc" attribute="ACCESS" />
<td>
<br><b>Iterate all services</b>
<br><b>Service name: <%=theName%></b>
<br><b>Config file: <%=theFile%></b>
<br><b>Image Type: <%=theType%></b>
<br><b>Pixelcount: <%=thePixel%></b>
<br><b>Virtual Server Name: <%=theVSName%></b>
<br><b>Virtual Server Info: <%=theVSInfo%></b>
<br><b>Output Dir: <%=theOutDir%></b>
<br><b>Output URL: <%=theOutURL%></b>
<br><b>Output Cleanup: <%=theOutClean%></b>
<br><b>Description: <%=theDes%></b>
<br><b>Access: <%=theAcc%></b>

146 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<br><b>Status: <%=theStatus%></b>
<br><b></b>
</td>
</aims:iterateServices>

JAVA CONNECTOR TAG LIBRARY 147


getServices
Used in: administration
Parent elements: None

<aims:getServices

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
error ="string"
>

No Child Elements
</aims:getServices >

Bold: Attribute or child element is required.

Description:
Returns a ServiceCollection object that contains a list of all services.

Restrictions:
None

Notes:
• Use aims:iterateServices to retrieve individual Service objects for use in aims:adminService or to output information about all services.

Attribute Descriptions for getServices:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.

148 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
id Returns the ServiceCollection object.

Examples for getServices:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
username="admin"
password="admin"
/>

<aims:getServices id="myServices" connectionId="<%=myhttpConnection%>" />

<aims:iterateServices services="<%=myServices%>" count="myCount" >


<aims:getServiceAttribute id="theName" attribute="NAME" />
<aims:getServiceAttribute id="theFile" attribute="CONFIGFILE" />
<aims:getServiceAttribute id="theType" attribute="IMAGETYPE" />
<aims:getServiceAttribute id="theOutDir" attribute="OUTPUTDIR" />
<aims:getServiceAttribute id="theOutClean" attribute="OUTPUTCLEANUP" />
<aims:getServiceAttribute id="theOutURL" attribute="OUTPUTURL" />
<aims:getServiceAttribute id="thePixel" attribute="PIXELCOUNT" />
<aims:getServiceAttribute id="theVSName" attribute="VIRTUALSERVERNAME" />
<aims:getServiceAttribute id="theVSInfo" attribute="VIRTUALSERVERINFO" />
<aims:getServiceAttribute id="theStatus" attribute="STATUS" />
<aims:getServiceAttribute id="theDes" attribute="DESCRIPTION" />
<aims:getServiceAttribute id="theAcc" attribute="ACCESS" />
<td>
<br><b>Iterate all services</b>
<br><b>Service name: <%=theName%></b>
<br><b>Config file: <%=theFile%></b>
<br><b>Image Type: <%=theType%></b>
<br><b>Pixelcount: <%=thePixel%></b>
<br><b>Virtual Server Name: <%=theVSName%></b>

JAVA CONNECTOR TAG LIBRARY 149


<br><b>Virtual Server Info: <%=theVSInfo%></b>
<br><b>Output Dir: <%=theOutDir%></b>
<br><b>Output URL: <%=theOutURL%></b>
<br><b>Output Cleanup: <%=theOutClean%></b>
<br><b>Description: <%=theDes%></b>
<br><b>Access: <%=theAcc%></b>
<br><b>Status: <%=theStatus%></b>
<br><b></b>
</td>
</aims:iterateServices>

150 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getSettings
Used in: mapping metadata administration
Parent elements: None

<aims:getSettings

Attributes that set values:


value ="string"
propFileName ="string"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getSettings >

Bold: Attribute or child element is required.

Description:
Reads setting values from a property file.

Restrictions:
None

Notes:
None

Attribute Descriptions for getSettings:


Attribute Usage
id A variable name that stores a setting.
propFileName Name of the property file.
value The name of the value to read from the properties file.

JAVA CONNECTOR TAG LIBRARY 151


Examples for getSettings:
Example 1:
<aims:getSettings id="hostName" value="meta_host_name" />

or

<aims:getSettings id="hostName" value="meta_host_name" propFileName="propFile.properties" />

152 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getUUID
Used in: metadata
Parent elements: None

<aims:getUUID

Attributes that set values:


service ="string"
count ="integer" [1]

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
>

No Child Elements
</aims:getUUID >

Bold: Attribute or child element is required.

Description:
Generates a unique ID that can be used as a document ID.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 153


Attribute Descriptions for getUUID:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
count Determines the number of unique IDs to generate.
id Returns a vector of UUID strings. The number of UUID strings returned is determined by the count attribute. The format for a
UUID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a hexadecimal digit (0-9,a-
f,A-F). The ID is limited to 38 characters.
service The name of the metadata service to generate the UUID strings.

Examples for getUUID:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" username="publish"
password="publish" />

<aims:getUUID id="myUUID" connectionId="<%=(myConnection)%>" service="serviceName" count="3" />


UUID : = <%=(myUUID.elementAt(0))%>

154 Cu STOMIZING ARC IMS—JAVA CONNECTOR


getVirtualServer
Used in: administration
Parent elements: None

<aims:getVirtualServer

Attributes that set values:


name ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
error ="string"
>

No Child Elements
</aims:getVirtualServer >

Bold: Attribute or child element is required.

Description:
Returns the VirtualServer object of the named Virtual Server.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 155


Attribute Descriptions for getVirtualServer:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns the VirtualServer object.
name The name of the Virtual Server.

Examples for getVirtualServer:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:getVirtualServer id="myServer" connectionId="<%=myhttpConnection%>" name="FeatureServer1"


error="getError" />

<aims:iterateVirtualServers virtualServers="<%=myServer%>" count="serverCount" >


<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>

156 Cu STOMIZING ARC IMS—JAVA CONNECTOR


containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

JAVA CONNECTOR TAG LIBRARY 157


getVirtualServerAttribute
Used in: administration
Parent elements: aims:iterateVirtualServers

<aims:getVirtualServerAttribute

Attributes that set values:


attribute ="NAME | ACCESS | DESCRIPTION | TYPE | VERSION | CONTAINERSET"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:getVirtualServerAttribute >

Bold: Attribute or child element is required.

Description:
Returns a string defining an attribute of a Virtual Server.

Restrictions:
None

Notes:
None

Attribute Descriptions for getVirtualServerAttribute:


Attribute Usage
attribute The name of the attribute to retrieve from the VirtualServer object. If attribute is not recognized, an empty string is returned.
id Returns a string defining the attribute specified.

158 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for getVirtualServerAttribute:
Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:getVirtualServers id="myServers" connectionId="<%=myhttpConnection%>" error="getError" />

<aims:iterateVirtualServers virtualServers="<%=myServers%>" count="serverCount" >


<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

JAVA CONNECTOR TAG LIBRARY 159


getVirtualServers
Used in: administration
Parent elements: None

<aims:getVirtualServers

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="object"
error ="string"
>

No Child Elements
</aims:getVirtualServers >

Bold: Attribute or child element is required.

Description:
Returns a VirtualServerCollection object that contains all Virtual Servers.

Restrictions:
None

Notes:
• Use aims:iterateVirtualServers to output information about all Virtual Servers.

Attribute Descriptions for getVirtualServers:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.

160 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
id Returns the VirtualServerCollection object.

Examples for getVirtualServers:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:getVirtualServers id="myServers" connectionId="<%=myhttpConnection%>" error="getError" />

<aims:iterateVirtualServers virtualServers="<%=myServers%>" count="serverCount" >


<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

JAVA CONNECTOR TAG LIBRARY 161


gradientFillSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:other aims:polygon aims:range aims:simpleRenderer

<aims:gradientFillSymbol

Attributes that set values:

When using ArcMap Server:


finishColor ="0,0,0 - 255,255,255" [0,255,0]
startColor ="0,0,0 - 255,255,255" [255,0,0]
type ="bdiagonal | fdiagonal | horizontal | vertical" [bdiagonal]

When using Image Server:


antialiasing ="true | false" [false]
finishColor ="0,0,0 - 255,255,255" [0,255,0]
overlap ="true | false" [true]
startColor ="0,0,0 - 255,255,255" [255,0,0]
transparency ="0.0 - 1.0" [1.0]
type ="bdiagonal | fdiagonal | horizontal | vertical" [bdiagonal]
>

No Child Elements
</aims:gradientFillSymbol >

Description:
Fills the polygon with a gradual gradient based on two colors.

Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
None

162 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for gradientFillSymbol:
Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
finishColor End color using RGB values.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
startColor Start color using RGB values.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
type Symbol type.

Examples for gradientFillSymbol:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" />
<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:createLayer layerId="idPolygon" name="polygon" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:polygon coords="10 110;400 110;400 160;10 160;10 110">
<aims:gradientFillSymbol transparency="1.0" type="vertical" startColor="0,255,0"
finishColor="0,0,255" overlap="true" />
</aims:polygon>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 163


groupRenderer
Used in: mapping
Parent elements: aims:createLayer aims:groupRenderer aims:layer aims:scaleDependentRenderer

<groupRenderer >
No Attributes

(m) <groupRenderer... />


(m) <scaleDependentRenderer... />
(m) <simpleLabelRenderer... />
(m) <simpleRenderer... />
(m) <valueMapLabelRenderer... />
(m) <valueMapRenderer... />

</aims:groupRenderer >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Groups two or mo re renderers together. Common uses are to group feature rendering and labeling, to use multiple scale-dependent renderers on the
same layer, and to create complex symbology.

Restrictions:
• At least one nested tag is required. Any combination and number of listed nested tags can be used.
• Not valid with ArcMap Server.

Notes:
None

164 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for groupRenderer:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="4" visible="true" >
<aims:groupRenderer>
<aims:simpleRenderer>
<aims:simpleLineSymbol color="150,0,255" />
</aims:simpleRenderer>
<aims:valueMapLabelRenderer lookUpField="NAME" labelField="FCC">
<aims:exact label="Colorado Crk" value="COLORADO CREEK">
<aims:textSymbol/>
</aims:exact>
<aims:exact label="Isabel Crk" value="ISABEL CREEK">
<aims:textSymbol fontSize="30" font="Times New Roman" fontColor="0,255,0"/>
</aims:exact>
</aims:valueMapLabelRenderer>
</aims:groupRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 165


hashLineSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:line aims:other aims:polygon aims:range aims:simpleRenderer

<aims:hashLineSymbol

Attributes that set values:

When using ArcMap Server:


color ="0,0,0 - 255,255,255" [0,0,0]
interval ="0 - NNN" [8]
lineThickness ="1 - NNN" [1]
tickThickness ="1 - NNN" [1]
type ="foreground | background" [foreground]
width ="1 - NNN" [6]

When using Image Server:


antialiasing ="true | false" [false]
color ="0,0,0 - 255,255,255" [0,0,0]
interval ="0 - NNN" [8]
lineThickness ="1 - NNN" [1]
overlap ="true | false" [true]
tickThickness ="1 - NNN" [1]
transparency ="0.0 - 1.0" [1.0]
type ="foreground | background" [foreground]
width ="1 - NNN" [6]
>

No Child Elements
</aims:hashLineSymbol >

Description:
Line symbol for drawing railroad symbols.

166 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
• The following figure shows the different components that make up aims:hashLineSymbol:

• A smoothing algorithm is used on the line to get a better hash effect. If a different line symbol is used, the smoothing algorithm is not applied, and a line
will not overlay exactly with a hashline (railroad). In order to make a line overlay the hashline, use aims:hashLineSymbol for the line and set the
attribute type to "background".

Attribute Descriptions for hashLineSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
color Symbol color using RGB values.
interval Distance between railroad crosshatches in pixels.
lineThickness Line thickness in pixels.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
tickThickness Tick thickness in pixels.

JAVA CONNECTOR TAG LIBRARY 167


Attribute Usage
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
type If type is "foreground", the symbol draws as a railroad with the crosshash. If type is "background", the symbol draws as a simple
line without the crosshash.
width Width of the crosshash segments in pixels.

Examples for hashLineSymbol:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine"/>
<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:separators ts=";" cs=" " />
<aims:createLayer layerId="myLayerId" name="line" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:line coords="10 150;400 150" >
<aims:hashLineSymbol color="0,0,0" lineThickness="8" tickThickness="8" transparency="0.5"
interval="16" width="16" type="foreground" antialiasing="false" overlap="true" />
</aims:line>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

168 Cu STOMIZING ARC IMS—JAVA CONNECTOR


hideLayer
Used in: mapping
Parent elements: aims:legend

<aims:hideLayer

Attributes that set values:


hide ="true | false"
layerId ="string"
>

No Child Elements
</aims:hideLayer >

Bold: Attribute or child element is required.

Description:
Hides a specified layer from a legend when the legend is displayed.

Restrictions:
None

Notes:
None

Attribute Descriptions for hideLayer:


Attribute Usage
hide Toggle to hide layer. A value of "true" hides the layer from the legend.
layerId Layer ID defined in map configuration file or from layer added using aims:createLayer.

JAVA CONNECTOR TAG LIBRARY 169


Examples for hideLayer:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" name="serviceName"/>
<aims:map id="myMapURL" serviceId="<%=myService%>" legend="myLegend" >
<aims:legend title="Legend" font="Arial" autoExtend="true" columns="1" width="170" height="100"
backgroundColor="255,255,0" >
<aims:hideLayer layerId="6" hide="true" />
</aims:legend>
</aims:map>
<img src="<%=myLegend%>" />

170 Cu STOMIZING ARC IMS—JAVA CONNECTOR


hole
Used in: mapping
Parent elements: aims:polygon

<aims:hole

Attributes that set values:


coords ="x1 y1;...xn yn"
>

No Child Elements
</aims:hole >

Bold: Attribute or child element is required.

Description:
Provides the x,y coordinate locations for holes inside a polygon feature.

Restrictions:
• The polygon that makes up a hole must be closed.

Notes:
None

Attribute Descriptions for hole:


Attribute Usage
coords X,y coordinates representing one or more holes inside a polygon. Coordinate x,y values are separated by white space, and
coordinate pairs are separated by a semicolon by default. The separators can be changed by using aims:separators. Each hole
must be closed.

JAVA CONNECTOR TAG LIBRARY 171


Examples for hole:
Example 1:
<aims:tcpConnection id="myConnection" host="Kabilan" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="SantaClara"/>
<aims:map id="mapImage" serviceId="<%=myMapService%>" width="500" height="300" >

<aims:separators ts=";" cs="," />

<aims:createLayer layerId="polygonLayer" type="acetate" visible="true" >


<aims:acetateObject>
<aims:polygon coords="-122.038,37.366;-121.575,37.366;-121.575,37.218;-122.038,37.218;-
122.038,37.366">
<aims:gradientFillSymbol />
<aims:hole coords="-121.897,37.338;-121.812,37.338;-121.812,37.307;-121.897,37.307;-121.897,37.338"
/>
</aims:polygon>
</aims:acetateObject>
<aims:acetateObject units="pixel" >
<aims:polygon coords="10,10;400,10;400,100;10,100;10,10">
<aims:simplePolygonSymbol fillColor="0,255,0" transparency="1.0" />
<aims:hole coords="150,40;150,60;200,60;200,40;150,40" />
</aims:polygon>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(mapImage)%>" />

172 Cu STOMIZING ARC IMS—JAVA CONNECTOR


httpConnection
Used in: mapping metadata administration
Parent elements: None

<aims:httpConnection

Attributes that set values:


url ="string"
debug ="true | false" [false]
password ="string"
role ="user | admin" [user]
username ="string"

Attributes that return values:


id ="object"
ping ="OK | FAIL | FIRST_LOGIN"
>

No Child Elements
</aims:httpConnection >

Bold: Attribute or child element is required.

Description:
Creates an HTTP or HTTPS connection proxy to use with aims:map.

Restrictions:
• When role is "admin", the attribute debug can only be set to "false".

Notes:
None

JAVA CONNECTOR TAG LIBRARY 173


Attribute Descriptions for httpConnection:
Attribute Usage
debug Shows debug messages in servlet’s log file.
id Returns ConnectionProxy object.
password Password when service authentication is used.
ping Returns a string showing the status from pinging the ArcIMS Application Server.
role Defines the role of the connection. For administration requests, role must be set to "admin".
url The URL of the machine (i.e., http://mymachine.domain.com).
username Username when service authentication is used.

Examples for httpConnection:


Example 1:
<aims:httpConnection id="mytcpConnection" url="http://myMachine" debug="true" />

<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="serviceName" />

<aims:map id="mapImage" serviceId="<%=myService%>" width="500" height="400" />


<img src="<%=(mapImage)%>" />

174 Cu STOMIZING ARC IMS—JAVA CONNECTOR


imageWorkspace
Used in: mapping
Parent elements: aims:createLayer

<aims:imageWorkspace

Attributes that set values:


directory ="string"
name ="string"
>

No Child Elements
</aims:imageWorkspace >

Bold: Attribute or child element is required.

Description:
Defines the workspace of an image data source.

Restrictions:
• Must refer to an existing data source.
• Not valid with ArcMap Server.

Notes:
• It is recommended not to use aims:imageWorkspace in a request. All workspaces should be included in the map configuration file.
• To add an image workspace, <MAP dynamic="true" > must be set in the map configuration file.

Attribute Descriptions for imageWorkspace:


Attribute Usage
directory Directory containing images. UNC pathnames can be used (\\myComputer\shapefiledirectory).
name Workspace name. Must be unique among all data sources.

JAVA CONNECTOR TAG LIBRARY 175


Examples for imageWorkspace:
Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" debug="true" />
<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="serviceName" />

<aims:map id="mapImage" serviceId="<%=myService%>" width="500" height="300" >


<aims:createLayer layerId="imageLayer" type="image" name="SanFranciscoImage" visible="true" >
<aims:imageWorkspace name="workspace2" directory="C:\\ArcIMS\\AXL\\TutorialData\\SanFrancisco" />
<aims:dataset name="sanfran.tif" type="image" workspace="workspace2" />
</aims:createLayer>
</aims:map>
<img src="<%=(mapImage)%>" />

176 Cu STOMIZING ARC IMS—JAVA CONNECTOR


iterateAddressMatchInputs
Used in: mapping
Parent elements: aims:layer

<aims:iterateAddressMatchInputs

Attributes that pass objects:


inputs ="object"

Attributes that return values:


count ="integer"
maxCandidates ="integer" [20]
minScore ="0 – 100" [60]
style ="USAddressZ | USAddress | USSingleHouse | USSingleHouseZ | USSingleRange | USSingleRangeZ | Zip4 | Zip4Range | Zip5 | SingleField"
>

(m) <getInputAttribute... />

</aims:iterateAddressMatchInputs >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through items in the addressMatchInput object.

Restrictions:
None

Notes:
• ArcIMS has 10 standard address styles:
GCSTYLE Address Style Description
USAddressZ U.S. streets with zone: This style considers street addresses with zone information such as postal ZIP

JAVA CONNECTOR TAG LIBRARY 177


GCSTYLE Address Style Description
Codes or city names. Street features are represented by two house number intervals, one for the left
side of the street and the other for the right side of the street. The parity (odd/even) of each interval
should agree. The beginning number of the intervals can either be lower or higher than the end
number.
USAddress U.S. streets: This style is used for address geocoding without zone information. Street features are
represented by two house number intervals, one for the left side of the street and the other for the right
side of the street.
USSingleRangeZ U.S. single range with zone: This style considers street or parcel addresses with zone information such
as postal ZIP Codes or city names. Features are represented by one house number interval. No parity
(odd/even) of the house numbers is required.
USSingleRange U.S. single range: This style is used for address geocoding without zone information. Features are
represented by one house number interval. No parity (odd/even) of the house numbers is required.
USSingleHouseZ U.S. single house with zone: This style considers parcel or point addresses with zone information such
as postal ZIP Codes or city names. Features are represented by a single house number.
USSingleHouse U.S. single house: This style is used for address geocoding without zone information. Features are
represented by a single house number.
Zip4 ZIP+4: This style is used for geocoding ZIP+4 using two components (ZIP and ZIP4).
Zip4Range ZIP+4 range: This style is used for geocoding ZIP+4 in a range using three components (ZIP,
ZIP4Low, and ZIP4High).
Zip5 ZIP 5-digit: This style is used for geocoding five-digit ZIP Code addresses.
SingleField Single field: This style is used for geocoding based on the value of a single field in the reference
layer's attribute table. The style contains one component (Keyfield).

Attribute Descriptions for iterateAddressMatchInputs:


Attribute Usage
count Number of objects in the Results collection.
inputs AddressMatchInputs Object retrieved from aims:addressMatchInputs id attribute. Results are retrieved from the
AddressMatchInputs object.
maxCandidates Maximum number of returned candidates.
minScore Minimum score of returned candidates. If not included, all candidates with scores above 60 are returned. A candidate with a
score of 100 means a perfect match, and 0 means no match.

178 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
style Type of address style.

Examples for iterateAddressMatchInputs:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" debug="true"/>
<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="geoServiceName"
loadExtensions="true" />
<aims:map id="mapImage" serviceId="<%=myService%>" reset="false" >
<aims:layer layerId="3" >
<aims:addressMatchInputs id="myInputs" minScore="0" maxCandidates="100" >
<aims:setInput inputId="STREET" value="380 New York St" />
<aims:setInput inputId="ZONE" value="" />
<aims:setInput inputId="CROSSSTREET" value="" />
</aims:addressMatchInputs>
<aims:iterateAddressMatchInputs inputs="<%=myInputs%>" count="myCount" minScore="myMinScore"
maxCandidates="myMax" style="myStyle" >
<aims:getInputAttribute id="myDes" attribute="DESCRIPTION" />
<aims:getInputAttribute id="myId" attribute="ID" />
<aims:getInputAttribute id="myLabel" attribute="LABEL" />
<aims:getInputAttribute id="myType" attribute="TYPE" />
<aims:getInputAttribute id="myWidth" attribute="WIDTH" />
<b>Description </b>: <%=myDes%> <br>
<b>Id </b>: <%=myId%> <br>
<b>Label </b>: <%=myLabel%> <br>
<b>Type </b>: <%=myType%> <br>
<b>Width </b>: <%=myWidth%> <br>
</aims:iterateAddressMatchInputs>
<aims:iterateAddressMatchResults inputs="<%=myInputs%>" count="resultsCount" >
<aims:getResultAttribute id="myValue" attribute="VALUE" />
<aims:getResultAttribute id="myScore" attribute="SCORE" />
<aims:getResultAttribute id="myPoint" attribute="POINT" />
<b>Value </b>: <%=myValue%> <br>
<b>Score </b>: <%=myScore%> <br>
<b>Point </b>: <%=myPoint%> <br>
</aims:iterateAddressMatchResults>

JAVA CONNECTOR TAG LIBRARY 179


<b>Result count </b>: <%=resultsCount%>
</aims:layer>
</aims:map>

180 Cu STOMIZING ARC IMS—JAVA CONNECTOR


iterateAddressMatchResults
Used in: mapping
Parent elements: aims:layer

<aims:iterateAddressMatchResults

Attributes that pass objects:


inputs ="object"

Attributes that return values:


count ="integer"
>

(m) <getResultAttribute... />

</aims:iterateAddressMatchResults >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through address match results after values are set in aims:addressMatchInputs.

Restrictions:
None

Notes:
• Aims:mapService must have loadExtensions="true" to populate aims:addressMatchInputs.

JAVA CONNECTOR TAG LIBRARY 181


Attribute Descriptions for iterateAddressMatchResults:
Attribute Usage
count Number of objects in the Results collection.
inputs AddressMatchInputs object retrieved from aims:addressMatchInputs id attribute. Results are retrieved from the
AddressMatchInputs object.

Examples for iterateAddressMatchResults:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" debug="true"/>
<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="geoServiceName"
loadExtensions="true" />
<aims:map id="mapImage" serviceId="<%=myService%>" reset="false" >
<aims:layer layerId="3" >
<aims:addressMatchInputs id="myInputs" minScore="0" maxCandidates="100" >
<aims:setInput inputId="STREET" value="380 New York St" />
<aims:setInput inputId="ZONE" value="" />
<aims:setInput inputId="CROSSSTREET" value="" />
</aims:addressMatchInputs>
<aims:iterateAddressMatchInputs inputs="<%=myInputs%>" count="myCount" minScore="myMinScore"
maxCandidates="myMax" style="myStyle" >
<aims:getInputAttribute id="myDes" attribute="DESCRIPTION" />
<aims:getInputAttribute id="myId" attribute="ID" />
<aims:getInputAttribute id="myLabel" attribute="LABEL" />
<aims:getInputAttribute id="myType" attribute="TYPE" />
<aims:getInputAttribute id="myWidth" attribute="WIDTH" />
<b>Description </b>: <%=myDes%> <br>
<b>Id </b>: <%=myId%> <br>
<b>Label </b>: <%=myLabel%> <br>
<b>Type </b>: <%=myType%> <br>
<b>Width </b>: <%=myWidth%> <br>
</aims:iterateAddressMatchInputs>
<aims:iterateAddressMatchResults inputs="<%=myInputs%>" count="resultsCount" >
<aims:getResultAttribute id="myValue" attribute="VALUE" />
<aims:getResultAttribute id="myScore" attribute="SCORE" />
<aims:getResultAttribute id="myPoint" attribute="POINT" />

182 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<b>Value </b>: <%=myValue%> <br>
<b>Score </b>: <%=myScore%> <br>
<b>Point </b>: <%=myPoint%> <br>
</aims:iterateAddressMatchResults>
<b>Result count </b>: <%=resultsCount%>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 183


iterateContainersForServer
Used in: administration
Parent elements: None

<aims:iterateContainersForServer

Attributes that pass objects:


server ="object"

Attributes that return values:


count ="integer"
>

(m) <getContainerAttribute... />

</aims:iterateContainersForServer >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through all ArcIMS Spatial Servers on a server machine to display information about each server.

Restrictions:
None

Notes:
• Use aims:getContainerAttribute to retrieve values about containers from a server.

184 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for iterateContainersForServer:
Attribute Usage
count Returns the number of containers iterated.
server A Server object retrieved from aims:getServer.

Examples for iterateContainersForServer:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://brugge"
role="admin"
debug="true"
username="admin"
password="admin"
/>

aims:getServer id="myServer" connectionId="<%=myhttpConnection%>" name="brugge" error="myError1" />

<aims:iterateContainersForServer server="<%=myServer%>" count="containerCount" >


<aims:getContainerAttribute id="myContainer" attribute="NAME" connectionId="<%=myhttpConnection%"
virtualServers="myVirtualServers" />
<td>
<br><b>Container Name is: <%=myContainer%></b>
</td>
<aims:iterateVirtualServers virtualServers="<%=myVirtualServers%>" count="serviceCount2" >
<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>

JAVA CONNECTOR TAG LIBRARY 185


version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

</aims:iterateContainersForServer>
containerCount <%=containerCount%>

186 Cu STOMIZING ARC IMS—JAVA CONNECTOR


iterateContentType
Used in: metadata
Parent elements: None

<aims:iterateContentType

Attributes that pass objects:


value ="object"

Attributes that return values:


count ="integer"
id ="string"
result ="true | false"
>

No Child Elements
</aims:iterateContentType >

Bold: Attribute or child element is required.

Description:
Iterates through metadata content types and their counts.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 187


Attribute Descriptions for iterateContentType:
Attribute Usage
count The count of the current content type in the iteration.
id The name of the current content type in the iteration. Can be any string.
result Determines whether there is more than one content type present in the result set.
value The result set from which to generate the summary.

Examples for iterateContentType:


Example 1: Iterates through metadata content types and their counts.

<%-- Get a handle to the results --%>


<% DatasetCollection results = (DatasetCollection)request.getAttribute("results");

<%-- Start: Type of Content Summary --%>

<% boolean printedTableHeader = false; %>


<aims:iterateContentType id="currentContent" count="contentCount" value="<%=results%>"
result="moreThanOne">

<%-- check how many content types there are --%>


<% if (moreThanOne.equals("true")) { %>

<% if (!printedTableHeader) { // print out a table header, since we are on the first result %>

<% if (goTo.equals("browse")) { %>


<br>
<% } %>

<a name="top">

<%-- print out table column headings --%>


<table width="100%" border="0" cellspacing="0" cellpadding="3">
<tr>

188 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<td><span class="explorerText"><b>Type of Content</b></span></td>
<td align="center"><span class="explorerText"><b>Records</b></span></td>
</tr>

<% printedTableHeader = true; %>

<% } %>

<%-- iterate through all the content types --%>


<tr>
<td><a href="#<%=currentContent%>"><%=currentContent%></a></td>
<td align="center"><span class="explorerText"><%=contentCount%></span></td>
</tr>

<% } %>

</aims:iterateContentType>

<% if (printedTableHeader) { // close the table %>


</table>
<br>
<% } %>

<%-- End: Type of Content Summary --%>

JAVA CONNECTOR TAG LIBRARY 189


iterateDataframe
Used in: mapping
Parent elements: None

<aims:iterateDataframe

Attributes that pass objects:


dataframeCollection ="object"

Attributes that return values:


id ="string"
dataframeName ="string"
>

No Child Elements
</aims:iterateDataframe >

Bold: Attribute or child element is required.

Description:
Iterates through data frames in a Data Frames collection.

Restrictions:
None

Notes:
None

Attribute Descriptions for iterateDataframe:


Attribute Usage
dataframeCollection Data Frames Collection object passed from aims:arcMapService id.
dataframeName Returns the data frame name for the Map object.
id Returns the ArcIMS Map object.

190 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for iterateDataframe:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:arcMapService id="myDataframeCollection" connectionId="<%=(myConnection)%>" name="arcmapservicename"


dpi="0" loadLayout="true" error="myError"/>

<aims:iterateDataframe id="myMapObject" dataframeName="dfn"


dataframeCollection="<%=(myDataframeCollection)%>">
<b>Data Frame Name </b> <%=(dfn)%><br>
<aims:map id="myMap" serviceId="<%=(myMapObject)%>" width="600" height="300" />
<img src="<%=myMap%>" /><br>
</aims:iterateDataframe>

JAVA CONNECTOR TAG LIBRARY 191


iterateEnvelope
Used in: mapping
Parent elements: aims:recordset

<aims:iterateEnvelope

Attributes that return values:


maxx ="double"
maxy ="double"
minx ="double"
miny ="double"
>
No Child Elements
</aims:iterateEnvelope >

Bold: Attribute or child element is required.

Description:
Iterates through envelopes in a record set.

Restrictions:
None

Notes:
None

Attribute Descriptions for iterateEnvelope:


Attribute Usage
Maxx Maximum x-coordinate in map units.
Maxy Maximum y-coordinate in map units.
Minx Minimum x-coordinate in map units.
miny Minimum y-coordinate in map units.

192 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for iterateEnvelope:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName" />

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">


<aims:layer layerId="6" visible="true">
<aims:filter envelope="true" whereExpression="NAME='San Jose'" />
<aims:recordset>
<b>Envelope </b><br>
<aims:iterateEnvelope maxx="maxx" maxy="maxy" minx="minx" miny="miny" >
Max X Value : <%=(maxx)%> <br>
Max Y Value : <%=(maxy)%> <br>
Min X Value : <%=(minx)%> <br>
Min Y Value : <%=(miny)%> <br>
</aims:iterateEnvelope>
</aims:recordset>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 193


iterateGeometry
Used in: mapping
Parent elements: aims:recordset

<aims:iterateGeometry

Attributes that return values:


x ="double"
y ="double"
recordNumber ="integer"
>

No Child Elements
</aims:iterateGeometry >

Bold: Attribute or child element is required.

Description:
Iterates through the geometry of a feature in a record set.

Restrictions:
None

Notes:
None

194 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for iterateGeometry:

Attribute Usage
recordNumber Returns the record position of the Geometry object.
x Returns the x-coordinate of the Points object.
y Returns the y-coordinate of the Points object.

Examples for iterateGeometry:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">


<aims:layer layerId="6" visible="true">
<aims:filter geometry="true" whereExpression="NAME='San Jose'" />
<aims:recordset>
<b>Geometry </b><br>
<aims:iterateGeometry x="myX" y="myY">
X Value : <%=(myX)%>
Y Value : <%=(myY)%> <br>
</aims:iterateGeometry>
</aims:recordset>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 195


iterateLayers
Used in: mapping
Parent elements: aims:map

<aims:iterateLayers

Attributes that set values:


layerId ="string"
type ="ACETATE | FEATURE | IMAGE | ALL" [ALL]

Attributes that return values:


count ="integer"
>

(m) <getLayerAttribute... />

</aims:iterateLayers >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through the Layers collection returned by aims:map.

Restrictions:
None

Notes:
None

196 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for iterateLayers:
Attribute Usage
count Returns the count for the specified type.
layerId Specifies which layer to iterate.
type Sets the type of layers to iterate.

Examples for iterateLayers:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=myMapService%>" width="300" height="100">
<aims:iterateLayers count="layerCount">
<aims:getLayerAttribute id="layerId" attribute="ID" />
ID : <%=layerId%>
<aims:getLayerAttribute id="layerName" attribute="NAME" />
Layer Name : <%=layerName%><br>
</aims:iterateLayers>
Layer Count : <%=(layerCount)%>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 197


iterateMetadata
Used in: metadata
Parent elements: None

<aims:iterateMetadata

Attributes that pass objects:


iterate ="object"

Attributes that return values:


size ="string"
>

(m) <datasetProperty... />

</aims:iterateMetadata >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through the Metadata Document collection returned by aims:browse or aims:search.

Restrictions:
None

Notes:
None

198 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for iterateMetadata:
Attribute Usage
iterate The Document collection returned by aims:browse or aims:search.
size Returns the number of items in the document collection.

Examples for iterateMetadata:


Example 1: Iterates through the metadata document collection returned by aims:browse or aims:search.
<%-- Get Server Settings --%>
<aims:getSettings id="hostName" value="meta_host_name" />
<aims:getSettings id="portNumber" value="meta_port_number" />
<aims:getSettings id="serviceName" value="meta_service_name" />

<%-- Get Connection --%>


<aims:tcpConnection id="myConnection" host="<%= hostName %>" port="<%= portNumber %>" debug="true" />

<% String docId = request.getParameter("docId"); %>

<aims:browse
id="browseChildren"
connectionId="<%= myConnection %>"
service="<%= serviceName %>"
docId="<%= docId %>"
folderMask="2" />

<aims:iterateMetadata iterate="<%= browseChildren %>" size="mySize">

<% if (!printedHeader) { %>


<span class="explorerText">Categories</span>
<ul>
<% printedHeader = true; %>
<% } %>

<aims:datasetProperty id="theName" value="NAME" />


<aims:datasetProperty id="theDocId" value="DOCID" />

JAVA CONNECTOR TAG LIBRARY 199


<li><a href="JavaScript:browseFolder('<%= URLEncoder.encode(theName) %>','<%=
URLEncoder.encode(theDocId) %>');"><%= theName %></a></li>

</aims:iterateMetadata>

200 Cu STOMIZING ARC IMS—JAVA CONNECTOR


iterateRasterInfo
Used in: mapping
Parent elements: None

<aims:iterateRasterInfo

Attributes that pass objects:


rasterInfo ="object"

Attributes that return values:


rasterId ="string"
number ="string"
value ="string"
>

No Child Elements
</aims:iterateRasterInfo >

Bold: Attribute or child element is required.

Description:
Iterates through the raster information of a layer.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 201


Attribute Descriptions for iterateRasterInfo:
Attribute Usage
number Returns the Band Number.
rasterId Returns the Raster ID.
rasterInfo RasterInfo object passed from aims:getRasterInfo id.
value Returns the Band Value.

Examples for iterateRasterInfo:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceImage"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">

<aims:getRasterInfo id="myRaster" layerId="0" x="1099.067" y="1349.42" />

<aims:iterateRasterInfo rasterInfo="<%=(myRaster)%>" rasterId="id" number="no" value="val">


<b>Raster Id = </b> <%=(id)%>
<b>Number = </b> <%=(no)%>
<b>Value = </b> <%=(val)%><br>
</aims:iterateRasterInfo>
</aims:map>

202 Cu STOMIZING ARC IMS—JAVA CONNECTOR


iterateRecordset
Used in: mapping
Parent elements: aims:recordset

<aims:iterateRecordset

Attributes that return values:


fieldValue ="string"
recordLength ="integer"
recordsetCount ="integer"
>

No Child Elements
</aims:iterateRecordset >

Bold: Attribute or child element is required.

Description:
Iterates through record set in the RecordSet collection.

Restrictions:
None

Notes:
None

Attribute Descriptions for iterateRecordset:


Attribute Usage
fieldValue Returns the field value of the record.
recordLength Returns the number of columns in a record.
recordsetCount Returns the total number of records.

JAVA CONNECTOR TAG LIBRARY 203


Examples for iterateRecordset:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />

<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">


<aims:layer layerId="6" visible="true">
<aims:filter whereExpression="NAME='San Jose'" />
<aims:recordset>
<b>Recordset</b><br>
<aims:iterateRecordset fieldValue="fValue">
Field Value : <%=(fValue)%> <br>
</aims:iterateRecordset>
</aims:recordset>
</aims:layer>
</aims:map>

204 Cu STOMIZING ARC IMS—JAVA CONNECTOR


iterateServices
Used in: administration
Parent elements: None

<aims:iterateServices

Attributes that pass objects:


services ="object"

Attributes that return values:


count ="integer"
>

(m) <getServiceAttribute... />

</aims:iterateServices >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through a collection of services or an individual service to display information about a service.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 205


Attribute Descriptions for iterateServices:
Attribute Usage
count Returns the number of services iterated.
services A Service or ServiceCollection object retrieved from aims:getService, aims:createService, or aims:getServices.

Examples for iterateServices:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
username="admin"
password="admin"
/>

<aims:getServices id="myServices" connectionId="<%=myhttpConnection%>" />

<aims:iterateServices services="<%=myServices%>" count="myCount" >


<aims:getServiceAttribute id="theName" attribute="NAME" />
<aims:getServiceAttribute id="theFile" attribute="CONFIGFILE" />
<aims:getServiceAttribute id="theType" attribute="IMAGETYPE" />
<aims:getServiceAttribute id="theOutDir" attribute="OUTPUTDIR" />
<aims:getServiceAttribute id="theOutClean" attribute="OUTPUTCLEANUP" />
<aims:getServiceAttribute id="theOutURL" attribute="OUTPUTURL" />
<aims:getServiceAttribute id="thePixel" attribute="PIXELCOUNT" />
<aims:getServiceAttribute id="theVSName" attribute="VIRTUALSERVERNAME" />
<aims:getServiceAttribute id="theVSInfo" attribute="VIRTUALSERVERINFO" />
<aims:getServiceAttribute id="theStatus" attribute="STATUS" />
<aims:getServiceAttribute id="theDes" attribute="DESCRIPTION" />
<aims:getServiceAttribute id="theAcc" attribute="ACCESS" />
<td>
<br><b>Iterate all services</b>
<br><b>Service name: <%=theName%></b>
<br><b>Config file: <%=theFile%></b>
<br><b>Image Type: <%=theType%></b>

206 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<br><b>Pixelcount: <%=thePixel%></b>
<br><b>Virtual Server Name: <%=theVSName%></b>
<br><b>Virtual Server Info: <%=theVSInfo%></b>
<br><b>Output Dir: <%=theOutDir%></b>
<br><b>Output URL: <%=theOutURL%></b>
<br><b>Output Cleanup: <%=theOutClean%></b>
<br><b>Description: <%=theDes%></b>
<br><b>Access: <%=theAcc%></b>
<br><b>Status: <%=theStatus%></b>
<br><b></b>
</td>
</aims:iterateServices>

JAVA CONNECTOR TAG LIBRARY 207


iterateTableDesc
Used in: mapping
Parent elements: aims:recordset

<aims:iterateTableDesc

Attributes that return values:


fieldName ="string"
fieldLength ="integer"
fieldPrecision ="double"
fieldType ="string"
>

No Child Elements
</aims:iterateTableDesc >

Bold: Attribute or child element is required.

Description:
Iterates through column names of a table.

Restrictions:
None

Notes:
None

Attribute Descriptions for iterateTableDesc:


Attribute Usage
fieldLength Returns the length of the field for the recordset.
fieldName Returns the name of the field for the recordset.
fieldPrecision Returns the precision of the field for the recordset.

208 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
fieldType Returns the type of the field for the recordset.

Examples for iterateTableDesc:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>"


loadRecordset="true" loadEnvelope="true" loadExtensions="true" loadRenderer="true" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" width="500"


height="300">
<aims:separators ts="," cs=" " />
<aims:layer layerId="0" visible="true">
<aims:filter envelope="true" geometry="true" globalEnvelope="true">
<aims:line coords="-122.483 37.769,-122.482 37.763" />
</aims:filter>
<aims:recordset>
<aims:iterateTableDesc fieldName="fName" fieldType="fType" fieldPrecision="fPrec" fieldLength="fLen">
<%=(fName)%>
<%=(fType)%>
<%=(fPrec)%>
<%=(fLen)%> <br>
</aims:iterateTableDesc>
</aims:recordset>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 209


iterateVirtualServers
Used in: administration
Parent elements: None

<aims:iterateVirtualServers

Attributes that pass objects:


virtualServers ="object"

Attributes that return values:


count ="integer"
>

(m) <getVirtualServerAttribute... />

</aims:iterateVirtualServers >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Iterates through a collection of Virtual Servers or an individual Virtual Server to display information about a Virtual Server.

Restrictions:
None

Notes:
None

210 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for iterateVirtualServers:
Attribute Usage
count Returns the number of Virtual Servers iterated.
virtualServers A Virtual Server collection retrieved from aims:getVirtualServer, aims:createVirtualServer, or aims:getVirtualServers.

Examples for iterateVirtualServers:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:getVirtualServers id="myServers" connectionId="<%=myhttpConnection%>" error="getError" />

<aims:iterateVirtualServers virtualServers="<%=myServers%>" count="serverCount" >


<aims:getVirtualServerAttribute id="name" attribute="NAME" />
<aims:getVirtualServerAttribute id="type" attribute="TYPE" />
<aims:getVirtualServerAttribute id="access" attribute="ACCESS" />
<aims:getVirtualServerAttribute id="description" attribute="DESCRIPTION" />
<aims:getVirtualServerAttribute id="version" attribute="VERSION" />
<aims:getVirtualServerAttribute id="containerset" attribute="CONTAINERSET" />
<td>
<br><b>name is: <%=name%></b>
type is: <%=type%>
description is: <%=description%>
version is: <%=version%>
access is: <%=access%>
containerset is: <%=containerset%>
</td>
</aims:iterateVirtualServers>

JAVA CONNECTOR TAG LIBRARY 211


layer
Used in: mapping
Parent elements: aims:map

<aims:layer

Attributes that set values:


layerId ="string"
visible ="true | false"
>
Nested tag for showing attribute information:
(m) <recordSet... />

Nested tags for defining a renderer:


<groupRenderer... /> [Or]
<scaleDependentRenderer... /> [Or]
<simpleLabelRenderer... /> [Or]
<simpleRenderer... /> [Or]
<valueMapLabelRenderer... /> [Or]
<valueMapRenderer... /> [Or]

Nested tags for showing a subset of data:


<displayFeatures... />
<filter... />

Nested tags used for geocoding:


<addressMatchInputs ... />
<iterateAddressMatchInputs... />
<iterateAddressMatchResults... />

</aims:layer >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

212 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Description:
Changes attributes of a specified layer.

Restrictions:
None

Notes:
None

Attribute Descriptions for layer:


Attribute Usage
layerId Layer ID defined in a map configuration file or from layer added using aims:createLayer.
visible Toggles the visibility of the layer.

Examples for layer:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" debug="true"/>
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMapURL" serviceId="<%=myService%>">
<aims:layer layerId="0" visible="true" >
<aims:displayFeatures expression="CNTRY_NAME = 'Zaire'" zoomToFeatures="true">
<aims:gradientFillSymbol startColor="255,255,255" finishColor="0,0,0" />
</aims:displayFeatures>
</aims:layer>
</aims:map>
<img src="<%=(myMapURL)%>" />

JAVA CONNECTOR TAG LIBRARY 213


legend
Used in: mapping
Parent elements: aims:map

<aims:legend

Attributes that set values:

PROPERTIES when using ArcMap Server:


autoExtend ="true | false" [false]
display ="true | false" [true]
font ="Any system font" [Arial]
height ="1 - NNN" [300]
swatchHeight ="integer" [14]
swatchWidth ="integer" [18]
title ="string"
titleFontSize ="integer" [12]
width ="1 - NNN" [125]

When using Image Server:


anitaliasing ="true | false" [true]
autoExtend ="true | false" [false]
backgroundColor ="0,0,0 - 255,255,255"
canSplit ="true | false" [false]
cellSpacing ="integer" [2]
columns ="integer" [1]
display ="true | false" [true]
font ="Any system font" [Arial]
height ="1 - NNN" [300]
layerFontSize ="integer" [10]
reverseOrder ="true | false" [false]
splitText ="string" [(cont)]
swatchHeight ="integer" [14]
swatchWidth ="integer" [18]
title ="string"

214 Cu STOMIZING ARC IMS—JAVA CONNECTOR


titleFontSize ="integer" [12]
transColor ="0,0,0 - 255,255,255"
valueFontSize ="integer" [8]
width ="1 - NNN" [125]
>

(m) <hideLayer... />

</aims:legend >

(m): Child element can be used multiple times.

Description:
Defines the legend attributes of the map.

Restrictions:
None

Notes:
None

Attribute Descriptions for legend:


Attribute Usage
anitaliasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
autoExtend If "true", automatically extends legend vertically past size specified in height, if needed.
backgroundColor Legend’s background color using RGB values.
canSplit Allows splitting of valuemap layers between columns.
cellSpacing Defines number of pixels to pad between entries.
columns Defines number of columns in legend.
display Turns legend on or off.

font Font for title. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation &
Civic should be written as ESRI Transportation &amp; Civic.

JAVA CONNECTOR TAG LIBRARY 215


Attribute Usage
height Legend height in pixels.
layerFontSize Font size for layer labels.
reverseOrder Reverse order of layers.
splitText Text that displays in bottom of a column if a valuemap is carried over into the next column.
swatchHeight Height of the symbol swatch in pixels.
swatchWidth Width of the symbol swatch in pixels.
title Title of legend.
titleFontSize Font size for title.
transColor Transparency color using RGB values. White is 255,255,255.
valueFontSize Font size for value map labels.
width Legend width in pixels.

Examples for legend:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" debug="true"/>
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMapURL" legend="myLegend" serviceId="<%=myService%>">
<aims:legend title="Legend" font="Arial" autoExtend="true" columns="1" width="170" height="300"
backgroundColor="255,255,0" />
</aims:map>
<img src="<%=(myMapURL)%>" />
<img src="<%=(myLegend)%>" />

216 Cu STOMIZING ARC IMS—JAVA CONNECTOR


legendOutput
Used in: mapping
Parent elements: aims:map

<aims:legendOutput

Attributes that set values:


legendBaseURL ="string"
legendName ="string"
legendPath ="string"
legendURL ="string"
type ="gif | jpg | png | png8" [jpg]

Attributes that return values:


file ="string"
>

No Child Elements
</aims:legendOutput >

Description:
Defines a pathname and URL for legend output images.

Restrictions:
• LegendOutput works with paired attributes. If one of the attributes is used, its pair is also required. The attribute pairs are listed in the table below.
Attribute Paired Attribute Filename Assignment
legendPath legendBaseURL ArcIMS assigns random filename.

legendName legendURL User assigns a filename.

JAVA CONNECTOR TAG LIBRARY 217


Notes:
• If aims:legendOutput is used, the output files are not automatically deleted by ArcIMS Tasker. In order for the files to be deleted, the taskfile property
must be set in tasker.properties. For information on setting this property, see the ArcIMS Help.

Attribute Descriptions for legendOutput:


Attribute Usage
file Full pathname and filename for location of legend image generated by the ArcIMS Spatial Server. Image is written to the
ArcIMS Spatial Server's output directory by default. UNC pathnames are valid (\\myComputer\arcims \output).
legendBaseURL Paired with legendPath. URL of output directory if default legend filename is generated by ArcIMS. Do not include a filename.
legendName Paired with legendURL. User assigns an output legend filename. Use full pathname along with the filename. The filename must
match the filename used in legendURL. UNC pathnames are valid (\\myComputer\arcims \output\mylegend.jpg).
legendPath Paired with legendBaseURL. Directory to output legend file generated by Image Server. Do not include the filename. UNC
pathnames are valid (\\myComputer\arcims \output).
legendURL Paired with legendName. URL of output legend file. Include filename as part of URL. The filename must match the filename
used in legendName.
type Output image file type.

Examples for legendOutput:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMapURL" serviceId="<%=myService%>" legend="myLegend" >
<aims:legendOutput legendName="D:/ESRI/Output/legend.jpg" legendURL="http://myMachine/output/legend.jpg"
/>
</aims:map>

<img src="<%=myLegend%>" />

218 Cu STOMIZING ARC IMS—JAVA CONNECTOR


line
Used in: mapping
Parent elements: aims:acetateObject aims:filter

<aims:line

Attributes that set values:


coords ="x1 y1;...xn yn"
lineId ="string"
name ="string"
>

When parent element is aims:acetateObject:


<hashLineSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<trueTypeMarkerSymbol... /> [Or]

When parent element is aims:filter:


No Child Elements

</aims:line >

Bold: Attribute or child element is required.

Description:
Draws a line as an acetate layer on the map or is used as a filter to select features.

Restrictions:
• Line must be continuous with no breaks.
• Symbols can be nested only in an object, not in a filter.

JAVA CONNECTOR TAG LIBRARY 219


Notes:
None

Attribute Descriptions for line:


Attribute Usage
coords X,y coordinates representing a line. Coordinate x,y values are separated by white space, and coordinate pairs are separated by a
semicolon by default. The separators can be changed by using aims:separators.
lineId Identifier for the line.
name Name of the line.

Examples for line:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=myMapService%>" extract="true" width="300" height="500">
<aims:createLayer layerId="lineLayer" type="acetate" name="roads" visible="true" >
<aims:acetateObject units="pixel">
<aims:line coords="100 150;300 150">
<aims:simpleLineSymbol width="10" type="dash" transparency=".5" />
</aims:line>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

220 Cu STOMIZING ARC IMS—JAVA CONNECTOR


loadElements
Used in: metadata
Parent elements: None

<aims:loadElements

Attributes that set values:


names ="string"
url ="string"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:loadElements >

Bold: Attribute or child element is required.

Description:
Retrieves a value from a metadata document for each xpath.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 221


Attribute Descriptions for loadElements:
Attribute Usage
id Returns the elements for access by aims:getElement.
names A list of element names to load. Each name must be defined by the xpath or location of an element inside an XML tree. For
example, the element "title" might be inside an XML structure such as

<idinfo>
<citation>
<citeinfo>
<title>...</title>
</citeinfo>
</citation>
</idinfo>

To define "title", the string value for this attribute would be "idinfo/citation/citeinfo/title".

Values are separated in the list by a comma.


url The URL to the metadata document.

Examples for loadElements:


Example 1:
<%
String names = "metadata/idinfo/citation/citeinfo/title,"
+ "metadata/Esri/gn/contenttype,"
+ "metadata/Esri/gn/coverage,"
+ "metadata/spdoinfo/direct,"
+ "metadata/idinfo/browse/browsen,"
+ "metadata/idinfo/browse/browsed,"
+ "metadata/idinfo/citation/citeinfo/pubinfo/publish,"
+ "metadata/dataqual/lineage/srcinfo/srcscale,"
+ "metadata/Esri/gn/resolution";
%>

<aims:loadElements id="theElements" url="<%= metadataUrl %>" names="<%= names %>" />

222 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:getElement id="title" loadedElements="<%= theElements %>"
value="metadata/idinfo/citation/citeinfo/title" />

JAVA CONNECTOR TAG LIBRARY 223


map
Used in: mapping
Parent elements: None

<aims:map

Attributes that set values:


background ="0,0,0 - 255,255,255"
bufferImage ="true | false" [false]
bufferRegion ="true | false" [false]
createMap ="true | false" [true]
extract ="true | false" [false]
height ="integer" [350]
reset ="true | false" [false]
transcolor ="0,0,0 - 255,255,255"
width ="integer" [400]

Attributes that pass objects:


serviceId ="object"

Attributes that return values:


id ="string"
envelope ="object"
legend ="string"
>

Nested tags for adding dynamic and acetate layers:


(m) <createLayer... />

Nested tags for layer order:


<moveLayer... />
<moveLayerToBottom... />
<moveLayerToTop... />

Nested tags for map legend:

224 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<legend... />

Nested tags for modifying layers in map configuration file:


<layer... />

Nested tags for navigation:


<envelope... />
<pan... />
<zoom... />
<zoomFullExtent... />

Nested tags for object handling:


<getLayerId... />
(m) <iterateLayers... />
<removeLayer... />

Nested tags for output:


<extractOutput... />
<legendOutput... />
<mapOutput... />

Nested tags for projections:


<featureCoordSys... />
<filterCoordSys... />

Nested tags for separator information:


<separators... />

</aims:map >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Creates a map image.
Restrictions:
None

JAVA CONNECTOR TAG LIBRARY 225


Notes:
None

Attribute Descriptions for map:


Attribute Usage
background Background color using RGB values defined as a comma-delimited string.
bufferImage Highlights the buffered features.
bufferRegion Draws the buffered region on the map.
createMap When set to "false", the map image is not returned. If a legend image is requested, only the legend image is returned.
envelope Returns Envelope object of generated map.
extract Extracts layers based on the current extent in the viewer.
height Height of the map image.
id Returns map URL string.
legend Returns URL string of the map’s legend.
reset Resets the map back to its original state retrieved using aims:mapService.
serviceId The name of the ArcIMS service.
transcolor Transparent color using RGB values defined as a comma-delimited string.
width Width of the map image.

226 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for map:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>"


name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=(myMapService)%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

</aims:map>

<img src="<%=myMap%>" />


<img src="<%=myLegend%>" />

JAVA CONNECTOR TAG LIBRARY 227


mapOutput
Used in: mapping
Parent elements: aims:map

<aims:mapOutput

Attributes that set values:


baseURL ="string"
name ="string"
path ="string"
type ="gif | jpg | png | png8" [jpg]
url ="string"

Attributes that return values:


file ="string"
>

No Child Elements
</aims:mapOutput >

Description:
Defines a pathname and URL for output map images.

Restrictions:
• MapOutput works with paired attributes. If one of the attributes is used, its pair is also required. The attribute pairs are listed in the table below.
Attribute Paired Attribute Filename Assignment
path baseURL ArcIMS assigns random filename.

name url User assigns a filename.

• GIF format is not valid with ArcMap Image Services.

228 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Notes:
• If aims:mapOutput is used, the output files are not automatically deleted by ArcIMS Tasker. In order for the files to be deleted, the taskfile property
must be set in tasker.properties. For information on setting this property, see the ArcIMS Help.

Attribute Descriptions for mapOutput:


Attribute Usage
baseURL Paired with path. URL of output directory if default filename is generated by ArcIMS. Do not include a filename.
file Full pathname and filename for location of image file generated by the ArcIMS Spatial Server.
name Paired with url. User assigns an output filename. Use full pathname along with the filename. Only filenames with a *.jpg, *.png,
or *.gif extension are valid. The filename must match the filename used in url. UNC pathnames are valid
(\\myComputer\arcims \output\myfile.jpg).
path Paired with baseURL. Directory to output file generated by Image Server. Do not include the filename. UNC pathnames are
valid (\\myComputer\arcims \output).
type Output image file type.
url Paired with name. URL of output file. Include filename as part of URL. The filename must match the filename used in name.

Examples for mapOutput:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" />
<aims:map id="myMapURL" serviceId="<%=myService%>" service="world" legend="myLegend" >
<aims:mapOutput name="C:/Netscape/Server4/docs/output/map.png" url="http://mymachine/output/map.png" />
</aims:map>

<img src="<%=myMapURL%>" />

JAVA CONNECTOR TAG LIBRARY 229


mapService
Used in: mapping
Parent elements: None

<aims:mapService

Attributes that set values:


name ="string"
dpi ="1 - NNN"
loadEnvelope ="true | false" [false]
loadExtensions ="true | false" [false]
loadRecordset ="true | false" [false]
loadRenderer ="true | false" [false]
password ="string" [null]
username ="string" [null]

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="string"
error ="string"
>

No Child Elements
</aims:mapService >

Bold: Attribute or child element is required.

Description:
Reads initial values from an Image Service such as envelopes, extensions, renderers, and database field names.

Restrictions:
None

230 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Notes:
• For reading initial values from an ArcMap Image Service, see arcMapService.

Attribute Descriptions for mapService:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
dpi Dots per inch. Used for calculating the correct scale thresholds for scale-dependent elements. The dpi value overrides the value
used in a service.
error Returns an error string if any occurred. Returns "Success" if no error.
id Returns an ArcIMS service object.
loadEnvelope Loads individual layer envelopes from service.
loadExtensions Loads individual layer extensions from service.
loadRecordset Loads individual layer recordsets from service.
loadRenderer Loads individual layer renderers from service.
name ArcIMS service name.
password Password if authentication required.
username Username if authentication required.

Examples for mapService:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=(myMapService)%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true" bufferRegion="true"
/>

<img src="<%=myMap%>" />


<img src="<%=myLegend%>" />

JAVA CONNECTOR TAG LIBRARY 231


metadataChild
Used in: metadata
Parent elements: aims:putMetadataRelationship

<aims:metadataChild

Attributes that set values:


docId ="string"
>

No Child Elements
</aims:metadataChild >

Bold: Attribute or child element is required.

Description:
Identifies a child document that has relationship to a source or parent metadata document.

Restrictions:
None

Notes:
None

Attribute Descriptions for metadataChild:


Attribute Usage
docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.

232 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for metadataChild:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" username="publish" password="publish" />

<aims:putMetadataRelationship connectionId="<%=(myConnection)%>" service="serviceName" docId="{E6F7632B-


04CE-4B50-A995-887DD144F4DC}">

<aims:metadataChild docId="{9F582D73-7001-4A4B-A806-0FB8392E1F8F}" />


<aims:metadataSibling docId="{C7F0DEBF-BCF6-48E7-847C-72C31A1DBCBD}" />

</aims:putMetadataRelationship>

JAVA CONNECTOR TAG LIBRARY 233


metadataSibling
Used in: metadata
Parent elements: aims:putMetadataRelationship

<aims:metadataSibling

Attributes that set values:


docId ="string"
>

No Child Elements
</aims:metadataSibling >

Bold: Attribute or child element is required.

Description:
Identifies a sibling, or related, document to a source metadata document.

Restrictions:
None

Notes:
None

Attribute Descriptions for metadataSibling:


Attribute Usage
docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.

234 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for metadataSibling:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" username="publish" password="publish" />

<aims:putMetadataRelationship connectionId="<%=(myConnection)%>" service="serviceName" docId="{E6F7632B-


04CE-4B50-A995-887DD144F4DC}">

<aims:metadataChild docId="{9F582D73-7001-4A4B-A806-0FB8392E1F8F}" />


<aims:metadataSibling docId="{C7F0DEBF-BCF6-48E7-847C-72C31A1DBCBD}" />

</aims:putMetadataRelationship>

JAVA CONNECTOR TAG LIBRARY 235


moveLayer
Used in: mapping
Parent elements: aims:map

<aims:moveLayer

Attributes that set values:


fromLayerId ="string"
toLayerId ="string"
>

No Child Elements
</aims:moveLayer >

Bold: Attribute or child element is required.

Description:
Moves specified layer in Layers collection to another location in the collection.

Restrictions:
None

Notes:
None

Attribute Descriptions for moveLayer:


Attribute Usage
fromLayerId Current location of the object to move.
toLayerId New location to place the object.

236 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for moveLayer:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

<aims:moveLayer fromLayerId="0" toLayerId="1" />

</aims:map>

JAVA CONNECTOR TAG LIBRARY 237


moveLayerToBottom
Used in: mapping
Parent elements: aims:map

<aims:moveLayerToBottom

Attributes that set values:


layerId ="string"
>

No Child Elements
</aims:moveLayerToBottom >

Bold: Attribute or child element is required.

Description:
Moves specified layer in Layers collection to the end of the collection.

Restrictions:
None

Notes:
None

Attribute Descriptions for moveLayerToBottom:


Attribute Usage
layerId The layer in the collection to move to the bottom.

Examples for moveLayerToBottom:

238 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

<aims:moveLayerToBottom layerId="0" />

</aims:map>

JAVA CONNECTOR TAG LIBRARY 239


moveLayerToTop
Used in: mapping
Parent elements: aims:map

<aims:moveLayerToTop

Attributes that set values:


layerId ="string"
>

No Child Elements
</aims:moveLayerToTop >

Bold: Attribute or child element is required.

Description:
Moves specified layer in Layers collection to the beginning of the collection.

Restrictions:
None

Notes:
None

Attribute Descriptions for moveLayerToTop:


Attribute Usage
layerId The layer in the collection to move to the top.

240 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for moveLayerToTop:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

<aims:moveLayerToTop layerId="3" />

</aims:map>

JAVA CONNECTOR TAG LIBRARY 241


nestedSearch
Used in: metadata
Parent elements: aims:search

<aims:nestedSearch

Attributes that set values:


operator ="and | or"
>

<documentInfo... />
<searchEnvelope... />
<subset... />
<textQuery... />
<updated... />
<valueQuery... />

</aims:nestedSearch >

Bold: Attribute or child element is required.

Description:
Temporarily changes the nested search criteria for a metadata document from an "and" to an "or".

Restrictions:
• Must be nested within aims:search.
Notes:
None

242 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for nestedSearch:
Attribute Usage
operator Value to use in the search criteria of a nested search.

Examples for nestedSearch:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300"/>

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="serviceName" sort="name"


operator="or">

<aims:subset docId="{9DE86F30-F624-439F-B8C4-71CA3337DB59}" />


<aims:documentInfo name="Parent" />

<aims:nestedSearch operator="or">

<aims:updated after="2002-01-24 11:55:47" before="2002-01-24 11:55:47" />

</aims:nestedSearch>

</aims:search>

JAVA CONNECTOR TAG LIBRARY 243


northArrow
Used in: mapping
Parent elements: aims:acetateObject

<aims:northArrow

Attributes that set values:

When using ArcMap Server:


x ="double"
y ="double"
angle ="0.0 - 360.0" [0]
size ="integer" [30]
type ="1 - 8" [1]

When using Imager Server:


x ="double"
y ="double"
angle ="0.0 - 360.0" [0]
antialiasing ="true | false" [false]
outline ="0,0,0 - 255,255,255"
overlap ="true | false" [true]
shadow ="0,0,0 - 255,255,255"
size ="integer" [30]
transparency ="0.0 - 1.0" [1.0]
type ="1 - 8" [1]
>

No Child Elements
</aims:northArrow >

Bold: Attribute or child element is required.

244 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Description:
Places a north arrow on the acetate layer of the map.

Restrictions:
None

Notes:
• The following north arrow types are available:

• Aims:northarrow does not support custom arrows. Use aims:rasterMarkerSymbol or aims:truetypeMarkerSymbol instead.

JAVA CONNECTOR TAG LIBRARY 245


Attribute Descriptions for northArrow:
Attribute Usage
angle Angle of the north arrow in degrees. 0 degrees points to the north, and values increase moving clockwise.
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
outline Outline color using RGB values.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
shadow Shadow color using RGB values.
size Arrow size in pixels.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
type Value representing north arrow type.
x X-coordinate for north arrow placement location.
y Y-coordinate for north arrow placement location.

Examples for northArrow:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="SantaClara" />

<aims:map id="myMap" serviceId="<%=myMapService%>">


<aims:createLayer layerId="northLayer" name="AcetateLayer" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:northArrow x="50" y="50" type="3" shadow="230,230,230" />
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

246 Cu STOMIZING ARC IMS—JAVA CONNECTOR


other
Used in: mapping
Parent elements: aims:valueMapLabelRenderer aims:valueMapRenderer

<aims:other

Attributes that set values:


label ="string"
>

When parent element is aims:valueMapLabelRenderer:


<calloutMarkerSymbol... /> [Or]
<chartSymbol... /> [Or]
<rasterShieldSymbol... /> [Or]
<shieldSymbol... /> [Or]
<textSymbol... /> [Or]

When parent element is aims:valueMapRenderer:


<gradientFillSymbol... /> [Or]
<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<trueTypeMarkerSymbol... /> [Or]

</aims:other >

Description:
Used with value maps as the default for rendering symbols that do not meet the criteria for any values in aims:range or aims:exact.

JAVA CONNECTOR TAG LIBRARY 247


Restrictions:
• Not valid with ArcMap Server.

Notes:
None

Attribute Descriptions for other:


Attribute Usage
label Label for legend.

Examples for other:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="350">
<aims:layer layerId="0" visible="true" >
<aims:valueMapRenderer lookUpField="TRACT">
<aims:exact label="Tract#5121" value="5121" >
<aims:simplePolygonSymbol fillColor="255,0,0" fillTransparency="1.0"/>
</aims:exact>
<aims:exact label="Tract#511898" value="511898" >
<aims:simplePolygonSymbol fillColor="0,255,0" fillTransparency="1.0"/>
</aims:exact>
<aims:other label="other">
<aims:simplePolygonSymbol fillColor="0,0,255" fillTransparency="1.0"/>
</aims:other>
</aims:valueMapRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

248 Cu STOMIZING ARC IMS—JAVA CONNECTOR


pan
Used in: mapping
Parent elements: aims:map

<aims:pan

Attributes that set values:


direction ="1 - 8"
step ="0.0 - NNN"
>

No Child Elements
</aims:pan >

Bold: Attribute or child element is required.

Description:
Pans to a section of the map by a specified step and direction.

Restrictions:
None

Notes:
None

Attribute Descriptions for pan:


Attribute Usage
direction The directional constant value.
1 North
2 Northeast
3 East
4 Southeast

JAVA CONNECTOR TAG LIBRARY 249


Attribute Usage
5 South
6 Southwest
7 West
8 Northwest

step The amount of directional shift.

Examples for pan:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" name="serviceName"/>

<aims:map id="myMapURL" serviceId="<%=myService%>">


<aims:pan step="5" direction="8" />
</aims:map>

<img src="<%=(myMapURL)%>" />

250 Cu STOMIZING ARC IMS—JAVA CONNECTOR


point
Used in: mapping
Parent elements: aims:acetateObject aims:filter

<aims:point

Attributes that set values:


coords ="double"
>

When parent element is aims:acetateObject:


<rasterMarkerSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<truetypeMarkerSymbol... /> [Or]

When parent element is aims:filter:


No Child Elements

</aims:point >

Bold: Attribute or child element is required.

Description:
Draws a point as an acetate layer on the map or is used as a filter to select features.

Restrictions:
• Symbols, as nested tags inside point, can only be used when point is part of an acetate layer. They cannot be used when point is used in a filter.

Notes:
None

JAVA CONNECTOR TAG LIBRARY 251


Attribute Descriptions for point:
Attribute Usage
coords X,y coordinates representing one or more points. Coordinate x,y values are separated by white space, and coordinate pairs are
separated by a semicolon by default. The separators can be changed by using aims:separators.

Examples for point:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=myMapService%>">
<aims:createLayer layerId="pointLayer" type="acetate" name="point" visible="true" >
<aims:acetateObject units="pixel">
<aims:point coords="100 150;150 150;200 150">
<aims:simpleMarkerSymbol width="25" type="star" color="255,255,255" outline="0,0,0" shadow="0,0,0"
/>
</aims:point>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

252 Cu STOMIZING ARC IMS—JAVA CONNECTOR


polygon
Used in: mapping
Parent elements: aims:acetateObject aims:filter

<aims:polygon

Attributes that set values:


coords ="x1 y1;...xn yn"
name ="string"
polygonId ="string"
>

When parent element is aims:acetateObject:


(m) <hole... />
<gradientFillSymbol... /> [Or]
<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<truetypeMarkerSymbol... /> [Or]

When parent element is aims:filter:


(m) <hole... />

</aims:polygon >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Draws a polygon as an acetate layer on the map or is used as a filter to select features.

JAVA CONNECTOR TAG LIBRARY 253


Restrictions:
• Symbols, as nested tags inside polygon, can only be used when polygon is part of an acetate layer. They cannot be used when polygon is used in a filter.
• The polygon must be closed.

Notes:
None

Attribute Descriptions for polygon:


Attribute Usage
coords x,y coordinates representing a polygon. Coordinate x,y values are separated by white space, and coordinate pairs are separated
by a semicolon by default. The separators can be changed by using aims:separators.
name Name of the polygon.
polygonId Identifier for the polygon.

Examples for polygon:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" />
<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:createLayer layerId="idPolygon" name="polygon" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:polygon coords="10 110;400 110;400 160;10 160;10 110">
<aims:gradientFillSymbol transparency="1.0" type="vertical" startColor="0,255,0"
finishColor="0,0,255" overlap="true" />
</aims:polygon>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

254 Cu STOMIZING ARC IMS—JAVA CONNECTOR


publishDocument
Used in: metadata
Parent elements: None

<aims:publishDocument

Attributes that set values:


service ="string"

Attributes that pass objects:


connectionId ="object"
document ="object"
>

No Child Elements
</aims:publishDocument >

Bold: Attribute or child element is required.

Description:
Publishes a metadata document from the metadata repository.

Restrictions:
• This element can be used only by the owner established in aims:createDocument. Any other user will get an error message.

Notes:
None

JAVA CONNECTOR TAG LIBRARY 255


Attribute Descriptions for publishDocument:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
document The Document object to publish.
service The name of the metadata service to publish the document to.

Examples for publishDocument:


Example 1: Publishes a metadata document from the metadata repository.
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" username="publish"
password="publish" />

<aims:getUUID id="myUUID" connectionId="<%=(myConnection)%>" service="serviceName" />


<%
String docId = myUUID.elementAt(0).toString();
%>

<aims:createDocument id="myDataset" docId="<%=(docId)%>" name="Document" folder="true" />

<aims:publishDocument connectionId="<%=(myConnection)%>" dataset="<%=(myDataset)%>" service="serviceName"


/>

256 Cu STOMIZING ARC IMS—JAVA CONNECTOR


putMetadataRelationship
Used in: metadata
Parent elements: None

<aims:putMetadataRelationship

Attributes that set values:


docId ="string"
service ="string"

Attributes that pass objects:


connectionId ="object"
>

(m) <metadataChild... /> [And/Or]


(m) <metadataSibling... /> [And/Or]

</aims:putMetadataRelationship >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Establishes a relationship between a source metadata document and one or more child or sibling metadata documents.

Restrictions:
• At least one occurrance of aims:metadataChild or aims:metadataSibling is required. One or both tags can be used multiple times.

Notes:
• A child document is a subdocument to the current metadata document. A sibling document is a related document. When selected as a sibling, the
document is listed with the parent document under a link called "related records".

JAVA CONNECTOR TAG LIBRARY 257


Attribute Descriptions for putMetadataRelationship:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
docId String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
service The name of the metadata service that contains the published document.

Examples for putMetadataRelationship:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" username="publish" password="publish" />

<aims:putMetadataRelationship connectionId="<%=(myConnection)%>" service="serviceName" docId="{E6F7632B-


04CE-4B50-A995-887DD144F4DC}">

<aims:metadataChild docId="{9F582D73-7001-4A4B-A806-0FB8392E1F8F}" />


<aims:metadataSibling docId="{C7F0DEBF-BCF6-48E7-847C-72C31A1DBCBD}" />

</aims:putMetadataRelationship>

258 Cu STOMIZING ARC IMS—JAVA CONNECTOR


putMetadataSemantic
Used in: metadata
Parent elements: None

<aims:putMetadataSemantic

Attributes that set values:


service ="string"

Attributes that pass objects:


connectionId ="object"
>

(m) <semanticPair... />

</aims:putMetadataSemantic >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Framework for establishing a relationship between a tag and the numeric code defining semantics from the GEO Attribute Set.

Restrictions:
None

Notes:
None

JAVA CONNECTOR TAG LIBRARY 259


Attribute Descriptions for putMetadataSemantic:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
service The name of the metadata service to establish the semantic definition.

Examples for putMetadataSemantic:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" username="publish" password="publish" />

<aims:putMetadataSemantic connectionId="<%=(myConnection)%>" service="serviceName" >

<aims:semanticPair tag="idinfo/citation/citeinfo/title" zcode="4" />

</aims:putMetadataSemantic>

260 Cu STOMIZING ARC IMS—JAVA CONNECTOR


range
Used in: mapping
Parent elements: aims:valueMapLabelRenderer aims:valueMapRenderer

<aims:range

Attributes that set values:


lower ="string, numeric, or date"
upper ="string, numeric, or date"
equality ="all | upper | lower | none" [lower]
label ="string"
>

When parent element is aims:valueMapLabelRenderer:


<calloutMarkerSymbol... /> [Or]
<chartSymbol... /> [Or]
<rasterShieldSymbol... /> [Or]
<shieldSymbol... /> [Or]
<textSymbol... /> [Or]

When parent element is aims:valueMapRenderer:


<gradientFillSymbol... /> [Or]
<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simp leLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<trueTypeMarkerSymbol... /> [Or]

</aims:range >

Bold: Attribute or child element is required.

JAVA CONNECTOR TAG LIBRARY 261


Description:
Used with value map for matching a range of values within a specified field in a database. When a match occurs, the symbol is drawn as specified for
each range.

Restrictions:
• Not valid with ArcMap Server.

Notes:
• If there are leading or trailing blanks in a field value, they are trimmed before a comparison is made. For example, a field value of " Hello " is
interpreted as "Hello".

Attribute Descriptions for range:


Attribute Usage
equality Defines the upper and lower bounds of each range. If "all" is used, then lower <= value <= upper. If "upper" is used, lower <
value <= upper. If "lower" is used, lower <= value < upper.
label Label for legend.
lower Lower value of range; can be a numeric, string, or date value.
upper Upper value of range; can be a numeric, string, or date value.

Examples for range:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="350">
<aims:layer layerId="6" visible="true" >
<aims:valueMapLabelRenderer lookUpField="POP" labelField="NAME" >
<aims:range lower="0" upper="261892" equality="none" label="less than 261892">
<aims:textSymbol font="Arial" fontSize="12" fontColor="255,0,255" />
</aims:range>
<aims:range lower="261893" upper="522070" equality="none" label="261893 to 522070">
<aims:textSymbol font="Arial" fontSize="16" fontColor="0,255,0" />
</aims:range>
<aims:range lower="522071" upper="782249" equality="none" label="522071 than 782249">

262 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:textSymbol font="Arial" fontSize="20" fontColor="255,0,0" />
</aims:range>
</aims:valueMapLabelRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 263


rasterFillSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:other aims:polygon aims:range aims:simpleRenderer

<aims:rasterFillSymbol

Attributes that set values:

When using ArcMap Server:


image ="path to image file"
url ="url string"

When using Image Server:


image ="path to image file"
url ="url string"
antialiasing ="true | false" [false]
overlap ="true | false" [true]
transparency ="0.0 - 1.0" [1.0]
>

No Child Elements
</aims:rasterFillSymbol >

Bold: Attribute or child element is required.

Description:
Fills polygon features with specified image.

Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
• Acceptable image formats are JPG and GIF.

264 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for rasterFillSymbol:
Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
image Full pathname to image. ArcIMS Spatial Server uses this pathname to find the image and add it to the map. UNC pathnames can
be used (\\myComputer\arcims \output).
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
url URL used by client to retrieve image.

Examples for rasterFillSymbol:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" debug="true"/>
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=(myMapService)%>">
<aims:layer layerId="0" visible="true">
<aims:displayFeatures expression="CNTRY_NAME = 'India'" zoomToFeatures="true">
<aims:rasterFillSymbol transparency="0.5" overlap="true" url="http://myMachine/output/Prodimg.jpg"
image="D:/ESRI/Output/Prodimg.jpg" antialiasing="false" />
</aims:displayFeatures>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 265


rasterMarkerSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:line aims:other aims:point aims:polygon aims:range
aims:simpleRenderer

<aims:rasterMarkerSymbol

Attributes that set values:

When using ArcMap Server:


image ="path to image file"
url ="url string"
size ="1,1 - N,N"

When using Image Server:


image ="path to image file"
url ="url string"
antialiasing ="true | false" [false]
hotSpotX ="integer" [centered]
hotSpotY ="integer" [centered]
overlap ="true | false" [true]
shadow ="0,0,0 - 255,255,255"
sizex ="integer"
sizey ="integer"
transparency ="0.0 - 1.0" [1.0]
useCentroid ="true | false" [false]
>

No Child Elements
</aims:rasterMarkerSymbol >

Bold: Attribute or child element is required.

266 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Description:
Symbolizes point features using the specified raster image.

Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
• Acceptable image formats are JPG and GIF.

Attribute Descriptions for rasterMarkerSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
hotSpotX Determines where marker symbol is placed in relation to actual x and y location of the point the marker symbol represents. A
hotspot of 0,0 places the point at the top left corner of the marker symbol. X-coordinates are positive and measured in pixels.
The default hotspot centers the marker symbol over the point based on its actual size. For example, if a marker symbol is 16x16
pixels, the default location is 8,8. If the size attribute is set to 32x32, the default hotspot center is still 8,8.
hotSpotY Determines where marker symbol is placed in relation to actual x and y location of the point the marker symbol represents. A
hotspot of 0,0 places the point at the top left corner of the marker symbol. Y-coordinates are positive and measured in pixels.
The default hotspot centers the marker symbol over the point based on its actual size. For example, if a marker symbol is 16x16
pixels, the default location is 8,8. If the size attribute is set to 32x32, the default hotspot center is still 8,8.
image Full pathname to image. ArcIMS Spatial Server uses this pathname to find the image and add it to the map. UNC pathnames can
be used (\\myComputer\arcims \output).
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
shadow Shadow color using RGB values.
sizex Resizes marker symbol to new size in pixels. The default size is the actual width and height of the marker symbol. If size="0,0"
is specified, the ImageServer writes a warning message to the log file and uses the default size settings.
sizey Resizes marker symbol to new size in pixels. The default size is the actual width and height of the marker symbol. If size="0,0"
is specified, the ImageServer writes a warning message to the log file and uses the default size settings.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
url URL used by client to retrieve image.

JAVA CONNECTOR TAG LIBRARY 267


Attribute Usage
useCentroid By default, a marker symbol used on polygon layers draws markers at all polygon vertices. If useCentroid is "true", marker is
placed in the centroid of the polygon. If multiple polygon parts exist, the marker falls on the part with the biggest area.

Examples for rasterMarkerSymbol:


Example 1:
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:separators ts="," cs=" " />
<aims:createLayer id="myLayerId" name="point" type="acetate" visible="true">
<aims:acetateObject>
<aims:point coords="-122.495 37.788,-122.484 37.788">
<aims:rasterMarkerSymbol url="http://mymachine.domain.com/website/color.gif"
image="C:/ArcIMS/WebSite/color.gif" />
</aims:point>
</aims:acetateObject>
</aims:createLayer>
</aims:map>

268 Cu STOMIZING ARC IMS—JAVA CONNECTOR


rasterShieldSymbol
Used in: mapping
Parent elements: aims:exact aims:other aims:range aims:simpleLabelRenderer

<aims:rasterShieldSymbol

Attributes that set values:


image ="path to image file"
url ="url string"
antialiasing ="true | false" [false]
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [12]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
labelMode ="full | numericonly" [numericonly]
printMode ="titlecaps | allupper | alllower | none" [none]
shadow ="0,0,0 - 255,255,255"
textPosition ="0,0 - N,N"
transparency ="0.0 - 1.0" [1.0]
>

No Child Elements
</aims:rasterShieldSymbol >

Bold: Attribute or child element is required.

Description:
A raster shield is a user-specified image and is used as a custom shield to identify roads (or other line features). The text associated with the image
comes from a specified field and is placed on top of the image.

Restrictions:
• Works only with line features.
• Not valid with ArcMap Server.

JAVA CONNECTOR TAG LIBRARY 269


Notes:
• Acceptable image formats are JPG and GIF.
• The field for text is specified in the associated label renderer element.
• The image needs to be wide enough to support any long text. The image will not automatically resize to accommodate long strings.

Attribute Descriptions for rasterShieldSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.
fontSize Font size.
fontStyle Font style.
image Full pathname to image. ArcIMS Spatial Server uses this pathname to find the image and add it to the map. UNC pathnames can
be used (\\myComputer\arcims \output).
labelMode Determines what value is drawn on raster shield. If "full" is used, the entire field value, such as I-80, is displayed. If
"numericonly" is used, only numbers within the field are displayed. For example, I-80 is displayed as 80.
printMode Determines how labels are printed. If "none" is used, no change is made to the label: Welcome to ArcIMS. If "alllower" is used,
all letters are lowercase: welcome to arcims. If "allupper" is used, all letters are uppercase: WELCOME TO ARCIMS. If
"titlecaps" is used, the first letter of each word in a label is uppercase and everything else is lowercase: Welcome To Arcims.
shadow Shadow color using RGB values.
textPosition Determines where text is placed in relation to shield image. The coordinate 0,0 is in the top left corner, and x and y are positive
and measured in pixels. If attribute is not used, then text is placed in center of shield image.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
url URL used by client to retrieve image.

270 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for rasterShieldSymbol:
Example 1:
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="0" visible="true">
<aims:simpleLabelRenderer field="AREA">
<aims:rasterShieldSymbol transparency="1.0" font="Arial" fontStyle="bolditalic" fontSize="16"
fontColor="255,255,255" shadow="125,125,125" url="http://mymachine.domain.com/website/shield.gif"
image="C:/ArcIMS/WebSite/shield.gif" />
</aims:simpleLabelRenderer>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 271


recordset
Used in: mapping
Parent elements: aims:layer

<recordset >
No Attributes

<iterateEnvelope... />
<iterateGeometry... />
<iterateRecordset... />
<iterateTableDesc... />

</aims:recordset >

Description:
Main tag that holds information about records of a layer.

Restrictions:
None

Notes:
None

Examples for recordset:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>"


loadRecordset="true" loadEnvelope="true" loadExtensions="true" loadRenderer="true" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" width="500"


height="300">
<aims:separators ts="," cs=" " />

272 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:layer layerId="0" visible="true">
<aims:filter envelope="true" geometry="true" globalEnvelope="true">
<aims:line coords="-122.483 37.769,-122.482 37.763" />
</aims:filter>
<aims:recordset>
<aims:iterateTableDesc fieldName="fName" fieldType="fType" fieldPrecision="fPrec" fieldLength="fLen">
<%=(fName)%>
<%=(fType)%>
<%=(fPrec)%>
<%=(fLen)%> <br>
</aims:iterateTableDesc>
</aims:recordset>
</aims:layer>
</aims:map>

JAVA CONNECTOR TAG LIBRARY 273


removeLayer
Used in: mapping
Parent elements: aims:map

<aims:removeLayer

Attributes that set values:


layerId ="string"
>

No Child Elements
</aims:removeLayer >

Bold: Attribute or child element is required.

Description:
Removes a layer from the Layers collection.

Restrictions:
None

Notes:
None

Attribute Descriptions for removeLayer:


Attribute Usage
Layered The layer in the layer collection to remove.

274 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for removeLayer:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />

<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="<%=myService%>" />

<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>" extract="true"


width="300" height="100" background="100,140,230" transcolor="0,0,0" bufferImage="true"
bufferRegion="true">

<aims:removeLayer layerId="1" />

</aims:map>

JAVA CONNECTOR TAG LIBRARY 275


removeVirtualServer
Used in: administration
Parent elements: None

<aims:removeVirtualServer

Attributes that pass objects:


connectionId ="object"
virtualServer ="object"

Attributes that return values:


error ="string"
>

No Child Elements
</aims:removeVirtualServer >

Bold: Attribute or child element is required.

Description:
Removes a Virtual Server.

Restrictions:
None

Notes:
None

276 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for removeVirtualServer:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
virtualServer The VirtualServer object to remove. Use aims:getVirtualServer or aims:createVirtualServer to retrieve the Virtual Server
information.

Examples for removeVirtualServer:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://brugge"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:getVirtualServer id="myServer" connectionId="<%=myhttpConnection%>" name="FeatureServer2"


error="getError" />

<aims:removeVirtualServer virtualServer="<%=myServer%>" connectionId="<%=myhttpConnection%>"


error="removeError" />

JAVA CONNECTOR TAG LIBRARY 277


request
Used in: mapping metadata administration
Parent elements: None

<aims:request

Attributes that set values:


request ="string"
service ="string"
password ="string" [null]
username ="string" [null]

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


id ="string"
>

No Child Elements
</aims:request >

Bold: Attribute or child element is required.

Description:
Sends an ArcXML request to an established server connection.

Restrictions:
None

Notes:
None

278 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for request:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
id Returns a response string with the reference value.
password Overrides password set in aims:httpConnection or tcpConnection.
request ArcXML request string. Refer to the ArcXML Programmer's Reference Guide on how to construct requests.
service The name of the ArcIMS service.
username Overrides username set in aims:httpConnection or tcpConnection.

Examples for request:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:request id="myResponse" connectionId="<%=myTCPConnection%>"
service="world" request="<%=requestString%>" />

JAVA CONNECTOR TAG LIBRARY 279


scalebar
Used in: mapping
Parent elements: aims:acetateObject

<aims:scalebar

Attributes that set values:

When using ArcMap Server:


x ="double"
y ="double"
barColor ="0,0,0 - 255,255,255" [255, 162, 115]
barWidth ="integer" [5]
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="integer" [10]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
mapUnits ="degrees | meters | feet" [degrees]
scaleUnits ="miles | feet | meters | kilometers" [miles]
screenLength ="integer"

When using Image Server:


x ="double"
y ="double"
antialiasing ="true | false" [false]
barColor ="0,0,0 - 255,255,255" [255, 162, 115]
barTransparency ="0.0 - 1.0" [1]
barWidth ="integer" [5]
distance ="double"
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="integer" [10]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
mapUnits ="degrees | meters | feet" [degrees]
mode ="cartesian | geodesic" [cartesian]

280 Cu STOMIZING ARC IMS—JAVA CONNECTOR


outline ="0,0,0 - 255,255,255" [255,255,255]
overlap ="true | false" [true]
precision ="integer" [0]
round ="double"
scaleUnits ="miles | feet | meters | kilometers" [miles]
screenLength ="integer"
textTransparency ="0.0 - 1.0" [1]
>

No Child Elements
</aims:scalebar >

Bold: Attribute or child element is required.

Description:
Defines the look and feel of the scale bar in the acetate layer.

Restrictions:
None

Notes:
None

Attribute Descriptions for scalebar:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
barColor Scale bar color using RGB values.
barTransparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
barWidth Scale bar width in pixels.
distance Sets the length of the scale bar to always be the distance specified. The distance units are the same as the scaleunits.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.

JAVA CONNECTOR TAG LIBRARY 281


Attribute Usage
fontSize Font size.
fontStyle Font style.
mapUnits Data units on map.
mode Used when the map units are in decimal degrees. When the mode is "geodesic", the Image Server takes into account the position
on the globe when calculating the size of the scale bar symbol. When the mode is "cartesian", the Image Server uses the same
calculation for the scale bar for all points on the globe. The calculation is made at the equator.
outline Outline color using RGB values.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symb ol or any other symbol in the service.
precision Number of decimal places.
round Number of digits to round.
scaleUnits Screen units.
screenLength Scale bar length in pixels.
textTransparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
x X-coordinate for scale bar placement location.
y Y-coordinate for scale bar placement location.

282 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for scalebar:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300"/>
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" legend="myLegend" envelope="myEnvelope" serviceId="<%=myMapService%>">
<aims:createLayer layerId="scaleLayer" type="acetate" name="scalebar" visible="true" >
<aims:acetateObject units="pixel">
<aims:scalebar x="150" y="25" fontSize="5" barWidth="10" mapUnits="decimal_degrees"
scaleUnits="miles" distance="100.0" />
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>"/>

JAVA CONNECTOR TAG LIBRARY 283


scaleDependentRenderer
Used in: mapping
Parent elements: aims:createLayer aims:groupRenderer aims:layer aims:scaleDependentRenderer

<aims:scaleDependentRenderer

Attributes that set values:


lower ="double"
upper ="double"
>

<groupRenderer... /> [Or]


<scaleDependentRenderer... /> [Or]
<simpleLabelRenderer... /> [Or]
<simpleRenderer... /> [Or]
<valueMapLabelRenderer... /> [Or]
<valueMapRenderer... /> [Or]

</aims:scaleDependentRenderer >

Bold: Attribute or child element is required.

Description:
Displays specified rendering information at certain scales. A layer can have different renderings depending on the current scale. For example, when
zoomed out, you can draw a street layer one pixel in width. As you zoom farther in, you can draw the street layer eight pixels in width and in a different
color.

Restrictions:
• Known limitation with the Java Connector. When using aims:scaleDependentRenderer, the upper and lower values must be in map units per pixel.
Relative scales are not supported in this release. The formula for calculating map units per pixel is given in the Notes section. The attributes upper and
lower should both be included in every request. This limitation is for the Java Connector only. When using ArcXML, map units per pixel and relative
scales can both be used.
• Only one nested tag can be used inside aims:scaleDependentRenderer.
• Not valid with ArcMap Server.

284 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Notes:
• Scales are often referenced using a relative scale such as 1:24000. In this example, 1 meter equals 24000 meters, or 1 inch equals 24000 inches. Another
way to reference a scale in ArcIMS is by calculating the number of map units per pixel. For this release, the scales used in
aims:scaleDependentRenderer must be in map units per pixel.
Map units per pixel refers to the number of meters, feet, or decimal degrees represented by one pixel in a map. To convert from a relative scale to map
units per pixel, the size of a pixel must first be calculated. The formula for finding the number of meters in a pixel is 0.0254 / dpi. The value 0.0254 is
the number of meters in an inch, and dpi is the dpi set in the MapService or request. If no dpi is set in the MapService or request, the dpi is assumed to
be 96. As an example of pixel size, if the dpi is 96, the pixel size is 0.0254 / 96 or 0.000265 m. To convert from a relative scale to map units per pixel:
1. If the scale is in meters. To calculate the number of meters per pixel, take the relative scale and multiply by 0.000265. For example, if the
relative scale is 1:24000, then the number of meters per pixel is 24000 * 0.000265, or 6.36 meters.
2. If the scale is in feet. Do the calculation for meters (#1). Multiply the result by 3.28 (the number of feet in a meter). For example, if the number
of meters per pixel is 6.36, the number of feet is 6.36 * 3.28, or 20.86 feet.
3. If the scale is in decimal degrees. For these calculations, the earth is assumed to be an exact circle with a circumference of 40030.174 km. One
degree is 111.195 km (40030.174/360 degrees), or 111195 meters. To calculate the number of degrees, first do the calculation for meters (#1).
Next, divide the result by 111195. For example, if the number of meters per pixel is 6.36, the number of degrees is 6.36 / 111195, or
0.0000571968.

Attribute Descriptions for scaleDependentRenderer:


Attribute Usage
lower Minimum scale to display renderer using map units per pixel.
upper Maximum scale to display renderer using map units per pixel.

Examples for scaleDependentRenderer:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="5" visible="true">
<aims:scaleDependentRenderer lower="0.0" upper=".0023832">
<aims:groupRenderer>
<aims:simpleLabelRenderer field="NAME">
<aims:textSymbol />

JAVA CONNECTOR TAG LIBRARY 285


</aims:simpleLabelRenderer>
</aims:groupRenderer>
</aims:scaleDependentRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

286 Cu STOMIZING ARC IMS—JAVA CONNECTOR


sdeWorkspace
Used in: mapping
Parent elements: aims:createLayer

<aims:sdeWorkspace

Attributes that set values:


featureClass ="point | line | polygon | image"
instance ="string"
name ="string"
password ="string"
server ="string"
user ="string"
database ="string"
encrypted ="true | false" [false]
geoIndexDir ="string" [Windows: c:\temp and UNIX: /tmp]
>

No Child Elements
</aims:sdeWorkspace >

Bold: Attribute or child element is required.

Description:
Defines an ArcSDE data source.

Restrictions:
• Must refer to an existing ArcSDE data source.
• Not valid with ArcMap Server.

Notes:
• It is recommended not to use aims:sdeWorkspace in a request. All workspaces should be included in the map configuration file.
• To add an ArcSDE workspace, <MAP dynamic="true" > must be set in the map configuration file.

JAVA CONNECTOR TAG LIBRARY 287


• Aims:sdeWorkspace can be used to set up an ArcSDE direct connect. For more information on direct connect and installation instructions for use with
ArcIMS, see the Direct_Connect folder in the documentation folder located on the ArcIMS CD-ROM.
• The following table summarizes whether the attributes server and database are required or optional when using ArcSDE or ArcSDE Direct Connect. It
also shows an example of correct syntax for the attribute instance.
Database Server Instance Database
Oracle with ArcSDE Required Port:5151 Optional
Oracle with Direct Connect Optional sde:oracle Optional
SQL Server with ArcSDE Required Port:5151 Required
SQL Server with Direct Connect Optional sde:sqlserver Required
Other Databases Required Port:5151 Optional
• The next table summarizes whether the attribute user is required, the correct syntax for password, and whether the password can be encrypted.
Can Encrypt
Database User Password
Password
Oracle with ArcSDE Required MyPassword Yes
MyPassword
Oracle with Direct Connect Required No
@net8servicename
SQL Server with ArcSDE Required MyPassword Yes
SQL Server with Direct Connect Required MyPassword No
Other Databases Required MyPassword Yes
• Passwords for ArcSDE datasets, by default, are not encrypted. In order to encrypt a password, you need to connect to the ArcSDE instance while in
ArcIMS Author or ArcExplorer 4. Since you cannot connect to an ArcSDE Direct Connect layer using ArcIMS Author or ArcExplorer 4, the password
cannot be encrypted for ArcSDE Direct Connect.
• If layers do not appear in a map, double-check that the workspace information is correct including the user name and password.

Attribute Descriptions for sdeWorkspace:


Attribute Usage
database ArcSDE database.
encrypted When set to "true", the password for the ArcSDE instance is encrypted. If "false", the password is not encrypted.
featureClass Layer type.
geoIndexDir Directory where geocoding index is built. On Windows, the default directory is the "temp" directory. On UNIX, the default is
/tmp.
instance Port number for ArcSDE instance. For example, if the port for an ArcSDE dataset is 5151, then the instance is "port:5151". For

288 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
ArcSDE Direct Connect, the correct value is "sde:<database_vendor>". The two accepted values with Direct Connect are
"sde:oracle" and "sde:sqlserver".
name Workspace name; must be unique among all data sources.
password Password to access the ArcSDE server. For Oracle ArcSDE Direct Connect, the password must be appended with "@<net8
service name>".
server ArcSDE server.
user User name to access the ArcSDE server.

Examples for sdeWorkspace:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine"/>
<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="serviceName" />
<aims:map id="mapImage" serviceId="<%=(myService)%>" width="500" height="350" >
<aims:createLayer layerId="SDELayer" type="sde" name="states" visible="true" >
<aims:simpleRenderer>
<aims:simplePolygonSymbol fillColor="0,255,0" transparency="1.0" />
</aims:simpleRenderer>
<aims:sdeWorkspace name="SDEStates" instance="port:5151" server="entropy" password="bolivia"
user="bolivia" featureClass="polygon" />
<aims:dataset name="BOLIVIA.STATES" type="polygon" workspace="SDEStates" />
</aims:createLayer>
</aims:map>
<img src="<%=(mapImage)%>" />

JAVA CONNECTOR TAG LIBRARY 289


search
Used in: metadata
Parent elements: None

<aims:search

Attributes that set values:


batchSize ="integer"
folderMask ="1 - 15" [15]
operator ="and" [and | or]
sort ="name | relevance | contenttype | localarea | globalarea" [name]
sort2 ="name | relevance | contenttype | localarea | globalarea"
startBatchAt ="0 - NNN" [0]
startResult ="integer" [0]

Attributes that pass objects:


connectionId ="object"
service ="object"

Attributes that return values:


id ="string"
numResults ="string"
totalResults ="string"
>
<documentInfo... />
<nestedSearch... />
<searchEnvelope... />
<subset... />
<textQuery... />
<updated... />
<valueQuery... />
</aims:search >

Bold: Attribute or child element is required.

290 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Description:
Searches a specified list of metadata documents.

Restrictions:
None

Notes:
• Use nested tags to build search criteria.

Attribute Descriptions for search:


Attribute Usage
batchSize The maximum number of results to return.
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
folderMask Specifies folder types to be returned in the response. The value of folderMask is an integer storing the sum of one or more of the
following values:
• 1 = Root document
• 2 = "Normal" folder
• 4 = Document
• 8 = Related Services folder
For exa mple, use "4" to return documents only. Use "15" (1 + 2 + 4 + 8) to return all types of folders. The different values are:
• 1 = Root document only (1)
• 2 = "Normal" folders only (2)
• 3 = Root document and "normal" folders (1 + 2)
• 4 = Documents only (4)
• 5 = Root document and documents (1 + 4)
• 6 = "Normal" folders and documents (2 + 4)
• 7 = Root document, "normal" folders, and documents (1 + 2 + 4)
• 8 = Related Services folder only (8)
• 9 = Root document and Related Services folder (1 + 8)
• 10 = "Normal" folders and Related Services folder (2 + 8)
• 11 = Root document, "normal" folders, and Related Services folder (1 + 2 + 8)

JAVA CONNECTOR TAG LIBRARY 291


Attribute Usage
• 12 = Documents and Related Services folder (4 + 8)
• 13 = Root document, documents, and related Services folder (1 + 4 + 8)
• 14 = "Normal" folders, documents, and related Services folder (2 + 4 + 8)
• 15 = Root document, "normal" folders, documents, and Related Services folder (1 + 2 + 4 + 8)
id Reference name of DataCollection object.
numResults Returns a string containing the number of results returned in this batch.
operator Used to define the operator for the query.
service The name of the metadata service.
sort Preference for ordering results. "Name" orders the results alphabetically. "Relevance" lists results from highest to lowest
relevance. "Contenttype" sorts and groups results by content type. "Localarea" lists results by area in ascending order.
"Globalarea" lists results by area in descending order.
sort2 Sorts search results that were batched using startresult and maxresults. "Name" orders the results alphabetically. "Relevance"
lists results from highest to lowest relevance. "Contenttype" sorts and groups results by content type. "Localarea" lists results by
area in ascending order. "Globalarea" lists results by area in descending order.
startBatchAt By default, all records meeting the search criteria are returned starting with record 0. This attribute allows a specified record as
the start record.
startResult Returns a string containing the starting index of the batched results.
totalResults Returns a string containing the total number of results found.

Examples for search:


Example 1: Searches a specified list of metadata documents
<aims:getSettings id="hostName" value="meta_host_name" />
<aims:getSettings id="portNumber" value="meta_port_number" />
<aims:getSettings id="serviceName" value="meta_service_name" />
<aims:getSettings id="batchSize" value="result_batch_size" />

<aims:tcpConnection id="myConnection" host="<%= hostName %>" port="<%= portNumber %>" debug="true" />

<%
String startBatchAt = request.getParameter("startBatchAt"); // where to start in the collection of results

292 Cu STOMIZING ARC IMS—JAVA CONNECTOR


if (startBatchAt == null) startBatchAt = "0";
%>

<%-- search for datasets containing the word water and having a content type of 002 (ISO - Downloadable
Data) --%>
<aims:search id="results" connectionId="<%= myConnection %>" service="<%= serviceName %>" sort="local_area"
sort2="contenttype" folderMask="4" totalResults="totalResults" startResult="startResult"
numResults="numResults" batchSize="<%= batchSize %>" startBatchAt="<%= startBatchAt %>">

<aims:textQuery tag="_fulltext" word="water" />

<aims:nestedSearch operator="or">
<aims:valueQuery equalTo="002" tag="metadata/distInfo/distributor/distorTran/onLineSrc/orDesc"
operators="or" />
</aims:nestedSearch>

</aims:search>

<%-- loop through the result set --%>


<aims:iterateMetadata iterate="<%= results %>" size="resultsSize">

<%-- Get the dataset's title --%>


<aims:getElement id="theTitle" loadedElements="<%= theElements %>"
value="metadata/dataIdInfo/idCitation/resTitle" />

<P>
Title: <%= theTitle %>

</aims:iterateMetadata>

JAVA CONNECTOR TAG LIBRARY 293


searchEnvelope
Used in: metadata
Parent elements: aims:nestedSearch aims:search

<aims:searchEnvelope

Attributes that set values:


maxx ="double"
maxy ="double"
minx ="double"
miny ="double"
spatialOperator ="within | overlaps" [overlaps]
>

No Child Elements
</aims:searchEnvelope >

Bold: Attribute or child element is required.

Description:
Constructs an envelope with minimum and maximum x,y coordinates when including geographic criteria in searches.

Restrictions:
None

Notes:
None

Attribute Descriptions for searchEnvelope:


Attribute Usage
maxx Maximum x-coordinate in map units.
maxy Maximum y-coordinate in map units.
minx Minimum x-coordinate in map units.

294 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
miny Minimum y-coordinate in map units.
spatialOperator The restrictions on the envelope.

Examples for searchEnvelope:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300"/>

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="serviceName" sort="name"


operator="or">

<aims:subset docId="{9DE86F30-F624-439F-B8C4-71CA3337DB59}" />


<aims:documentInfo name="Parent" />

<aims:nestedSearch operator="or">

<aims:updated after="2002-01-24 11:55:47" before="2002-01-24 11:55:47" />


<aims:searchEnvelope minx="-122.496415054188" miny="16.6302970237522" maxx="-88.2643590144781"
maxy="37.7949559424933" />

</aims:nestedSearch>

</aims:search>

JAVA CONNECTOR TAG LIBRARY 295


semanticPair
Used in: metadata
Parent elements: aims:putMetadataSemantic

<aims:semanticPair

Attributes that set values:


tag ="string"
zcode ="string"
attribute ="string"
>
No Child Elements
</aims:semanticPair >

Bold: Attribute or child element is required.

Description:
Establishes a relationship between a tag and the numeric code defining semantics from the GEO Attribute Set.

Restrictions:
None

Notes:
None

Attribute Descriptions for semanticPair:


Attribute Usage
attribute Name of an attribute for the element.
tag Defines the location of an element inside an XML tree. For example, the element "title" might be inside an XML structure such
as

<idinfo>
<citation>

296 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
<citeinfo>
<title>...</title>
</citeinfo>
</citation>
</idinfo>

To define "title", the string value for this attribute would be "idinfo/citation/citeinfo/title".
zcode Numeric code defining semantics from the GEO Attribute Set.

Examples for semanticPair:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" username="publish" password="publish" />

<aims:putMetadataSemantic connectionId="<%=(myConnection)%>" service="serviceName" >

<aims:semanticPair tag="idinfo/citation/citeinfo/title" zcode="4" />

</aims:putMetadataSemantic>

JAVA CONNECTOR TAG LIBRARY 297


separators
Used in: mapping
Parent elements: aims:map

<aims:separators

Attributes that set values:


cs ="string" [white space (" ")]
ts ="string" [semicolon (";")]
>

No Child Elements
</aims:separators >

Description:
Identifies separators used between x,y coordinates and coordinate pairs and as separators for lists of strings.

Restrictions:
• Separators are limited to one UNICODE character in length.

Notes:
• Coordinate and tuple separators are used to separate x,y coordinates and coordinate pairs, respectively, with the coords attribute in aims:point, aims:line,
aims:polygon, and aims:hole.
• The tuple separator can be used to separate lists of strings in aims:exact.

Attribute Descriptions for separators:


Attribute Usage
cs Coordinate separator is used to separate an x-coordinate from a y-coordinate.
ts Tuple separator is used to separate coordinate pairs and string lists.

298 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for separators:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="mapImage" serviceId="<%=myMapService%>" width="500" height="300" >
<aims:separators ts=";" cs="," />
<aims:createLayer layerId="polygonLayer" type="acetate" visible="true" >
<aims:acetateObject>
<aims:polygon coords="-122.038,37.366;-121.575,37.366;-121.575,37.218;-122.038,37.218;-
122.038,37.366">
<aims:gradientFillSymbol />
<aims:hole coords="-121.897,37.338;-121.812,37.338;-121.812,37.307;-121.897,37.307;-121.897,37.338"
/>
</aims:polygon>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(mapImage)%>" />

JAVA CONNECTOR TAG LIBRARY 299


setInput
Used in: mapping
Parent elements: aims:addressMatchInputs

<aims:setInput

Attributes that set values:


inputId ="string"
value ="string"
>

No Child Elements
</aims:setInput >

Bold: Attribute or child element is required.

Description:
Sets a geocode input value which matches an aims:addressMatchInputs id.

Restrictions:
None

Notes:
• If the input IDs are not known, first iterate through the inputs using aims:addressMatchInputs. Use aims:addressMatchInputs again to set the input ID
values.

Attribute Descriptions for setInput:


Attribute Usage
inputId Name of input ID retrieved from AddressMatchInputs object.
value The value to set the Input ID.

300 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for setInput:
Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" debug="true"/>
<aims:mapService id="myService" connectionId="<%=mytcpConnection%>" name="geoServiceName"
loadExtensions="true" />
<aims:map id="mapImage" serviceId="<%=myService%>" reset="false" >
<aims:layer layerId="3" >
<aims:addressMatchInputs id="myInputs" minScore="0" maxCandidates="100" >
<aims:setInput inputId="STREET" value="380 New York St" />
<aims:setInput inputId="ZONE" value="" />
<aims:setInput inputId="CROSSSTREET" value="" />
</aims:addressMatchInputs>
<aims:iterateAddressMatchInputs inputs="<%=myInputs%>" count="myCount" minScore="myMinScore"
maxCandidates="myMax" style="myStyle" >
<aims:getInputAttribute id="myDes" attribute="DESCRIPTION" />
<aims:getInputAttribute id="myId" attribute="ID" />
<aims:getInputAttribute id="myLabel" attribute="LABEL" />
<aims:getInputAttribute id="myType" attribute="TYPE" />
<aims:getInputAttribute id="myWidth" attribute="WIDTH" />
<b>Description </b>: <%=myDes%> <br>
<b>Id </b>: <%=myId%> <br>
<b>Label </b>: <%=myLabel%> <br>
<b>Type </b>: <%=myType%> <br>
<b>Width </b>: <%=myWidth%> <br>
</aims:iterateAddressMatchInputs>
<aims:iterateAddressMatchResults inputs="<%=myInputs%>" count="resultsCount" >
<aims:getResultAttribute id="myValue" attribute="VALUE" />
<aims:getResultAttribute id="myScore" attribute="SCORE" />
<aims:getResultAttribute id="myPoint" attribute="POINT" />
<b>Value </b>: <%=myValue%> <br>
<b>Score </b>: <%=myScore%> <br>
<b>Point </b>: <%=myPoint%> <br>
</aims:iterateAddressMatchResults>
<b>Result count </b>: <%=resultsCount%>

JAVA CONNECTOR TAG LIBRARY 301


</aims:layer>
</aims:map>

302 Cu STOMIZING ARC IMS—JAVA CONNECTOR


shapeWorkspace
Used in: mapping
Parent elements: aims:createLayer

<aims:shapeWorkspace

Attributes that set values:


directory ="string"
featureClass ="point | line | polygon"
name ="string"
codepage ="integer"
geoIndexDir ="string" [same as directory with shapefile]
shared ="true | false" [false]
>

No Child Elements
</aims:shapeWorkspace >

Bold: Attribute or child element is required.

Description:
Defines a shapefile data source.

Restrictions:
• Must refer to an existing data source.
• Not valid with ArcMap Server.

Notes:
• It is recommended not to use aims:shapeWorkspace in a request. All workspaces should be included in the map configuration file.
• To add a shapefile workspace, <MAP dynamic="true" > must be set in the map configuration file.

JAVA CONNECTOR TAG LIBRARY 303


Attribute Descriptions for shapeWorkspace:
Attribute Usage
codepage Allows the codepage setting in the DBF header to be redefined. The value is the name of the ICU transcoder. Examples include
cp1252 and UTF8.
directory Directory containing shapefiles. UNC pathnames can be used (\\myComputer\shapefiledirectory).
featureClass Layer type.
geoIndexDir Directory where geocoding index is built.
name Workspace name. Must be unique among all data sources.
shared When set to "true", the ArcIMS Spatial Server checks if a shapefile has been modified outside of ArcIMS. While a shapefile is
being edited, ArcIMS sends a message to the ArcIMS Spatial Server log files saying that an update is in progress. When set to
"false", the ArcIMS Spatial Server does not check whether a shapefile has been updated. Access to the shapefile is faster, but the
integrity of the shapefile is at risk if it is modified. It is recommended to use "true" unless safeguards are in place to assure that
the shapefile is not edited. Note: in general, access to shapefiles is much faster if the shapefiles reside on the same machine as
the ArcIMS Spatial Server. If the shapefiles are on a separate machine, access is faster when set to "false", but the integrity of the
shapefile is at risk.

Examples for shapeWorkspace:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">


<aims:createLayer layerId="topoq" type="shape" name="topoquad" visible="true" >
<aims:simpleRenderer >
<aims:simpleLineSymbol color="0,255,0" width="1" />
</aims:simpleRenderer>
<aims:shapeWorkspace name="workspace1" directory="C:\\ArcIMS\\AXL\\TutorialData\\SantaClara"
featureClass="line" />
<aims:dataset name="sc_topoq24" type="polygon" workspace="workspace1" />
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

304 Cu STOMIZING ARC IMS—JAVA CONNECTOR


shieldSymbol
Used in: mapping
Parent elements: aims:exact aims:other aims:range aims:simpleLabelRenderer

<aims:shieldSymbol

Attributes that set values:


type ="interstate | usroad | rect | oval"
antialiasing ="true | false" [false]
font ="Any s ystem font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [12]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
labelMode ="full | numericonly" [numericonly]
minSize ="1 - NNN" [1]
shadow ="0,0,0 - 255,255,255"
>

No Child Elements
</aims:shieldSymbol >

Bold: Attribute or child element is required.

Description:
Symbol for drawing a predefined set of highway shields: U.S. Interstate, U.S. Highway, white rectangle, and white oval.

Restrictions:
• Works only with line features.
• Not valid with ArcMap Server.

Notes:
• The field for text is specified in the associated label renderer element.
• LabelMode="full" is designed for a maximum of four characters. If more than four characters are needed, aims:rasterShieldSymbol should be used.

JAVA CONNECTOR TAG LIBRARY 305


Attribute Descriptions for shieldSymbol:
Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.
fontSize Font size.
fontStyle Font style.
labelMode Determines what value is drawn on the shield. If "full" is used, the entire field value, such as I-80, is displayed. If "numericonly"
is used, only numbers within the field are displayed. For example, I-80 is displayed as 80.
minSize Sets shield size to minimum size in characters. By default, shield expands to length of text.
shadow Shadow color using RGB values.
type Symbol type.

Examples for shieldSymbol:


Example 1:
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="0" visible="true">
<aims:simpleLabelRenderer field="AREA">
<aims:shieldSymbol antialiasing="true" font="Arial" fontStyle="regular" fontSize="10"
type="interstate" />
</aims:simpleLabelRenderer>
</aims:layer>
</aims:map>

306 Cu STOMIZING ARC IMS—JAVA CONNECTOR


simpleLabelRenderer
Used in: mapping
Parent elements: aims:createLayer aims:groupRenderer aims:layer aims:scaleDependentRenderer

<aims:simpleLabelRenderer

Attributes that set values:


field ="string"
featureWeight ="no_weight | med_weight | high_weight" [no_weight]
howManyLabels ="one_label_per_name | one_label_per_shape | one_label_per_part"
labelBufferRatio ="double"
labelPriorities ="0,0,0,0,0,0,0,0 - 8,8,8,8,8,8,8,8 | LE_PlaceOnTopHorizontal" [2,2,1,4,5,3,2,4]
labelWeight ="no_weight | med_weight | high_weight" [high_ weight]
lineLabelPosition ="See table below for values" [PlaceAbove]
rotationalAngles ="string"
>

<calloutMarkerSymbol... /> [Or]


<chartSymbol... /> [Or]
<rasterShieldSymbol... /> [Or]
<shieldSymbol... /> [Or]
<textSymbol... /> [Or]

</aims:simpleLabelRenderer >

Bold: Attribute or child element is required.

Description:
Used for labeling features. A field is specified for labeling all features of a particular layer.

Restrictions:
• One symbol must be specified. Only one is allowed.
• Not valid with ArcMap Server.

JAVA CONNECTOR TAG LIBRARY 307


Notes:
• When rotating symbols, the attribute labelPriorities always takes precedence over the attribute rotationalAngles. If you find that your labels are not
rotating as expected, remove the labelPriorities attribute if it is present.
• If subFields is used in aims:filter for a layer, any fields used for labeling must be included in the subfields list.

Attribute Descriptions for simpleLabelRenderer:


Attribute Usage
featureWeight Prioritizes the importance of features. The feature weight determines how important the feature labeled is for the label placement
algorithm. If "no_weight" is specified, then the feature has no importance and can be labeled over. If "high_weight" is specified,
then the feature has high importance and cannot be labeled over. Giving importance to features increases the complexity of the
labeling problem and also the processing time.
field Field containing text for labeling features. The field can be in the layer table or in a joined table.

• For shapefiles with no joined tables, the field can be referenced using the short format.
field="AREA"
• For shapefiles with joined tables, the name of the joined table must be included along with the field.
field="JOINEDTABLE.AREA"
• For ArcSDE layers without joined tables, the field can be referenced using the short format.
field="AREA"
The full long name can also be used.
field="ARCSDENAME.TABLE.AREA"
• For ArcSDE layers with joined tables, joined fields must be referenced using the full long format.
field="ARCSDENAME.TABLE.AREA"

Labels can include data concatenated from two or more fields. Each field name is separated by a space:

• Using a shapefile with no joined tables. The short format can be used for field names.
field="CITY STATE_NAME"
• Using a shapefile with joined tables. The name of the joined table must be included along with the field names.
field="JOINEDTABLE.CITY JOINEDTABLE.STATE_NAME"
• Using an ArcSDE layer without joined tables. The short format can be used.
field="CITY STATE_NAME"
The full long name can also be used.
field="ARCSDENAME.TABLE.CITY ARCSDENAME.JOINEDTABLE.STATE_NAME"

308 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
• Using an ArcSDE layer with joined tables. The full long format must be used.
field="ARCSDENAME.TABLE.CITY ARCSDENAME.JOINEDTABLE.STATE_NAME"

howManyLabels Determines how often a feature is labeled.

• "One_label_per_part" labels all parts of a feature in the case of multipart features. For instance, the State of Hawaii
consists of several islands, but they are grouped together as one polygon feature. Each island is labeled.
• "One_label_per_name" labels once per feature name. When several features share the same name, only one label is
shown. For example, if there is more than one polygon with the name "Residential", only one "Residential" polygon is
labeled.
• "One_label_per_shape" labels once per feature even if there are multiple segments. For example, the group of islands
that make up Hawaii are only labeled once. If there are other features with the same name, they are also labeled.

labelBufferRatio Used to set a buffer around the label. When this is set, no labels overlap within the buffer range. The ratio is the fraction of the
height or the width of the label rectangle (whichever is smaller) compared to the width of the buffer. A ratio of "0.0" means no
buffer. A ratio of "1.0" means that the buffer is twice the size of the label (the label width equals the buffer width). A negative
ratio causes the buffer to be smaller than the label. This can be used to allow labels to overlap.
labelPriorities Used to determine where to place the label around the point. The attribute accepts different weights for each of eight positions
around the point. Each position corresponds to the positions as shown below:

1 2 3
8 X 4
7 6 5

In each position, the user can prioritize the importance of that position from 0 upwards. 0 signifies that the label should not be
placed in that position. 1 means that this is an acceptable position for the label, and all higher numbers represent lesser priorities
for that position. For example, "1,0,1,0,0,0,0,0" means that only the first and third label positions will be taken into account
when labeling. In another example, "1,2,3,0,1,0,0,0" means try to label at the first and fifth position; if not, then put the label at
the second position; if not, then put it at the third position; if this is not possible, then don't label it.

<aims:simpleLabelRenderer field="NAME" labelPriorities="1,2,3,0,1,0,0,0">

Another option is to place a label on top of points rather than around points. To do this, use "LE_PlaceOnTopHorizontal" for the

JAVA CONNECTOR TAG LIBRARY 309


Attribute Usage
label priority.

<aims:simpleLabelRenderer field="NAME" labelPriorities="LE_PlaceOnTopHorizontal">


labelWeight Used to prioritize the importance of labels. The label weight is usually set to "high_weight" since the labels are more important.
This can be set lower if the labels are not as important as the feature.
lineLabelPosition Determines where on the line to place the label. The following options are available:
• PlaceAbove - Place above the line.
• PlaceBelow - Place below the line.
• PlaceOnTop - Place on the line.
• PlaceLeft - Place along the left side of the line (Label follows line and is not perpendicular to the line).
• PlaceRight - Place along the right side of the line (Label follows line and is not perpendicular to the line).
• PlaceAboveBelow - Place above or below the line.
• PlaceLeftRight - Place at either side of the line.
• PlaceInLine - Place anywhere on the line.
• PlaceParallel - Place parallel to the line.
• PlaceOnTopHorizontal - Place label on top of the line but always horizontal.
• PlaceAtStartAbove - Place label at the start above the line.
• PlaceAtStartOnTop - Place label at the start on top of the line.
• PlaceAtStartBelow - Place label at the start below the line.
• PlaceAtEndAbove - Place label at the end above the line.
• PlaceAtEndOnTop - Place label at the end on top of the line.
• PlaceAtEndBelow - Place label at the end below the line.
• PlaceEitherEndAbove - Place at either end above the line.
• PlaceEitherEndOnTop - Place at either end on top of the line.
• PlaceEitherEndBelow - Place at either end below the line.
<VALUEMAPLABELRENDERER lookupfield="ADMN_CLASS" labelfield="ROUTE" linelabelposition="PlaceOnTop">

rotationalAngles The rotational angles are possible angles that the label can be placed at, relative to the labeled point. By default, labels are
always placed horizontally. To rotate a label, a comma-delimited list of up to eight rotational angles can be given and are
prioritized from first to last. For example, if the first priority is to place labels at 45 degrees and the second priority is at 30

310 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
degrees, the rotational angles attribute would look like this:

<aims:simpleLabelRenderer field="NAME" rotationalAngles="45,30">

LabelPriorities always take precedence over rotationalAngles. If you find that your labels are not rotating as expected, remove
the labelPriorities attribute if it is present. Alternatively, you can set all the labelPriorities to "0".

<aims:simpleLabelRenderer field="NAME" rotationalAngles="45,30" >


or
<aims:simpleLabelRenderer field="NAME" labelPriorities="0,0,0,0,0,0,0,0" rotationalAngles="45,30" >

Examples for simpleLabelRenderer:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300"/>
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="5" visible="true">
<aims:simpleLabelRenderer field="NAME">
<aims:textSymbol />
</aims:simpleLabelRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 311


simpleLineSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:line aims:other aims:polygon aims:range aims:simpleRenderer

<aims:simpleLineSymbol

Attributes that set values:

When using ArcMap Server:


color ="0,0,0 - 255,255,255" [0,0,0]
type ="solid" [solid]
width ="0 - NNN" [0]

When using Image Server:


antialiasing ="true | false" [false]
capType ="butt | round | square" [butt]
color ="0,0,0 - 255,255,255" [0,0,0]
joinType ="round | miter | bevel" [round]
overlap ="true | false" [true]
transparency ="0.0 - 1.0" [1.0]
type ="solid | dash | dot | dash_dot | dash_dot_dot" [solid]
width ="0 - NNN" [0]
>

No Child Elements
</aims:simpleLineSymbol >

Description:
Symbol for line features.

Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

312 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Notes:
None

Attribute Descriptions for simpleLineSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
capType Line end style.

color Symbol color using RGB values.


joinType Line join style.

overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.

JAVA CONNECTOR TAG LIBRARY 313


Attribute Usage
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
type Line type.
width Line width in pixels.

Examples for simpleLineSymbol:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300"/>
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:createLayer layerId="lineLayer" name="line" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:line coords="10 150;400 150" >
<aims:simpleLineSymbol transparency="1.0" type="dash" width="1" capType="round" joinType="round"
color="0,255,0" />
</aims:line>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

314 Cu STOMIZING ARC IMS—JAVA CONNECTOR


simpleMarkerSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:line aims:other aims:point aims:polygon aims:range
aims:simpleRenderer

<aims:simpleMarkerSymbol

Attributes that set values:

When using ArcMap Server:


color ="0,0,0 - 255,255,255" [0,0,0]
outline ="0,0,0 - 255,255,255"
type ="circle | triangle | square | cross | star" [circle]
width ="1 - NNN" [3]

When using Image Server:


antialiasing ="true | false" [false]
color ="0,0,0 - 255,255,255" [0,0,0]
outline ="0,0,0 - 255,255,255"
overlap ="true | false" [true]
shadow ="0,0,0 - 255,255,255"
transparency ="0.0 - 1.0" [1.0]
type ="circle | triangle | square | cross | star" [circle]
useCentroid ="true | false" [false]
width ="1 - NNN" [3]
>

No Child Elements
</aims:simpleMarkerSymbol >

Description:
Symbolizes point features using one of the predefined symbol types: circle, triangle, square, cross, or star.

JAVA CONNECTOR TAG LIBRARY 315


Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
None

Attribute Descriptions for simpleMarkerSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
color Symbol color using RGB values.
outline Outline color using RGB values.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
shadow Shadow color using RGB values.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
type Symbol type.
useCentroid By default, a marker symbol used on polygon layers draws markers at all polygon vertices. If useCentroid is "true", marker is
placed in the centroid of the polygon. If multiple polygon parts exist, the marker falls on the part with the biggest area.
width Symbol width in pixels.

Examples for simpleMarkerSymbol:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:createLayer layerId="pointLayer" name="point" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:point coords="100 100;200 100">
<aims:simpleMarkerSymbol width="25" type="star" color="255,0,0" outline="250,250,250"
shadow="0,0,0" />

316 Cu STOMIZING ARC IMS—JAVA CONNECTOR


</aims:point>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 317


simplePolygonSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:other aims:polygon aims:range aims:simpleRenderer
aims:targetLayer

<aims:simplePolygonSymbol

Attributes that set values:

When using ArcMap Server:


boundary ="true | false" [true]
boundaryColor ="0,0,0 - 255,255,255" [0,0,0]
boundaryType ="solid" [solid]
boundaryWidth ="1 - NNN" [1]
fillColor ="0,0,0 - 255,255,255" [0,200,0]
fillInterval ="2 - NNN" [6]
fillType ="solid | bdiagonal | fdiagonal | cross | diagcross | horizontal | vertical" [solid]

When using Image Server:


antialiasing ="true | false" [false]
boundary ="true | false" [true]
boundaryCapType ="butt | round | square" [butt]
boundaryColor ="0,0,0 - 255,255,255" [0,0,0]
boundaryJoinType ="round | miter | bevel" [round]
boundaryTransparency ="0.0 - 1.0" [1]
boundaryType ="solid | dash | dot | dash_dot | dash_dot_dot" [solid]
boundaryWidth ="1 - NNN" [1]
fillColor ="0,0,0 - 255,255,255" [0,200,0]
fillInterval ="2 - NNN" [6]
fillTransparency ="0.0 - 1.0" [1]
fillType ="solid | bdiagonal | fdiagonal | cross | diagcross | horizontal | vertical | gray | lightgray | darkgray" [solid]
overlap ="true | false" [true]
transparency ="0.0 - 1.0" [no default]
>

318 Cu STOMIZING ARC IMS—JAVA CONNECTOR


No Child Elements
</aims:simplePolygonSymbol >

Description:
Symbol for polygon features.

Restrictions:
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
• For more complex boundary symbols, aims:simpleLineSymbol can be used on polygon layers.
• Transparency takes precedence over fillTransparency and boundaryTransparency.

Attribute Descriptions for simplePolygonSymbol:


Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
boundary Turns boundary on or off.
boundaryCapType Boundary end style.

JAVA CONNECTOR TAG LIBRARY 319


Attribute Usage
boundaryColor Boundary color using RGB values.
boundaryJoinType Boundary join style.

boundaryTransparency Value to set percentage of transparency for the polygon boundaries. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
boundaryType Boundary type.
boundaryWidth Boundary width.
fillColor Fill color using RGB values.
fillInterval Distance between lines for hatch fills.
fillTransparency Value to set percentage of transparency for the polygon fill. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
fillType Symbol fill type.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.

Examples for simplePolygonSymbol:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" />
<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:createLayer layerId="idPolygon" name="polygon" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:polygon coords="10 110;400 110;400 160;10 160;10 110">

320 Cu STOMIZING ARC IMS—JAVA CONNECTOR


<aims:simplePolygonSymbol transparency="1.0" fillType="vertical" fillColor="255,0,255" />
</aims:polygon>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 321


simpleRenderer
Used in: mapping
Parent elements: aims:createLayer aims:groupRenderer aims:layer aims:scaleDependentRenderer

<simpleRenderer >
No Attributes

<gradientFillSymbol... /> [Or]


<hashLineSymbol... /> [Or]
<rasterFillSymbol... /> [Or]
<rasterMarkerSymbol... /> [Or]
<simpleLineSymbol... /> [Or]
<simpleMarkerSymbol... /> [Or]
<simplePolygonSymbol... /> [Or]
<trueTypeMarkerSymbol... /> [Or]

</aims:simpleRenderer >

Bold: Attribute or child element is required.

Description:
Displays features using one symbol.

Restrictions:
• One symbol must be specified. Only one is allowed.
• Not valid with ArcMap Server.

Notes:
None

322 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for simpleRenderer:
Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" />
<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="350">
<aims:layer layerId="6" visible="true" >
<aims:simpleRenderer>
<aims:simpleMarkerSymbol color="0,0,255" type="STAR" width="10"/>
</aims:simpleRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 323


siteSave
Used in: administration
Parent elements: None

<aims:siteSave

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


error ="string"
>

No Child Elements
</aims:siteSave >

Bold: Attribute or child element is required.

Description:
Saves the site configuration.

Restrictions:
None

Notes:
None

Attribute Descriptions for siteSave:


Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.

Examples for siteSave:

324 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Example 1: Saving a site.
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="admin"
password="admin"
/>

<aims:siteSave connectionId="<%=myhttpConnection%>" error="theError" />

<%=theError%>

JAVA CONNECTOR TAG LIBRARY 325


siteUser
Used in: administration
Parent elements: None

<aims:siteUser

Attributes that set values:


newPassword ="string"
newUser ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


error ="string"
>

No Child Elements
</aims:siteUser >

Bold: Attribute or child element is required.

Description:
Sets the username and password for the site.

Restrictions:
None

Notes:
None

326 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for siteUser:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
newPassword The new password for the site.
newUser The new username for the site.

Examples for siteUser:


Example 1:
<aims:httpConnection
id="myhttpConnection"
url="http://mymachine"
role="admin"
debug="true"
username="myUsername"
password="myPassword"
/>

<aims:siteUser connectionId="<%=myhttpConnection%>" newUser="newUser" newPassword="newPassword"


error="theError"/>

<%=theError%>

JAVA CONNECTOR TAG LIBRARY 327


subset
Used in: metadata
Parent elements: aims:nestedSearch aims:search

<aims:subset

Attributes that set values:


docid ="string"
type ="children | parents | siblings | ancestors | descendants"
>

No Child Elements
</aims:subset >

Bold: Attribute or child element is required.

Description:
Specifies a subset of the documents in the metadata repository to search.

Restrictions:
None

Notes:
• By default, all documents in a metadata repository are searched. When aims:subset is included, name, owner, and userid attributes specify the "root
document" of the search, and the type attribute specifies the relation of the desired documents to the root document.

328 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for subset:
Attribute Usage
docid String used to uniquely identify a document. The client used to publish the metadata is responsible for creating the document ID.
This ID is automatically assigned when using ArcCatalog. If another client is used, aims:getUUID can be used to request a valid
ID. The format for an ID is the following: {HHHHHHHH-HHHH-HHHH-HHHH-HHHHHHHHHHHH} where H is a
hexadecimal digit (0-9,a-f,A-F). The ID is limited to 38 characters.
type Target document's relationship to the source document.

Examples for subset:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300"/>

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="serviceName" sort="name"


operator="or">

<aims:subset docId="{9DE86F30-F624-439F-B8C4-71CA3337DB59}" />


<aims:documentInfo name="Parent" />

</aims:search>

JAVA CONNECTOR TAG LIBRARY 329


targetLayer
Used in: mapping
Parent elements: aims:buffer

<aims:targetLayer

Attributes that set values:


targetLayerId ="string"
>

<simplePolygonSymbol... />

</aims:targetLayer >

Bold: Attribute or child element is required.

Description:
Defines a target layer for selecting features based on a buffer in the same or different layer in the ArcIMS service.

Restrictions:
• Must refer to an existing layer ID in the map configuration file.
• Known limitation with the Java Connector. When using a target layer, the target layer cannot be the same layer as the buffer layer. This limitation is
with the Java Connector and not with ArcXML. Using ArcXML, the target and buffer layers can be the same.
Notes:
None

Attribute Descriptions for targetLayer:


Attribute Usage
targetLayerId Reference to unique layer ID as defined in map configuration file.

330 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for targetLayer:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="SantaClara"/>

<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300" bufferImage="true"


bufferRegion="true">
<aims:layer layerId="6" visible="true">
<aims:filter whereExpression="NAME='San Jose'">
<aims:buffer distance="15" bufferUnits="Miles" performBuffer="true" >
<aims:targetLayer targetLayerId="5" />
<aims:simplePolygonSymbol fillTransparency="1.0" fillType="HORIZONTAL" boundaryColor="0,0,0"
fillColor="0,0,0"/>
</aims:targetLayer>
<aims:bufferLayer>
<aims:simpleMarkerSymbol type="STAR" width="20" color="255,0,255" />
</aims:bufferLayer>
</aims:buffer>
</aims:filter>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 331


tcpConnection
Used in: mapping metadata administration
Parent elements: None

<aims:tcpConnection

Attributes that set values:


host ="string"
port ="string"
debug ="true | false" [false]
password ="string" [null]
role ="user | admin" [user]
username ="string" [null]

Attributes that return values:


id ="object"
ping ="OK | FAIL | FIRST_LOGIN"
>

No Child Elements
</aims:tcpConnection >

Bold: Attribute or child element is required.

Description:
Creates a TCP connection proxy to use with aims:map.

Restrictions:
• When role is "admin", the attribute debug can only be set to "false".

Notes:
None

332 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for tcpConnection:
Attribute Usage
debug Shows debug messages in servlet’s log file.
host The ArcIMS Application Server host name.
id Returns ConnectionProxy object.
password Password when service authentication is used.
ping Returns a string showing the status from pinging the ArcIMS Application Server.
port The ArcIMS Application Server port number to communicate on.
role Defines the role of the connection. For administration requests, role must be set to "admin".
username User name when service authentication is used.

Examples for tcpConnection:


Example 1:
<aims:tcpConnection id="mytcpConnection" port="5300" host="myMachine" />
<aims:mapService id="myMapService" connectionId="<%=mytcpConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300" />

<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 333


text
Used in: mapping
Parent elements: aims:acetateObject

<aims:text

Attributes that set values:


label ="string"
x ="double"
y ="double"
>

<textMarkerSymbol... />

</aims:text >

Bold: Attribute or child element is required.

Description:
Places text on an acetate layer.

Restrictions:
None

Notes:
• Used only in acetate layers. To label features, use aims:textSymbol.

Attribute Descriptions for text:


Attribute Usage
label Text label.
x X-coordinate for text placement location.
y Y-coordinate for text placement location.

334 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Examples for text:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />

<aims:map id="myMap" serviceId="<%=myMapService%>" >


<aims:createLayer layerId="textLayer" type="acetate" name="text" visible="true" >
<aims:acetateObject units="pixel">
<aims:text label="My Map" x="150" y="150">
<aims:textMarkerSymbol fontSize="20"/>
</aims:text>
</aims:acetateObject>
</aims:createLayer>
</aims:map>

<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 335


textMarkerSymbol
Used in: mapping
Parent elements: aims:text

<aims:textMarkerSymbol

Attributes that set values:

When using ArcMap Server:


blockout ="0,0,0 - 255,255,255"
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [10]
fontStyle ="regular | bold | italic | underline | bolditalic" [regular]
halignment ="left | center | right" [right]
outline ="0,0,0 - 255,255,255"
valignment ="top | center | bottom" [top]

When using Image Server:


angle ="0.0 - 360.0" [0]
antialiasing ="true | false" [false]
blockout ="0,0,0 - 255,255,255"
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [10]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
halignment ="left | center | right" [right]
interval ="0 - NNN" [0]
outline ="0,0,0 - 255,255,255"
overlap ="true | false" [true]
printMode ="titlecaps | allupper | alllower | none" [none]
transparency ="0.0 - 1.0" [1.0]
valignment ="top | center | bottom" [top]
>

336 Cu STOMIZING ARC IMS—JAVA CONNECTOR


No Child Elements
</aims:textMarkerSymbol >

Description:
Adds static text to an acetate layer.

Restrictions:
• Outline and glowing should not be used together; use one or the other.

Notes:
• Used only in acetate layers. To label features, use aims:textSymbol.

Attribute Descriptions for textMarkerSymbol:


Attribute Usage
angle Angle of rotation in degrees moving counterclockwise; 0 degrees is horizontal.
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
blockout Provides a background behind text. Select color using RGB values.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.
fontSize Font size.
fontStyle Font style.
glowing Glow color around text using RGB values.
halignment Horizontal alignment of label compared to label point.
interval Distance between point and printed label.
outline Outline color using RGB values.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.

JAVA CONNECTOR TAG LIBRARY 337


Attribute Usage
printMode Determines how labels are printed. If "none" is used, no change is made to the label: Welcome to ArcIMS. If "alllower" is used,
all letters are lowercase: welcome to arcims. If "allupper" is used, all letters are uppercase: WELCOME TO ARCIMS. If
"titlecaps" is used, the first letter of each word in a label is uppercase and everything else is lowercase: Welcome To Arcims.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
valignment Vertical alignment of label compared to label point.

Examples for textMarkerSymbol:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />

<aims:map id="myMap" serviceId="<%=myMapService%>" >


<aims:createLayer layerId="textLayer" type="acetate" name="text" visible="true" >
<aims:acetateObject units="pixel">
<aims:text label="My Map" x="150" y="150">
<aims:textMarkerSymbol fontSize="20"/>
</aims:text>
</aims:acetateObject>
</aims:createLayer>
</aims:map>

<img src="<%=(myMap)%>" />

338 Cu STOMIZING ARC IMS—JAVA CONNECTOR


textQuery
Used in: metadata
Parent elements: aims:nestedSearch aims :search

<aims:textQuery

Attributes that set values:


word ="string"
attribute ="string"
operators ="and | or"
tag ="string"
wordDelimiter ="string" [,]
zcode ="string"
>

No Child Elements
</aims:textQuery >

Bold: Attribute or child element is required.

Description:
Searches text within a specified element in metadata documents.

Restrictions:
• Either tag or zcode must be specified, but not both.
• Attribute is valid only with tag. It is ignored when zcode is used.
Notes:
• An aims:textQuery search can be further restricted by limiting the search to an individual attribute.
• For searching numeric values, see aims:valueQuery.

Attribute Descriptions for textQuery:

JAVA CONNECTOR TAG LIBRARY 339


Attribute Usage
attribute Name of an attribute for searching.
operators Value to use in the search criteria of a text search.
tag Defines the location of an element inside an XML tree. For example, the element "title" might be inside an XML structure such
as

<idinfo>
<citation>
<citeinfo>
<title>...</title>
</citeinfo>
</citation>
</idinfo>

To define "title", the string value for this attribute would be "idinfo/citation/citeinfo/title".
word List of one or more keywords.
wordDelimiter Delimiter between words listed in the search. The default is a comma (,).
zcode Numeric code defining semantics from the GEO Attribute Set.

Examples for textQuery:


Example 1:
<aims:getSettings id="strHostName" value="meta_host_name" />
<aims:getSettings id="strPortNumber" value="meta_port_number" />
<aims:getSettings id="strServiceName" value="meta_service_name" />

<aims:tcpConnection id="myConnection" host="<%=(strHostName)%>" port="<%=(strPortNumber)%>" debug="true" />

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="<%=(strServiceName)%>"


sort="name" sort2="localarea" folderMask="4" operator="and">
<aims:textQuery tag="_fulltext" word="river"/>
<aims:nestedSearch operator="or" >
<aims:textQuery tag="metadata/idinfo/keywords/theme/themekey" word="river,ocean" operators="or"
wordDelimiter="," />

340 Cu STOMIZING ARC IMS—JAVA CONNECTOR


</aims:nestedSearch>
</aims:textQuery>
</aims:search>

JAVA CONNECTOR TAG LIBRARY 341


textSymbol
Used in: mapping
Parent elements: aims:exact aims:other aims:range aims:simpleLabelRenderer

<aims:textSymbol

Attributes that set values:


antialiasing ="true | false" [false]
blockout ="0,0,0 - 255,255,255"
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [12]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
interval ="0 - NNN" [0]
outline ="0,0,0 - 255,255,255"
printMode ="titlecaps | allupper | alllower | none" [none]
shadow ="0,0,0 - 255,255,255"
transparency ="0.0 - 1.0" [1.0]
>

No Child Elements
</aims:textSymbol >

Description:
Symbol used to label point, line, and polygon layers.

Restrictions:
• Not valid with ArcMap Server.
• Outline and glowing should not be used together; use one or the other.

Notes:
• Aims:textSymbol is used to label features in layers. To add text to an acetate layer, use aims:text.

342 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for textSymbol:
Attribute Usage
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
blockout Provides a background behind text. Select color using RGB values.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.
fontSize Font size.
fontStyle Font style.
glowing Glow color around text using RGB values.
Interval Distance in pixels from point 0.
outline Outline color using RGB values.
printMode Determines how labels are printed. If "none" is used, no change is made to the label: Welcome to ArcIMS. If "alllower" is used,
all letters are lowercase: welcome to arcims. If "allupper" is used, all letters are uppercase: WELCOME TO ARCIMS. If
"titlecaps" is used, the first letter of each word in a label is uppercase and everything else is lowercase: Welcome To Arcims.
shadow Shadow color using RGB values.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.

Examples for textSymbol:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:layer layerId="0" visible="true">
<aims:simpleLabelRenderer field="AREA">
<aims:textSymbol transparency="0.8" printMode="titlecaps" antialiasing="true" font="Courier New"
fontStyle="bolditalic" fontSize="12" glowing="255,255,255" shadow="255,255,255" fontColor="0,255,100"
blockout="124,124,124" interval="3" />
</aims:simpleLabelRenderer>

JAVA CONNECTOR TAG LIBRARY 343


</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

344 Cu STOMIZING ARC IMS—JAVA CONNECTOR


trueTypeMarkerSymbol
Used in: mapping
Parent elements: aims:bufferLayer aims:displayFeatures aims:exact aims:line aims:other aims:point aims:polygon aims:range
aims:simpleRenderer

<aims:trueTypeMarkerSymbol

Attributes that set values:

When using ArcMap Server:


character ="32 - 255"
angle ="0.0 - 360.0" [0]
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [12]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
outline ="0,0,0 - 255,255,255"

When using Image Server:


character ="32 - 255"
angle ="0.0 - 360.0" [0]
angleField ="0.0 - 360.0" [0]
antialiasing ="true | false" [false]
font ="Any system font" [Arial]
fontColor ="0,0,0 - 255,255,255" [0,0,0]
fontSize ="1 - NNN" [12]
fontStyle ="regular | bold | italic | underline | outline | bolditalic" [regular]
glowing ="0,0,0 - 255,255,255"
outline ="0,0,0 - 255,255,255"
overlap ="true | false" [true]
rotateMethod ="geographic | arithmetic | mod_arithmetic" [mod_arithmetic]
shadow ="0,0,0 - 255,255,255"
transparency ="0.0 - 1.0" [1.0]
useCentroid ="true | false" [false]
>

JAVA CONNECTOR TAG LIBRARY 345


No Child Elements
</aims:trueTypeMarkerSymbol >

Bold: Attribute or child element is required.

Description:
Symbolizes point features using TrueType symbols.

Restrictions:
• Outline and glowing should not be used together; use one or the other.
• In ArcMap Image Services, symbol is valid only in acetate layers.

Notes:
• The angle for a symbol can be user-defined with angle. Angles can also be read from a field in a database table using angleField.
• If the attributes angle and angleField are both present, angle takes precedence, and angleField is ignored.
• If the symbols are rotating in an unexpected direction, double-check the value for rotateMethod.
• If you are using custom TrueType symbols on a UNIX machine, the font must be installed in the following directory:
o For Solaris:
/usr/openwin/lib/X11/fonts/TrueType
o For AIX:
/usr/lpp/X11/lib/X11/fonts/TrueType
o For Linux:
/usr/lib/X11/fonts/TrueType
o For HP-UX:
/usr/lib/X11/fonts/ms.st/typefaces

346 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for trueTypeMarkerSymbol:
Attribute Usage
angle Angle of rotation in degrees.
angleField The field in the database that contains the angle of rotation for a True Type symbol. The field can be in the layer table or in a
joined table.
• For shapefiles with no joined tables, the field can be referenced using the short format.
field="AREA"
• For shapefiles with joined tables, the name of the joined table must be included along with the field.
field="JOINEDTABLE.AREA"
• For ArcSDE layers without joined tables, the field can be referenced using the short format.
field="AREA"
The full long name can also be used.
field="ARCSDENAME.TABLE.AREA"
• For ArcSDE layers with joined tables, joined fields must be referenced using the full long format.
field="ARCSDENAME.TABLE.AREA"
If both angle and angleField are used, the attribute angle takes precedence.
antialiasing Used to make edges of labels and symbols smoother. When set to "true", antialiasing is active. Note that the time to generate a
map may significantly increase when antialiasing is turned on.
character Text character ASCII value. The character must be a value between 32 and 255 in a font's character map; characters 0-31 are
nonprintable and cannot be used.
font Font name. The name is case sensitive. If font name uses "&", use "&amp;" instead. For example, ESRI Transportation & Civic
should be written as ESRI Transportation &amp; Civic.
fontColor Font color using RGB values.
fontSize Font size.
fontStyle Font style.
glowing Glow color around symbol using RGB values.
outline Outline color using RGB values.
overlap Determines if labels can overlap this symbol. When "true", labels can overlap. When "false", labels will not overlap the symbol.
If labels are not drawing as expected, check if overlap is set to "false" for this symbol or any other symbol in the service.
rotateMethod Three methods of calculating angles are available and apply to both angle and anglefield:
1. "geographic": An angle of 0 is north, and angles are calculated clockwise from north.

JAVA CONNECTOR TAG LIBRARY 347


Attribute Usage
2. "arithmetic": An angle of 0 is east, and angles are calculated counterclockwise from east.
3. "mod_arithmetic": An angle of 0 is north, and angles are calculated counterclockwise from north.
shadow Shadow color using RGB values.
transparency Value to set percentage of transparency. 1.0 is 0 percent transparent. 0.0 is 100 percent transparent.
useCentroid By default, a marker symbol used on polygon layers draws markers at all polygon vertices. If useCentroid is "true", marker is
placed in the centroid of the polygon. If multiple polygon parts exist, the marker falls on the part with the biggest area.

Examples for trueTypeMarkerSymbol:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myMapService" connectionId="<%=myTCPConnection%>" name="serviceName" />
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="300">
<aims:createLayer layerId="pointLayer" name="point" type="acetate" visible="true">
<aims:acetateObject units="pixel">
<aims:point coords="100 100;200 100">
<aims:trueTypeMarkerSymbol useCentroid="true" transparency="1.0" font="ESRI Cartography"
fontStyle="bold" fontSize="20" character="210" fontColor="255,0,255" />
</aims:point>
</aims:acetateObject>
</aims:createLayer>
</aims:map>
<img src="<%=(myMap)%>" />

348 Cu STOMIZING ARC IMS—JAVA CONNECTOR


updated
Used in: metadata
Parent elements: aims:nestedSearch aims:search

<aims:updated

Attributes that set values:


after ="string"
before ="string"
>

No Child Elements
</aims:updated >

Description:
Allows metadata searches based on a date.

Restrictions:
• At least one attribute must be specified. Both can be used.
Notes:
• The format for dates is YYYY-MM-DD hh:mm:ss. The year, month, and date are required. Hours, minutes, and seconds are optional.

Attribute Descriptions for updated:


Attribute Usage
After Search for documents newer than the date and time given.
before Search for documents older than the date and time given.

JAVA CONNECTOR TAG LIBRARY 349


Examples for updated:
Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300"/>

<aims:search id="searchResults" connectionId="<%=myConnection%>" service="PelotonMetadata" sort="name"


operator="or">

<aims:subset docId="{9DE86F30-F624-439F-B8C4-71CA3337DB59}" />


<aims:documentInfo name="Parent" />
<aims:updated after="2002-01-24 11:55:47" before="2002-01-24 11:55:47" />

</aims:search>

350 Cu STOMIZING ARC IMS—JAVA CONNECTOR


validateConnection
Used in: administration
Parent elements: None

<aims:validateConnection

Attributes that set values:


type ="MAP | METADATA" [MAP]
service ="string"

Attributes that pass objects:


connectionId ="object"

Attributes that return values:


error ="string"
>

No Child Elements
</aims:validateConnection >

Bold: Attribute or child element is required.

Description:
Validate communication with a defined service connection.

Restrictions:
None

Notes:
• The service information needs to be set in either aims:mapService or in the service attribute of aims:validateConnection. If needed for proper validation,
the username and password may have to be set if authentication is required.

JAVA CONNECTOR TAG LIBRARY 351


Attribute Descriptions for validateConnection:
Attribute Usage
connectionId Holds information about the connection. The connection is created using aims:httpConnection or aims:tcpConnection.
error Returns an error string if any occurred. Returns "Success" if no error.
service The name of the service to validate. Setting this attribute overrides the service set in aims:httpConnection or aims:tcpConnection.
type The type of service defined in the connection.

Examples for validateConnection:


Example 1:
<aims:tcpConnection
id="mytcpConnection"
host="mymachine"
port="5300"
debug="true"
username="publish"
password="publish"
/>

<aims:validateConnection connectionId="<%=mytcpConnection%>" type="METADATA" service="Metadata"


error="myError" />

<%=myError%>

352 Cu STOMIZING ARC IMS—JAVA CONNECTOR


valueMapLabelRenderer
Used in: mapping
Parent elements: aims:createLayer aims:groupRenderer aims:layer aims:scaleDependentRenderer

<aims:valueMapLabelRenderer

Attributes that set values:


labelField ="string"
lookUpField ="string"
featureWeight ="no_weight | med_weight | high_weight" [no_weight]
howManyLabels ="one_label_per_name | one_label_per_shape | one_label_per_part"
labelBufferRatio ="double"
labelPriorities ="0,0,0,0,0,0,0,0 - 8,8,8,8,8,8,8,8 | LE_PlaceOnTopHorizontal" [2,2,1,4,5,3,2,4]
labelWeight ="no_weight | med_weight | high_weight" [high_ weight]
lineLabelPosition ="See table below for values" [PlaceAbove]
rotationalAngles ="string"
>

(m) <exact... /> [Or]


(m) <range... /> [Or]
<other... />

</aims:valueMapLabelRenderer >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Used for labeling features. A field is specified for labeling features based on criteria in aims:range or aims:exact.

Restrictions:
• Aims:exact or aims:range is required. Aims:other is optional.
• Not valid with ArcMap Server.

JAVA CONNECTOR TAG LIBRARY 353


Notes:
• When rotating symbols, the attribute labelPriorities always takes precedence over the attribute rotationalAngles. If you find that your labels are not
rotating as expected when using Image MapServices, remove the labelPriorities attribute if it is present.
• If subfields is used in aims:filter for a layer, any fields used for labeling must be included in the subfields list.

Attribute Descriptions for valueMapLabelRenderer:


Attribute Usage
featureWeight Prioritizes the importance of features. The feature weight determines how important the feature labeled is for the label placement
algorithm. If "no_weight" is specified, then the feature has no importance and can be labeled over. If "high_weight" is specified,
then the feature has high importance and cannot be labeled over. Giving importance to features increases the complexity of the
labeling problem and also the processing time.
howManyLabels Determines how often a feature is labeled.
• "One_label_per_part" labels all parts of a feature in the case of multipart features. For instance, the State of Hawaii
consists of several islands, but they are grouped together as one polygon feature. Each island is labeled.
• "One_label_per_name" labels once per feature name. When several features share the same name, only one label is
shown. For example, if there is more than one polygon with the name "Residential", only one "Residential" polygon is
labeled.
• "One_label_per_shape" labels once per feature even if there are multiple segments. For example, the group of islands
that make up Hawaii are only labeled once. If there are other features with the same name, they are als o labeled.
labelBufferRatio Used to set a buffer around the label. When this is set, no labels overlap within the buffer range. The ratio is the fraction of the
height or the width of the label rectangle (whichever is smaller) compared to the width of the buffer. A ratio of "0.0" means no
buffer. A ratio of "1.0" means that the buffer is twice the size of the label (the label width equals the buffer width). A negative
ratio causes the buffer to be smaller than the label. This can be used to allow labels to overlap.
labelField Field containing text for labeling features. The field can be in the layer table or in a joined table.
• For shapefiles with no joined tables, the field can be referenced using the short format.
labelField="AREA"
• For shapefiles with joined tables, the name of the joined table must be included along with the field.
labelField="JOINEDTABLE.AREA"
• For ArcSDE layers without joined tables, the field can be referenced using the short format.
labelField="AREA"
The full long name can also be used.
labelField="ARCSDENAME.TABLE.AREA"

354 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage
• For ArcSDE layers with joined tables, joined fields must be referenced using the full long format.
labelField="ARCSDENAME.TABLE.AREA"
Labels can include data concatenated from two or more fields. Each field name is separated by a space:
• Using a shapefile with no joined tables. The short format can be used for field names.
labelField="CITY STATE_NAME"
• Using a shapefile with joined tables. The name of the joined table must be included along with the field names.
labelField="JOINEDTABLE.CITY JOINEDTABLE.STATE_NAME"
• Using an ArcSDE layer without joined tables. The short format can be used.
labelField="CITY STATE_NAME"
The full long name can also be used.
labelField="ARCSDENAME.TABLE.CITY ARCSDENAME.JOINEDTABLE.STATE_NAME"
• Using an ArcSDE layer with joined tables. The full long format must be used.
labelField="ARCSDENAME.TABLE.CITY ARCSDENAME.JOINEDTABLE.STATE_NAME"
labelPriorities Used to determine where to place the label around the point. The attribute accepts different weights for each of eight positions
around the point. Each position corresponds to the positions as shown below:

1 2 3
8 X 4
7 6 5

In each position, the user can prioritize the importance of that position from 0 upwards. 0 signifies that the label should not be
placed in that position. 1 means that this is an acceptable position for the label, and all higher numbers represent lesser priorities
for that position. For example, "1,0,1,0,0,0,0,0" means that only the first and third label positions will be taken into account
when labeling. In another example, "1,2,3,0,1,0,0,0" means try to label at the first and fifth position; if not, then put the label at
the second position; if not, then put it at the third position; if this is not possible, then don't label it.

<aims:valueMapLabelRenderer lookUpField="TYPE" labelField="NAME" labelPriorities="1,2,3,0,1,0,0,0">

Another option is to place a label on top of points rather than around points. To do this, use "LE_PlaceOnTopHorizontal" for the
label priority.

<aims:valueMapLabelRenderer lookUpField="TYPE" labelField="NAME" labelPriorities="LE_PlaceOnTopHorizontal">


labelWeight Used to prioritize the importance of labels. The label weight is usually set to "high_weight" since the labels are more important.

JAVA CONNECTOR TAG LIBRARY 355


Attribute Usage
This can be set lower if the labels are not as important as the feature.
lineLabelPosition Determines where on the line to place the label. The following options are available:
• PlaceAbove - Place above the line.
• PlaceBelow - Place below the line.
• PlaceOnTop - Place on the line.
• PlaceLeft - Place along the left side of the line (Label follows line and is not perpendicular to the line).
• PlaceRight - Place along the right side of the line (Label follows line and is not perpendicular to the line).
• PlaceAboveBelow - Place above or below the line.
• PlaceLeftRight - Place at either side of the line.
• PlaceInLine - Place anywhere on the line.
• PlaceParallel - Place parallel to the line.
• PlaceOnTopHorizontal - Place label on top of the line but always horizontal.
• PlaceAtStartAbove - Place label at the start above the line.
• PlaceAtStartOnTop - Place label at the start on top of the line.
• PlaceAtStartBelow - Place label at the start below the line.
• PlaceAtEndAbove - Place label at the end above the line.
• PlaceAtEndOnTop - Place label at the end on top of the line.
• PlaceAtEndBelow - Place label at the end below the line.
• PlaceEitherEndAbove - Place at either end above the line.
• PlaceEitherEndOnTop - Place at either end on top of the line.
• PlaceEitherEndBelow - Place at either end below the line.
<VALUEMAPLABELRENDERER lookupfield="ADMN_CLASS" labelfield="ROUTE" linelabelposition="PlaceOnTop">

lookUpField Name of field used to specify ranges for aims:range or exact values for aims:exact.
rotationalAngles The rotational angles are possible angles that the label can be placed at, relative to the labeled point. By default, labels are
always placed horizontally. To rotate a label, a comma-delimited list of up to eight rotational angles can be given and are
prioritized from first to last. For example, if the first priority is to place labels at 45 degrees and the second priority is at 30
degrees, the rotational angles attribute would look like this:

<aims:valueMapLabelRenderer lookUpField="TYPE" labelField="NAME" rotationalAngles="45,30">

356 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Usage

LabelPriorities always take precedence over rotationalAngles. If you find that your labels are not rotating as expected, remove
the labelPriorities attribute if it is present. Alternatively, you can set all the labelPriorities to "0".

<aims:valueMapLabelRenderer lookUpField="TYPE" labelField="NAME" rotationalAngles="45,30" >


or
<aims:valueMapLabelRenderer lookUpField="TYPE" labelField="NAME" labelPriorities="0,0,0,0,0,0,0,0"
rotationalAngles="45,30" >

Examples for valueMapLabelRenderer:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="350">
<aims:layer layerId="6" visible="true" >
<aims:valueMapLabelRenderer lookUpField="POP" labelField="NAME" >
<aims:range lower="0" upper="261892" equality="none" label="less than 261892">
<aims:textSymbol font="Arial" fontSize="12" fontColor="255,0,255" />
</aims:range>
<aims:range lower="261893" upper="522070" equality="none" label="261893 to 522070">
<aims:textSymbol font="Arial" fontSize="16" fontColor="0,255,0" />
</aims:range>
<aims:range lower="522071" upper="782249" equality="none" label="522071 than 782249">
<aims:textSymbol font="Arial" fontSize="20" fontColor="255,0,0" />
</aims:range>
</aims:valueMapLabelRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 357


valueMapRenderer
Used in: mapping
Parent elements: aims:createLayer aims:groupRenderer aims:layer aims:scaleDependentRenderer

<aims:valueMapRenderer

Attributes that set values:


lookUpField ="string"
>

(m) <exact... />


<other... />
(m) <range... />

</aims:valueMapRenderer >

Bold: Attribute or child element is required.


(m): Child element can be used multiple times.

Description:
Renders features according to the value in a specified field. Based on this field, a value map can be created to classify data. This is useful when different
types of data are stored in the same layer.

Restrictions:
• Not valid with ArcMap Server.

Notes:
None

358 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for valueMapRenderer:
Attribute Usage
lookUpField Name of field used to specify ranges or exact values.

Examples for valueMapRenderer:


Example 1:
<aims:tcpConnection id="myConnection" host="myMachine" port="5300" debug="true" />
<aims:mapService id="myMapService" connectionId="<%=myConnection%>" name="serviceName"/>
<aims:map id="myMap" serviceId="<%=(myMapService)%>" width="500" height="350">
<aims:layer layerId="0" visible="true" >
<aims:valueMapRenderer lookUpField="TRACT">
<aims:exact label="Tract#5121" value="5121" >
<aims:simplePolygonSymbol fillColor="255,0,0" fillTransparency="1.0"/>
</aims:exact>
<aims:exact label="Tract#511898" value="511898" >
<aims:simplePolygonSymbol fillColor="0,255,0" fillTransparency="1.0"/>
</aims:exact>
<aims:other label="other">
<aims:simplePolygonSymbol fillColor="0,0,255" fillTransparency="1.0"/>
</aims:other>
</aims:valueMapRenderer>
</aims:layer>
</aims:map>
<img src="<%=(myMap)%>" />

JAVA CONNECTOR TAG LIBRARY 359


valueQuery
Used in: metadata
Parent elements: aims:nestedSearch aims:search

<aims:valueQuery

Attributes that set values:


attribute ="string"
equalTo ="string"
greaterThan ="string"
greaterThanOrEqualTo ="string"
lessThan ="string"
lessThanOrEqualTo ="string"
tag ="string"
zcode ="string"
>

No Child Elements
</aims:valueQuery >

Description:
Searches numeric values within a specified element in a metadata document.

Restrictions:
• Either tag or zcode must be specified, but not both.
• Attribute is valid only with tag. It is ignored when zcode is used.
• One or two of the operator attributes from the following list must be specified: lessThan, greaterThan, lessThanOrEqualTo, greaterThanOrEqualTo, or
equalTo. If two attributes are specified, they are automatically concatenated together with an "and" operator.

Notes:
• For searching text values, see aims:textQuery.

360 Cu STOMIZING ARC IMS—JAVA CONNECTOR


Attribute Descriptions for valueQuery:
Attribute Usage
attribute Name of an attribute for searching.
equalTo Equal to operator for comparing two values.
greaterThan Greater than operator for comparing two values.
greaterThanOrEqualTo Greater than or equal to operator for comparing two values.
lessThan Less than operator for comparing two values.
lessThanOrEqualTo Less than or equal to operator for comparing two values.
tag Defines the location of an element inside an XML tree. For example, the element "title" might be inside an XML structure such
as

<idinfo>
<citation>
<citeinfo>
<title>...</title>
</citeinfo>
</citation>
</idinfo>

To define "title", the string value for this attribute would be "idinfo/citation/citeinfo/title".
zcode Numeric code defining semantics from the GEO Attribute Set.

Examples for valueQuery:


Example 1: Searches a specified list of metadata documents
<aims:getSettings id="hostName" value="meta_host_name" />
<aims:getSettings id="portNumber" value="meta_port_number" />
<aims:getSettings id="serviceName" value="meta_service_name" />
<aims:getSettings id="batchSize" value="result_batch_size" />

<aims:tcpConnection id="myConnection" host="<%= hostName %>" port="<%= portNumber %>" debug="true" />

<%
String startBatchAt = request.getParameter("startBatchAt"); // where to start in the collection of results

JAVA CONNECTOR TAG LIBRARY 361


if (startBatchAt == null) startBatchAt = "0";
%>

<%-- search for datasets containing the word water and having a content type of 002 (ISO - Downloadable
Data) --%>
<aims:search id="results" connectionId="<%= myConnection %>" service="<%= serviceName %>" sort="local_area"
sort2="contenttype" folderMask="4" totalResults="totalResults" startResult="startResult"
numResults="numResults" batchSize="<%= batchSize %>" startBatchAt="<%= startBatchAt %>">

<aims:textQuery tag="_fulltext" word="water" />

<aims:nestedSearch operator="or">
<aims:valueQuery equalTo="002" tag="metadata/distInfo/distributor/distorTran/onLineSrc/orDesc"
operators="or" />
</aims:nestedSearch>

</aims:search>

<%-- loop through the result set --%>


<aims:iterateMetadata iterate="<%= results %>" size="resultsSize">

<%-- Get the dataset's title --%>


<aims:getElement id="theTitle" loadedElements="<%= theElements %>"
value="metadata/dataIdInfo/idCitation/resTitle" />

<P>
Title: <%= theTitle %>

</aims:iterateMetadata>

362 Cu STOMIZING ARC IMS—JAVA CONNECTOR


zoom
Used in: mapping
Parent elements: aims:map

<aims:zoom

Attributes that set values:


factor ="0 - NNN" [0]
x ="double"
y ="double"
>

No Child Elements
</aims:zoom >

Description:
Zooms to a map by a specified factor or by centering at a specified x,y coordinate.

Restrictions:
None

Notes:
None

Attribute Descriptions for zoom:


Attribute Usage
factor Factor for zooming in.
x X-coordinate for centering map.
y Y-coordinate for centering map.

JAVA CONNECTOR TAG LIBRARY 363


Examples for zoom:
Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" />
<aims:map id="myMapURL" serviceId="<%=myService%>" service="world" >
<aims:zoom x="-120.0" y="40.0" factor="2" />
</aims:map>

364 Cu STOMIZING ARC IMS—JAVA CONNECTOR


zoomFullExtent
Used in: mapping
Parent elements: aims:map

<zoomFullExtent >
No Attributes

No Child Elements
</aims:zoomFullExtent >

Description:
Zooms to the full extent of the map.

Restrictions:
None

Notes:
None

Examples for zoomFullExtent:


Example 1:
<aims:tcpConnection id="myTCPConnection" host="myMachine" port="5300" />
<aims:mapService id="myService" connectionId="<%=myTCPConnection%>" />
<aims:map id="myMapURL" serviceId="<%=myService%>" service="world" >
<aims:zoomFullExtent />
</aims:map>

JAVA CONNECTOR TAG LIBRARY 365


What happens to my AppServerLink applications in ArcIMS 4.0?

ArcIMS 3.1 supported AppServerLink, a JavaBean component that exposed a set of methods and properties to allow communication with the ArcIMS
Application Server. AppServerLink is deprecated in ArcIMS 4.0 and replaced by the Java Connector. The arcims_appserverlink.jar will not be
installed with ArcIMS 4.0, but applications developed using the AppServerLink will continue to work in ArcIMS 4.0 provided you have
arcims_appserverlink.jar in your classpath.

The AppServerLink and the Java Connector can co-exist in ArcIMS 4.0 that is, you can continue to run your AppServerLink applications and use the
Java Connector for new development. Even though this is possible we strongly recommend that you migrate your AppServerLink applications to the Java
Connector. The table below shows the AppServerLink bean methods and the corresponding Java Connector methods.

AppServerLink Java Connector


Package: Package:
com.esri.aims.mtier.beans.AppServerLink com.esri.aims.mtier.io.ConnectionProxy
setAppServerHost(String newAppServerHost) setHost(String newHost)
setAppServerPort(int newAppServerPort) setPort(int newPort)
sendAXLRequest(String serviceName, String request, send(String request)
String customService) send(String host, String service, int port, int
connectionType, String request)
send(String host, String service, int port, int
connectionType, String username, String password,
String request)
getAppServerHost() getHost()
getAppServerPort() getPort()
getResponseAXL() No equivalent method. The send() now returns string.
getServiceName() getService()
getAXLResponseAsStream(String serviceName, String sendGetStream(String request)
request, String customService)

For detailed information on ConnectionProxy methods and other available packages, please refer to the ArcIMS Java Connector Object Model API
Specification, located at <ArcIMS Installation Directory>/Documentation/Java_Connector/api_reference.htm.

You might also like