ArcGIS Maritime uses a server object extension (SOE). You must add the SOE to a map service in your ArcGIS site to enable Maritime Chart Service functionality for the map service.
Note:
Review the following system requirement information before you set up your service:
- Mapped network drives are not recommended for your workspaceDirectories property setting due to potential performance issues. You should have your .senc files on the physical server.
- You will exceed a URL length of 2,048 characters if you use display parameters in your GET request. POST is not necessarily supported in all third-party apps. If you cannot support POST in your apps, it is recommended that you increase your allowable URL length using a web.config.xml file.
- For deploying Custom Chart Builder (CCB), you are required to use web.config.xml to increase your default URL length.
- It is recommended that you increase your map services javaHeapSize value from the default 128MB to 2048MB or greater depending on your system resources and the number of datasets in our service. The queryDataset operation and Custom Chart Builder (CCB) exports can exceed this default limit.
Enabling Maritime Chart Service
Perform the following steps to enable Maritime Chart Service:
- Create a folder called maritimeserver in the ArcGIS Server site at <ArcGIS Server installation drive>\arcgisserver\directories.
Note:
If this location doesn't exist, verify that your ArcGIS Server site has been created.
- Copy the maritimechartservice folder from <ArcGIS Server Installation Directory>\MaritimeServer\Server<version> to the maritimeserver folder created in step 1.
- Sign in as a server manager by launching https://gisserver.domain.com/arcgis/manager.
- Click the Site tab.
- In the GIS Server pane, click Extensions.
- Click Add Extention.
- Click Browse and browse to <ArcGIS Install Directory>\MaritimeServer\Server<version>\Bin.
- Click MaritimeServer.soe.
- Click Add.
MaritimeServer.soe is now successfully added.
- Click the Services tab.
- Click your map service.
- In the Map Services pane, click Capabilities.
- Check the Maritime Chart Service check box.
- Verify all the properties.
Note:
The MaritimeServer.soe uses the maritimechartservice folder mentioned in step 2 to automatically populate the Maritime Chart Service Capabilities properties.
- Click Save and Restart in ArcGIS Server Manager to restart the map service.
Maritime Chart Service capabilities are now enabled.
- You are now ready to load S-57 and S-63 datasets to your map service.
Note:
You can to modify your default configuration settings.
Note:
If you installed Maritime Chart Service in a cluster, you only need to enable it on one of the machines in the cluster. The configuration changes are automatically applied to the other machines in the cluster.
Learn more about creating a Maritime Chart Service tile package using S-57 and S-63 datasets
Deploying Custom Chart Builder
ArcGIS Maritime allows you to deploy a web-based app to generate information map products in real time and allows you to create any product at any scale.
Copy customchartbuilder folder
Copy the customchartbuilder folder from the Custom Chart Builder (CCB) installation to the deployment location. The files in the installation location can be treated as a backup; the files in the deployment location are modified as needed. Copy the folder to <ArcGIS Server installation drive>\arcgisserver\directories\ maritimeserver l so the CCB folder and maritime server folder are in the same directory.
Perform the steps below to deploy CCB in your ArcGIS Server site.
Note:
To complete the following deployment steps for CCB, you must have a map service with Maritime Chart Service enabled.
- If necessary, create a folder called maritimeserver in the ArcGIS Server site at <ArcGIS Server installation drive>\arcgisserver\directories.
- Copy the customchartbuilder folder from <ArcGIS Server Installation Directory>\MaritimeServer\Server<version> to the maritimeserver folder created in step 1.
- Configure the ArcGIS Server account.
Configure sharing and permissions
Share and add permissions to your <ArcGIS Server installation drive>\arcgisserver folder using the steps below to ensure that your ArcGIS Server account user has full control permission on this folder.
Note:
CCB product export processing writes or modifies necessary files under this folder.
- Right-click the arcgisserver folder and choose Properties.
- Click the Sharing tab.
- Click Advanced Sharing.
- Check the Share this folder check box.
- Click Permissions.
- Click Add on the Share Permissions tab.
- Add your ArcGIS Server account user.
Note:
You can specify the locale of your ArcGIS Server account. By default, this user is usually ArcGIS.
- Once the user is added, click OK to close the Select Users or Groups dialog box.
- Choose the newly added ArcGIS Server account in the Group or user names section on the Share Permissions tab and click the Allow check box next to Full Control.
- Click OK.
- Click OK again to close the Advanced Sharing dialog box.
- Click Close.
Publishing the service definition files
Publish the two service definition files to ArcGIS Server for CCB to calculate the area of interest (AOI) extent when you create an extent on the map to export a PDF chart.
- Sign in as a server manager by launching https://gisserver.domain.com/arcgis/manager.
Note:
Publish the service definition files using ArcGIS Server Manager. To streamline deployment, it is recommended that you create a folder in ArcGIS Server Manager named CCB to organize your CCB-related services.
- Click Services > Manage Services, choose the CCB folder, and click Publish Service.
- Click Choose File to browse to the service definition you want to publish, or type the path to the file.
The default location is <ArcGIS Server installation drive>\arcgisserver\directories\ maritimeserver\customchartbuilder\ServiceDefinitionFiles.
- Choose Calculators.sd and click Open.
Caution:
Do not change the name of the service. The web app does not work if you do so.
By default, the service definition is published to the server folder specified in the service definition configuration. To change the folder where the service definition is published, choose a folder from the drop-down list or click New.
Note:
All CCB service definitions must be in the same folder to properly deploy CCB. It is recommended that you create a folder to organize your CCB-related services. CCB is the recommended folder name.
- Click Next.
You must specify properties for your new service. No additional capabilities need to be chosen.
- Click Back or Next as necessary.
- Click Publish.
- Repeat steps 3 through 6 for ExportWebmap.sd.
Update the Utilities.py file
Update your Utilities.py file after you publish your CCB service definition files so your Calculators and ExportWebmap geoprocessing services use the updated file.
- In Windows Explorer, browse to the Utilities.py file and edit it.
The default location is <ArcGIS Server installation drive>\arcgisserver\directories\ maritimeserver \customchartbuilder\Tools.
- Update the following variables:
- shared_products_path and output_directory—Update with your machine name and domain, and update the path if you did not use the recommended default settings.
- output_url—localhost is used only for local testing. Otherwise, update this variable with your machine name and domain, and update the path if you did not use the recommended default settings.
- Save your changes to Utilities.py and click Exit.
- Copy your updated Utilities.py file to your newly published Calculators and ExportWebmap CCB services arcgisinput location.
- Browse to your arcgisinput location for CCB. The default location is <ArcGIS Server installation drive>\arcgisserver\directories\arcgissystem\arcgisinput\CCB.
- Copy your updated Utilities.py file located in step 1 to <ArcGIS Server installation drive>\arcgisserver\directories\arcgissystem\arcgisinput\CCB\Calculators.GPServer\extracted\p20\tools.
- Copy your updated Utilities.py file located in step 1 to <ArcGIS Server installation drive>\arcgisserver\directories\arcgissystem\arcgisinput\CCB\ExportWebmap.GPServer\extracted\p20\tools
- In ArcGIS Server Manager, click Services > Manage Services.
- Click Folders > CCB.
- Restart your Calculators and ExportWebmap geoprocessing services.
Enable custom symbology
The ServerConfiguration.xml file provides a true/false switch to enable or disable display of custom symbology that overrides the default S-52 presentation library. When enabled, Maritime Chart Service references rules in the CustomSymbolMap.XML, Scalable Vector Graphic (SVG) symbols and Lua scripts to provide a paper chart-like view of the S-57 data.
After setting custom symbology to true, you must rebuild the .senc files for the symbols to appear in your service.
Lua in Maritime Chart Service can:
- Reference SVG files to override point symbols or simple/complex line patterns
- Override symbol instructions such as color, fill pattern or transparency
- Access to view groups or display properties
- Provide instruction to modify a text group's font name, size, weight color and offset
Updating geoenabled notes
Geoenabled notes allow you to generate textual notes for CCB outputs based on the geographic location of the product.
The notes are stored in a multipart polygon feature class, in which each record has a text field that contains the note. When a new product AOI is inserted, the AOI is intersected with the geoenabled notes polygon layer, and a separate A4 sheet is appended to the GeoPDF export. If there is more than a single page of notes, a second page is generated, and so on.
Perform the following steps to customize geoenabled notes:
- Unzip Notes.gdb.zip in <ArcGIS Server installation drive>\arcgisserver\directories\maritimeserver\customchartbuilder\LayoutTemplates\Notes.gdb.
Tip:
A sample notes geodatabase exists in the Notes.zip file.
- Add multipart polygon features in the FeatureClassForNotes feature class that is in the Notes.gdb folder.
Tip:
- Sample notes are in the FeatureClassForNotes_Sample feature class in the Notes.gdb folder.
- Multipart polygons allow you to have several geographic locations that share the same note text without redundancy.
- Edit the fields in the FeatureClassForNotes feature class as follows:
Notes | Title | Color | minScale | maxScale |
---|---|---|---|---|
This is a mandatory field. Note text or body of the paragraph. | This is an optional field. The name of the note that prints above the note paragraph. | This is an optional field. Red, Green, Blue (RGB) value of the note paragraph and title. Separate values with a single comma (,). The note appears with black text if the field is empty, null, or has invalid values. Note: This field doesn't comply with CMYK. | This is an optional field. Specify the largest scale chart on which the note appears. For example, if a note should appear on charts between 1:40000 and 1:90000, type 40000 in the field. | This is an optional field. Specify the smallest scale chart on which the note appears. For example, if a note should appear on charts between 1:40000 and 1:90000, type 90000 in the field. |
Customizing layout templates
You can customize the layout templates as described below.
Map elements
Custom Chart Builder (CCB) provides several layout templates for various page sizes and orientation. Each layout contains map elements, such as scale bars, north arrows, and legends, as well as logos, text, or other graphics that are created for specific purposes in the chart. Layout elements can also be map frames.
With the latest release of Maritime Chart Service, templates for page sizes A0 and ANSI E have common chart notes added to them. You can modify these notes to fit your local needs. If you do not want to create A0 or ANSI E sized charts with notes, you can remove those templates from your setup and replace them with the previous versions of those templates now renamed with a _withoutnotes suffix.
Tip:
Rename your A0 and ANSI E templates, for example, with a _withnotes suffix in their name. Remove the _withoutnotes from your backup A0 and ANSI E templates. The system recognizes the A0 and ANSI E templates that no longer have common notes.
By default, the layout template font is Arial.
Managing elements
During product creation, the map elements are updated dynamically to reflect changes in the chart such as scale, geographic extent, and generation date. Custom Chart Builder (CCB) uses the names of elements to manage and identify which elements are to be modified by the automation script. Map element names should not be changed. If names are modified, the element cannot be managed using the automation script. If necessary, you can access the name by clicking Element Name on the Size and Position tab on the Properties dialog box.
Map frame
The AOI generated in the Custom Chart Builder (CCB) web app is obtained from the layout template's map frames. A calculator finds the bottom left corner of the data frame; then it finds the left and bottom edge. Changing the map frame size impacts AOI size.
Configuring the web app
Once you publish your services definition files, update your layout templates, publish a map service with Maritime Chart Service enabled and update your Utilities.py file, you are ready to configure and deploy the Custom Chart Builder (CCB) web app.
- Browse to <ArcGIS Server Installation Directory>\MaritimeServer\Server<version>\WebApplications and copy the ccb folder to C:\inetpub\wwwroot if using IIS to deploy your web app.
Note:
You can rename the ccb folder. This is the name of the app you access on the web.
- Register your web app and get the App ID. See the Add Apps section for more information.
You can also register your web app through your portal.
- Update your ccbconfig.js file located under ccb\js.
- Update serviceURL to the location created in step 2 of Publishing service definition files. If defaults were used, the path is https://gisserver.domain.com/arcgis/rest/services/CCB.
- Update MCSURL to the map service with Maritime Chart Service enabled. If you enabled Maritime Chart Service for SampleWorldCities, the path is https://gisserver.domain.com/arcgis/rest/services/SampleWorldCities/MapServer/exts/MaritimeChartService/MapServer.
Note:
The app uses the Esri Ocean basemap. You can choose another basemap by modifying the basemap variable.
- Update appID with the App ID created in step 2. This allows you to sign in to ArcGIS Online or your portal account.
- Save changes to your ccbconfig.js file.
You are now ready to use the Custom Chart Builder (CCB) app.
Registering the web app through your portal
To register your web app through your portal, do the following:
- If you use Internet Information Server (IIS), choose Windows Explorer and search for C:\inetpub\wwwroot\ccb.
- In the widgets\AddData folder, open Widget.js.
- Update portalUrl to https://portalserver.domain.com/arcgis.
- Click Save.
- In the widgets\LayerList folder, open Widget.js.
- Under appConfig, update portalUrl to https://portalserver.domain.com/arcgis.
- Click Save.
- In the js folder, open SignInButton.js
- Uncomment // portalUrl: "https://portalserver.domain.com/arcgis", and update the portalUrl.
- Click Save.
Troubleshooting the Maritime Server configuration
I don't see Maritime Chart Service data in my Custom Chart Builder (CCB) app.
Verify that the MCSURL set in step 3 of the Configuring the web app section is accessible to the user accessing the app.
I received an Unable to complete Operation error.
Add Configure ArcGIS Server Account to the installation directory if the error Unable to complete Operation. Error Executing tool. CalculateExtent. occurs.
My Maritime Chart Service doesn't display or disappears after changing my display properties.
Determine whether you exceeded your server URL length of 2048 characters when using display parameters. If so, increase your allowable URL length using a web.config.xml file.
What if I observe a possible error due to failure of enabling HTTPS on the web server?
Verify if you have enabled HTTPS on your web server.