Publish Processes¶
V1/V2 Publish Process¶
This tutorial will guide you on how to publish your map content using Pointr Cloud v1/v2. To access Pointr Cloud, contact your Project Manager. You will need the following prerequisites:
- Pointr Cloud URL (eg. https://clientname.pointr.cloud)
- Username
- Password
- Modern browsers (Chrome, Edge, Firefox, Opera, or Safari) with a stable internet connection
Signing into your Pointr Cloud account, follow these steps:
- Obtain login credentials from your Project Manager.
- Go to the URL of your Pointr Cloud Dashboard.
- Enter your User Name (usually your email address) and Password to log in.
Go to the Configuration page via the left menu. As you can see in the image below, you can see the menu of tabs at the top of the screen. Among these menus, you will be shown the sections with publish features one by one.
1. Venues¶
Venues are referred to as Sites in the v8 version. It’s like a campus where you can easily walk or commute from one side to another, for example, a hospital or an airport campus.
When you enter the page, if your data was modified (i.e. dirty) but not published yet, the Publish button will become active. If not, when you add new data or make an update, your data will become “dirty” and you will be able to publish your changes.
NOTE: The button is made active/passive by controlling the “**IsPendingPublishMetadata*” method. This method checks if the data is dirty.
If the publish button is active and clicked, the “PublishMetadata” method is triggered and the publish process starts.
In the Publish process, the “GenerateExportData” method is triggered and “venue” is passed as Type. At the end of the Publish process, depending on the version of the platform you are using, 6 different types of data can be generated. These are:
- v1 Mobile
- v1 Web
- v1 Kiosk
- v2 Mobile
- v2 Web
- v2 Kiosk
After this step, you will be able to use the most suitable data package according to the platforms you use.
2. Facilities¶
Facilities are referred to as Buildings in the v8 version. They are physical structures with floor plans. Tunnels, bridges, and parking lots can also be facilities if they have floorplans. Each facility is linked to a specific venue.
When you enter the page, if your data was modified (i.e. dirty) but not published yet, the Publish button will become active. If not, when you add new data or make an update, your data will become “dirty” and you will be able to publish your changes.
NOTE: The button is made active/passive by controlling the “**IsPendingPublishMetadata*” method. This method checks if the data is dirty.
If the publish button is active and clicked, the “PublishMetadata” method is triggered and the publish process starts.
In the Publish process, the “GenerateExportData” method is triggered and “venue” is passed as Type. At the end of the Publish process, depending on the version of the platform you are using, 6 different types of data can be generated. These are:
- v1 Mobile
- v1 Web
- v1 Kiosk
- v2 Mobile
- v2 Web
- v2 Kiosk
After this step, you will be able to use the most suitable data package according to the platforms you use.
3. POI Types¶
A POI is any map feature that the end users may be interested to search for / navigate to. For example, a table is not typically a Point of Interest but if it’s a hot desk that can be booked (hence a user could search for a specific desk), it would qualify as a Point of Interest.
When you enter the page, if your data was modified (i.e. dirty) but not published yet, the Publish button will become active. If not, when you add new data or make an update, your data will become “dirty” and you will be able to publish your changes.
NOTE: The button is made active/passive by controlling the “**IsPendingPublishPoiType*” endpoint. This method checks if the data is dirty.
If the publish button is active and clicked, the “PublishPoiType” method is triggered and the publish process starts.
In the Publish process, the “GenerateExportData” method is triggered and “poiType” is passed as Type. At the end of the Publish process, depending on the version of the platform you are using, 6 different types of data can be generated. These are:
- v1 Mobile
- v1 Web
- v1 Kiosk
- v2 Mobile
- v2 Web
- v2 Kiosk
After this step, you will be able to use the most suitable data package according to the platforms you use.
4. Configuration¶
As can be observed in the image below, it is possible to get more than one type of publish in the configuration screen. There are 3 types of publishing you can do on this page.
- Global
- Venue
- Facility
While checking if there is any dirty data, we are calling the “IsPendingPublish” endpoint. While calling this endpoint, we are passing 2 parameters.
- Facility Identifier (Optional)
-
Scope (Mandatory) - Global, Venue, Facility
-
If the scope Global tab is selected, the operation checks both global and codec changes.
- If the scope Venue tab is selected, the operation checks venue changes.
- If the scope Facility tab is selected, the operation checks facility changes.
If the publish button is active and clicked, the “Publish” method is triggered and the publish event starts.
- Facility Identifier (Optional)
-
Scope (Mandatory) - Global, Venue, Facility
-
If the scope Venue tab is selected, the operations in item 1 are done.
- If the scope Facility tab is selected, the operations in item 2 are done.
When Global publish is done, it publishes both the defined parameters and codecs. Unlike other publishers, Global publish does not write data to any table. It refreshes the data kept in cache.
5. Map Designer¶
Map Designer shows content of the selected “Building” and allows user to modify content. Its scope is limited to selected “Building” and when pressed only updates the contents of the selected “Building”. Unpublished changes pending for the other “Buildings” are not affected.
When any changes are made on the screen, the Publish button becomes active. If the publish button is clicked, the “Publish” method is triggered and the publish process starts. The following 6 types are published at publish time.
- POI
- Zone
- Wall
- Graph
- Beacon
- Self Service
All processes are completed quickly in parallel. When Publish is complete, the updated data will now be available for other platforms as well.
6. Super Publish¶
Super publish forces all content to be regenerated. This is used when data gets imported via APIs. Since the data is imported via API, Super Publish is also done via API. This is done by calling the “{URL}/api/v2/publish” API.
V8 Publish Process¶
This tutorial will guide you on how to publish your map content using Pointr Cloud v8. To access Pointr Cloud, contact your Project Manager. You will need the following prerequisites:
- Pointr Cloud Backend URL (eg. https://clientname-api)
- Username
- Password
- Modern browsers (Chrome, Edge, Firefox, Opera, or Safari) with a stable internet connection
Signing into your Pointr Cloud account, follow these steps:
- Obtain login credentials from your Project Manager.
- Go to the URL of your Pointr Cloud Dashboard.
- Enter your User Name (usually your email address) and Password to log in.
Publishing Your Map Content¶
Before you can use your edited content with the Pointr Cloud API or Pointr’s SDKs, you need to Publish it. Compared to version v1/v2, version v8 has only one publish structure.
-
Click on Ready To Stage when you are ready to review your content before making it live.
-
Select Review and Publish to review your map content.
-
Use the breadcrumb menu to navigate the content you want to review.
NOTE: The map’s visual style is determined by the stylesheets used in the Pointr Cloud Dashboard. This page provides a preview of your chosen map widget style. You can customize the map’s appearance using your own stylesheet. For more detailed information on customizing map styles, refer to Pointr’s Map Specification here
To confirm the publishing of your map content, refer to step 6. If you wish to cancel the publishing process, refer to step 4.
-
To continue editing your map content, click Cancel and return to your Dashboard.
-
A pop-up notification will ask for confirmation to cancel publishing. Click Yes, continue to cancel your publishing request, or click No, go back to proceed with publishing your map content.
-
Once you are satisfied with your content, click on Publish.
-
A pop-up notification will appear asking you to confirm the publishing. Click Yes, continue to publish your map, or click No, go back to make further edits if needed.
-
After clicking Yes, continue, you will be redirected to the Pointr Cloud editing Dashboard, where your publishing request will be processed. Unlike the v1/v2 version, in this section, operations are executed asynchronously over different threads, while kept in loading status on the user’s screen.
-
Once the publishing process is completed, you will see a notification in the bottom-right corner stating, “Your content has been published”.
At the end of the Publish process, the data to be used in v8 has been produced for the entire platform.
V8 Publish Process with Pointr Cloud API¶
This tutorial will guide you on how to publish your map content using Pointr Cloud API. To access Pointr Cloud API, contact your Project Manager. You will need the following prerequisites:
- Pointr Cloud Backend URL (eg. https://clientname.pointr.cloud)
- Username
- Password
1. Authentication¶
In order to use the Pointr Cloud API, you first need an access_token. You must follow the steps below to get access_token.
- Send a post request to “{URL}/api/v8/auth/token“
- Provide parameters as follows;
- Username
- Password
- Grant_type
- After successful authentication, the response body will return an “access_token” field. In order the get authenticated to secure endpoints you can use access_token value in request header “Authorization” with value “Bearer {access_token}”
- About Authentication endpoints responses ‘’expires_in’’ field, it is as seconds and if your token expires before you get a new token with refresh token or new authentication, you will not be able to use APIs.’
Also, the possible response codes to the post request sent are as follows;
- 200 - Returns new token
- 400 - If there is an error
- 401 - If client’s credentials are incorrect
- 403 - If client is not allowed
2. Getting client information¶
The first step after getting the “Access_token” information is to get the client information of the logged in user. To do this we need to make a get request to the “{URL}/api/v8/clients” endpoint.
- Send a GET request to “{URL}/api/v8/clients”
- Provide request header “Authorization” with value “Bearer {access_token}“
- You can access the client’s information in the response. We will use the “clientInternalIdentifier” value here for Publish.
A sample success response information is as follows.
Also, the possible response codes to the get request sent are as follows;
- 200 - Returns clients
- 400 - If authorization fails
- 404 - If client can not be found
- 500 - If any internal error occurs
3. Start Publish with a POST request¶
When a client makes any changes, these changes are saved as draft. In order for these changes to be permanent, clients must publish these changes. After publishing, these changes are saved and ready to be served to the users.
- Send a POST request to “{URL}/api/v8/clients/{clientInternalIdentifier}/maps/convert”
- Provide request header “Authorization” with value “Bearer {access_token}“
- System checks if the client is publishable, if it’s not, throws an exception with code 400 and the message “Client is not publishable.”.
- If the client does not have any map object typed feature, throws an exception with code 404 and message “No map objects found for this client.”.
A sample success response information is as follows:
Also, the possible response codes to the GET request can be as follows:
- 200 - Returns success object
- 400 - If validations fails
- 401 - If authorization fails
- 404 - If client can not be found
- 409 - If there is already job
- 500 - If any internal error occurs
4. Clarify publishing status¶
Since there is an asynchronous working strategy during v8 publish, only the information that the job is queued is returned to the user before the whole job is finished. For this reason, you can get the status information of the currently running job with a GET request:
- Send a GET request to “{URL}/api/v8/clients/{clientInternalIdentifier}/maps/status”
- Provide request header “Authorization” with value “Bearer {access_token}”
- Then you will be able to reach the status of the job. You can find out what each status code means below.
- 0: NoChange: means, (there is no new publishable mapObject for client AND (either no converted mbtiles exits or mbtiles already published))
- 1: ReadyToStage: means you can start a ConvertJob for client
- 2: StageInProgress: means a ConvertJob still in progress for client
- 3: ReviewReady: means you can approve or decline converted mbtiles for clients
- 4: PublishIsStarted: means PC is started publish geojson content, can’t create new stage
A sample success response information is as follows.
Also, the possible response codes to the GET request can be as follows:
- 200 - Returns success object
- 401 - If authorization fails
- 404 - If client can not be found
- 500 - If any internal error occurs
5. Approve the Publish¶
For client-based approve requests, if publish microservice returns success, mapBaseUrl and its value will be added to client’s SDK configuration and then system calls super publish. At the end of the super publish, we give information to microservice that we’ve finished publishing.
- Send a PUT request to “{URL}/api/v8/clients/{clientInternalIdentifier}/maps/approve”
- Provide request header “Authorization” with value “Bearer {access_token}“
- After the request, you will receive an ok message that the publication has been approved.
The possible response codes to the GET request can be as follows:
- 200 - Returns OK
- 401 - If authorization fails
- 404 - If client can not be found
- 500 - If any internal error occurs
6. Decline the publish¶
In this case we need to call the following PUT request. As a side note, this API call doesn’t revert or cancel publish requests. It just declines preview status.
- Send a PUT request to “{URL}/api/v8/clients/{clientInternalIdentifier}/maps/decline”
- Provide request header “Authorization” with value “Bearer {access_token}“
- After the request, you will receive an OK message that the publication has been declined.
The possible response codes to the GET request sent can be as follows:
- 200 - Returns success object
- 401 - If authorization fails
- 404 - If client can not be found
- 500 - If any internal error occurs