Using Glyphs with Amazon Location Service and Mapbox-GL

369 Views Asked by At

I am using the Amazon Location Service with React, react-map-gl and Mapbox-GL. I can successfully load ESRI and HERE maps which suggests my authentication is OK but I seem to have trouble with accessing Glyphs (fonts). I am trying to add a cluster markers feature like this. I can add the points and load the base layer but when I try to add the point counts there is an error accessing the glyph. It is sending a request like this:

https://maps.geo.eu-west-1.amazonaws.com/maps/v0/maps/<MY_MAP>/glyphs/Noto%20Sans,Arial%20Unicode/0-255.pbf?<....SOME_AUTHENTICATION_STUFF>

This seems to match the request format shown here: https://docs.aws.amazon.com/location-maps/latest/APIReference/location-maps-api.pdf

But it responds with: {"message":"Esri glyph resource not found"}

I get a similar error message with HERE maps and different fonts. I have added the following to the action on the role with no success (it loads the map but not glyphs)

Tried this:

"geo:GetMap*"

And this:

"geo:GetMapStyleDescriptor",
"geo:GetMapGlyphs",
"geo:GetMapSprites",
"geo:GetMapTile"

What do I have to do to setup glyphs correctly in the Amazon Location Service? I have not configured anything just hoped they would naturally work. Have I missed a step? Can't see anything online about it.

Is there a work around where I could load the system font instead of a remote glyph?

I am using the following versions which are not the most recent as the most recent are incompatible with Amazon Location Service:

"mapbox-gl": "^1.13.0",
"react-map-gl": "^5.2.11",
1

There are 1 best solutions below

0
On BEST ANSWER

The default font stack (Noto Sans, Arial Unicode) for the cluster layer isn't currently available via Amazon Location. You will need to change the font stack used by the cluster layer to something in the supported list: https://docs.aws.amazon.com/location-maps/latest/APIReference/API_GetMapGlyphs.html#API_GetMapGlyphs_RequestSyntax