Install
openclaw skills install @jeromeex/ci-cadastre-verticesFind or verify parcel vertex coordinates on the Cote d'Ivoire Mining Cadastre Map Portal/Landfolio site. Use when a user gives an official parcel or license code and asks for vertices, boundary coordinates, WGS84/DMS coordinates, decimal latitude/longitude, Esri geometry, or a repeatable workflow on https://portals.landfolio.com/CoteDIvoire/en/.
openclaw skills install @jeromeex/ci-cadastre-verticesUse live portal data. Parcel status, geometry, and even existence can change, so do not treat previously observed permits as stable examples. Prefer the official Esri geometry exposed by the loaded Landfolio page; use visual reconstruction only when page-state geometry is unavailable.
Use whatever browser-control surface the current agent has: Playwright, Chrome DevTools, an in-app browser, OpenClaw-style browser control, Computer Use, or equivalent. The needed capabilities are: navigate, fill/search, wait for visible text, evaluate JavaScript in the page, and optionally inspect network requests.
https://portals.landfolio.com/CoteDIvoire/en/.Search: Licenses, Parties with the parcel/license code and submit.attributes.Code.window.Map.c_objCurrentSearchResults in the page. Do not stringify whole Esri objects because they contain circular DOM/graphics references. Extract only:Object.fromEntries(
Object.entries(window.Map.c_objCurrentSearchResults || {}).map(([group, items]) => [
group,
items.map((item) => ({
layerId: item.layerId,
mapServiceName: item.MapServiceName,
attributes: item.feature && item.feature.attributes,
geometryType: item.feature && item.feature.geometry && item.feature.geometry.type,
rings: item.feature && item.feature.geometry && item.feature.geometry.rings,
spatialReference: item.feature && item.feature.geometry && item.feature.geometry.spatialReference
}))
])
)
attributes.Code match. For active licences, the portal uses the Permis Dynamic service, whose configured REST URL is https://mines.gouv.ci.cadastreminier.org/arcgis/rest/services/MapPortal/ActiveLicences/MapServer. Direct service calls may return 499 Token Required; the browser path is reliable because the app uses its own proxy/token flow.wkid: 102100 / latestWkid: 3857. Drop the final duplicated closing point before reporting vertices.(x, y) to WGS84:const R = 6378137;
const lon = x / R * 180 / Math.PI;
const lat = (2 * Math.atan(Math.exp(y / R)) - Math.PI / 2) * 180 / Math.PI;
Cross-check in the page, when available:
esri.geometry.webMercatorToGeographic(
new esri.geometry.Point(x, y, Map.c_objMap.spatialReference)
)
degrees + minutes / 60 + seconds / 3600; use N for positive latitude, S for negative latitude, E for positive longitude, and W for negative longitude.Use this only when the in-page result object or service geometry is unavailable.
Zoom In, not fixed coordinates.Define Area of Interest; the coordinate entry panel appears as Saisir Coordonnees.WGS 1984 and DMS.N, longitude degrees, minutes, seconds, W. Use the plus-sign row for the next vertex.query calls or fall back to visual reconstruction.Report the parcel code, portal result details, coordinate source, coordinate system, coordinate format, and vertices. Include both DMS and decimal degrees unless the user asks for only one format.
State whether the answer came from official in-page Esri geometry, direct service geometry, or visual reconstruction. Do not overstate visually reconstructed coordinates as surveyed boundary data.