Available with Standard or Advanced license.
Available with Production Mapping license.
Available with ArcGIS Maritime license.
ArcGIS Maritime uses a server object extension (SOE). You must add the SOE to your ArcGIS Server Manager site to enable Maritime Chart Service functionality for a map service.
Review the following system requirement information before you set up your service:
- Mapped network drives are not recommended for the workspaceDirectories property setting due to potential performance issues. It is recommended that the .senc files be stored on the physical server.
- Maritime Chart Service can only be enabled on a dedicated instance type. Shared instance pools are not supported.
- You will exceed a URL length of 2,048 characters if you use display properties 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 service's javaHeapSize value from the default 128 MB to 2048 MB or greater, depending on your system resources and the number of datasets in your service. The queryDataset operation and Custom Chart Builder (CCB) exports can exceed this default limit.
- By default at ArcGIS Enterprise 11.0, new map services with a dedicated instance pool will have the minimum and maximum number of instances per machine set to zero. It is highly recommended that the minimum and maximum number of instances per machine be set to 1. This will ensure that when your map service with Maritime Chart Service (MCS) enabled is started, the cataloging process will automatically start. This was the default setting in previous versions of ArcGIS Enterprise. Without this minimum setting of 1, a request will need to be made to the one of the Maritime Chart Service endpoints to start the cataloging process and could cause delays in response time. The cataloging process is when MCS scans the datasets folder and builds the necessary .senc files. For more information on changing instance setting, refer to Configure service instance settings.
Enable Maritime Chart Service
Complete the following steps to enable Maritime Chart Service:
- Create a folder named 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.
Note:
The setup steps provide a default location and name to deploy the configuration files. The name of the maritime chart service folder and location may differ depending on your organization's requirements.
- Sign in to ArcGIS Server Manager.
- Click Site.
- In the Server Configuration window, click Extensions.
- Click Add Extension.
- Click Choose File and browse to <ArcGIS Maritime Server installation directory>\MaritimeServer\Server<version>\Bin.
- Click MaritimeServer.soe.
- Click Add.
The MaritimeServer.soe file is added.
- Click the Services tab.
- Click the map service to which you want to add Maritime Chart Service.
Maritime Chart Service works with any existing map service.
- Click Capabilities and check the Maritime Chart Service check box.
- Verify that the Maritime Chart Service properties are configured correctly.
Note:
The MaritimeServer.soe uses the maritimechartservice folder to automatically populate the Maritime Chart Service capabilities properties.
- Click Save and Restart 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:
Default configuration settings can be modified.
Deploy Custom Chart Builder (CCB)
The Maritime server extension 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 the 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 and the files in the deployment location are modified as needed. The recommended location to copy the customchartbuilder folder to is: <ArcGIS Server installation drive>\arcgisserver\directories\maritimeserver so that the CCB folder and Maritime server folder are under the same folder.
Note:
- To complete the steps, you must have a map service with the Maritime Chart Service capability enabled.
- Custom Chart Builder (CCB) requires the installation of PDF Merge Support. Without this feature, PDF documents cannot be exported from the Custom Chart Builder (CCB) app.
Complete the following steps to deploy Custom Chart Builder (CCB) in your ArcGIS Server site:
- If necessary, create a folder named 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 and that Maritime Chart Service is enabled.
- Copy the customchartbuilder folder from <ArcGIS Maritime server installation drive>\MaritimeServer\Server<version> to the <ArcGIS Server installation drive>\arcgisserver\directories\maritimeserver.
- Configure the ArcGIS Server account.
Configure sharing and permissions
Perform these steps to configure sharing for the <ArcGIS Server installation drive>\arcgisserver folder and to add Full Control permissions for the ArcGIS Server account:
- Right-click the arcgisserver folder and click 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 the ArcGIS Server account.
Note:
You can specify the locale of your ArcGIS Server account. By default, this user is ArcGIS unless a different user has been designated.
- Once the ArcGIS Server account has been 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 window on the Share Permissions tab.
- Check the Allow check box next to Full Control.
- Click OK.
- Click OK to close the Advanced Sharing dialog box.
- Click Close.
- Click OK to close the Properties dialog box.
Publish 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.
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 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.
The service definition is published to the server folder specified in the service definition configuration by default. 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 deploy CCB. It is recommended that you create a folder to organize CCB-related services. The recommended folder name is CCB.
- Click Next.
You need to specify properties for your new service. No additional capabilities are required.
- Optionally, check the Existing check box and choose CCB from the drop-down arrow.
- Click Back or click Next as necessary.
- Click Publish.
- Repeat these steps for ExportWebmap.sd.
Update the Utilities.py file
You must complete this process after you have published your CCB service definition files. This ensures that your Calculators and ExportWebmap geoprocessing services use the updated Utilities.py file:
- In File Explorer, browse to the Utilities.py file and open it in a text editor.
The default location is <ArcGIS Server installation drive>\arcgisserver\directories\maritimeserver\customchartbuilder\Tools.
- Update the following variables:
- shared_products_path and output_directory—Update the variables with your machine name, domain, and folder path if you did not use the recommended default settings.
- output_url—Update the variable with your machine name and domain, and update the folder path if you did not use the recommended default settings. Localhost can only be used for local testing.
- Save the changes to Utilities.py, and close the file.
- Copy your updated Utilities.py file to the arcgisinput location of your newly published Calculators and ExportWebmap CCB services.
- Browse to your arcgisinput location for CCB.
The default location is <ArcGIS Server installation drive>\arcgisserver\directories\arcgissystem\arcgisinput\CCB.
- Copy the updated Utilities.py file to <Installation location>\arcgisserver\directories\arcgissystem\arcgisinput\CCB\Calculators.GPServer\extracted\p30\tools.
- Copy the updated Utilities.py file to <Installation location>\arcgisserver\directories\arcgissystem\arcgisinput\CCB\ExportWebmap.GPServer\extracted\p30\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 contains a CustomSymbology boolean to enable or disable display of custom symbology that overrides the default S-52 presentation library. When available, Maritime Chart Service references rules in the CustomSymbolMap.xml, Scalable Vector Graphic (SVG) symbols, and Lua scripts to provide a paper chart-like display 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 do the following:
- Reference SVG files to override point symbols or line patterns (simple and complex)
- Override symbol instructions such as color, fill pattern, or transparency
- Access view groups or display properties
- Provide instructions to modify a text group's font name, size, weight, color, and offset
Update 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 point, line, or polygon feature class, where each record has a text box that contains the note. When a new product area of interest is inserted, the area of interest is intersected with the geoenabled notes layers, and a separate A4 sheet is appended to the export. If there is more than one page of notes, a second page is generated, and so on.
Perform the following steps to customize geoenabled notes:
- Unzip the Notes.zip file in the <ArcGIS Server directory location>\arcgisserver\directories\maritimeserver\customchartbuilder\LayoutTemplates directory.
Tip:
A sample notes geodatabase exists in the Notes.zip file.
- In ArcGIS Pro, add multipart polygon features to the FeatureClassForNotes feature class in the Notes.gdb folder.
Optionally, add features to the FeatureClassForNotes or FeatureClassForNotes_Line feature class.
Tip:
- Sample notes can be found 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.
- Optionally, edit the following fields in the FeatureClassForNotes feature class:
Notes
This is a required field.
Add note text or the body of the paragraph.
Title
This is an optional field.
Add the name of the note that prints above the note paragraph.
Color
This is an optional field.
Set the 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 does not comply with CYMK.
minScale
This is an optional field.
Specify the smallest chart scale on which the note appears. For example, if a note appears on a chart between 1:40000 and 1:90000, type 40000 in the field.
maxScale
This is an optional field.
Specify the largest chart scale on which the note appears. For example, if a note appears on a chart between 1:40000 and 1:90000, type 90000 in the field.
Customize 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 orientations. Each layout contains map elements such as scale bars, north arrows, and legends; logos, text, or other graphics that are created for specific purposes in the chart. Map frames are also layout elements.
Tip:
Use the center anchor point in the map frame to minimize movement and prevent the grid border from overlapping surrounding elements. The map frame expands 13 millimeters on each side during the export map process.
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 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.
Manage elements
During product creation, the map elements are updated dynamically to reflect changes in the chart, such as scale, geographic extent, and generation date. CCB uses the names of elements to manage and identify which elements are to be modified by the automation script. Do not change map element names. If you modify the names, 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 of the Properties dialog box.
Map frame
The AOI generated in the CCB web app is obtained from the layout template's map frames. A calculator finds the lower left corner of the data frame, then the left and bottom edge. Changing the map frame size impacts AOI size.
Configure the web app
Once you have published your service definition files, updated your layout templates, published a map service with Maritime Chart Service available, and updated your Utilities.py file, you are ready to configure and deploy your CCB web app.
- Browse to <ArcGIS Server installation directory>\MaritimeServer\Server<version>\WebApplications and copy the CCB folder to C:\inetpub\wwwroot if using Internet Information Server (IIS) to deploy your web app.
Note:
You can rename the CCB folder. This is the name of the app you access over the web.
- Register your web app and get the App ID.
Note:
You can skip this step if your web app is configured for the Fixed Product type. For the Custom Product type, this is an optional setting. If you want to activate sign-in capability and need to add data from your organization's account, this step is required.
If you registered your web app through your portal, complete the postregistration steps.
- Update your ccbconfig.js file located under ccb\js.
- Update the serviceURL parameter with the location of the service you created in step 2 of Publish the service definition files.
If the recommended defaults were used, the path is https://gisserver.domain.com/arcgis/rest/services/CCB.
- Update the MCSURL parameter to the map service with Maritime Chart Service enabled.
If the Maritime Chart Service capability is activated 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. Choose another basemap by modifying the basemap variable.
- If necessary, update the appID parameter with the App ID you created in step 2.
This allows you to sign in to the ArcGIS organizational account. This only applies to the Custom Product type.
- Update the serviceURL parameter with the location of the service you created in step 2 of Publish the service definition files.
- Save the changes to your ccbconfig.js file.
You can now launch the app to use CCB.
Portal postregistration
If you registered the web app through your portal, complete these post-registration steps:
- Browse to the CCB folder in your web root folder. For example, browse to C:\inetpub\wwwroot\ccb if you are deploying your web app using Internet Information Server (IIS).
- In the widgets\AddData folder, open Widget.js.
- Update the portalUrl variable to https://portalserver.domain.com/arcgis.
- Click Save.
- In the widgets\LayerList folder, open Widget.js.
- In the appConfig section, update the 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 parameter.
- Click Save.
Troubleshoot the Maritime server extension configuration
Use the following frequently asked questions to troubleshoot configuration issues:
The Maritime Chart Service data is not available in my Custom Chart Builder (CCB) app
Verify that the MCSURL set in step 3 of Configure the web app 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 does not display or disappears after changing my display properties
Determine whether you exceeded the server URL length of 2,048 characters when using display parameters. If so, increase the allowable URL length in the web.config.xml file.
I received an error for failure to enable HTTPS on the web server
Verify you have enabled HTTPS on your web server.