A plot is chosen on access, labour and port time.
All three are drive-time questions about the Thai road network, and all three are usually answered with a radius on a screenshot.
What breaks
Site selection narrows a long list before anyone visits. The measurements that do the narrowing — what can reach the plot, who can commute to it, how far it is from a port — are all questions about roads, and a circle drawn on a map answers none of them.
Whether a 40-foot container can reach a plot depends on what the approach is classified as — trunk, primary, secondary, minor — not on how far the plot is from a highway on the map.
The population that can commute to a site in 45 minutes follows the road network and its constraints. A circle of the same nominal reach includes towns nobody can get there from.
Administrative names are shared between provinces, so a shortlist assembled by name alone quietly mixes in plots several hundred kilometres from the region under consideration.
What it costs
Advisers already know what a site visit costs. The value is in how many of them the shortlist avoids.
candidate sites screened × cost of a site visit × share the shortlist removes before anyone travels
Put your own numbers in the calculatorThe endpoints you would use
GET/v1/isochroneLabour catchment and service reach as drive-time polygons around a candidate plot.
POST/v1/matrixDrive time from the plot to every port, airport and depot on the list, in one call.
GET/v1/admin-areas/reverseConfirm which province, district and subdistrict a plot is actually in before it enters a shortlist.
GET/tiles/v1/{tileset}/{z}/{x}/{yFile}The road network itself, classified, for a map that shows how a site is reached.
A request you can run
A 45-minute catchment around a candidate plot, then drive times from it to two ports.
# Labour catchment for a candidate plot: everywhere within a 45-minute
# drive, as a polygon. A radius drawn on a map is not a catchment.
curl -H "X-MapScale-Key: $MAPSCALE_API_KEY" \
"https://api.mapscale.io/v1/isochrone?point=101.1450,12.9200&contours=45&profile=driving"
# Drive time from the plot to each candidate port and airport, in one call.
curl -X POST -H "X-MapScale-Key: $MAPSCALE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"sources":[[101.1450,12.9200]],"targets":[[100.8890,12.6820],[100.5860,13.6810]],"profile":"driving"}' \
"https://api.mapscale.io/v1/matrix"What we can actually claim
One thing we will not sell you: the road layer carries a classification — motorway, trunk, primary, secondary, tertiary, minor, service — and no observed traffic volume, no lane counts and no speed limits, because nobody publishes those for Thailand. It reads well as a network. It is not a traffic feed, and we do not present it as one.
Bring us your data.
A 30-minute review against your own addresses — not a demo dataset. You will see the failure rate before you see a price.