Aeralas Maps
Print-ready annotated aerial maps of US addresses for real estate and engineering, paid via x402.
我該用這個嗎
品質與安全性
發現項目(1)
- LOW在 get_service_info 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"aerial-maps": {
"url": "https://maps.aeralas.com/mcp"
}
}
}遠端端點
https://maps.aeralas.com/mcpstreamable-http它能做什麼
工具清單
工具(5)
🟢get_service_info
What the maps contain, the price, imagery coverage and quality, how to pay over x402, and how a person can buy one directly. Free.
輸入結構描述
{
"type": "object",
"properties": {}
}🟢check_map(address, center, groundWidthM, pageSize, orientation, ...)
Lay out the map and report what it had to compromise on -- overlapping labels, truncated text, annotations off the page -- plus the imagery quality and what was drawn, so drafted labels can be edited. Returns no image. Free; iterate here before make_map.
輸入結構描述
{
"type": "object",
"properties": {
"address": {
"description": "US street address, city and state. Geocoded via the US Census.",
"type": "string",
"minLength": 5,
"maxLength": 200
},
"center": {
"description": "[longitude, latitude] in WGS84. Alternative to address.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"groundWidthM": {
"default": 500,
"description": "True ground width of the frame in meters. 500 fits a typical retail plaza; 20000-40000 makes a regional map, where autoLabel drafts cities, highway shields and water instead of tenants.",
"type": "number",
"minimum": 100,
"maximum": 40000
},
"pageSize": {
"default": "tabloid",
"type": "string",
"enum": [
"letter",
"legal",
"tabloid"
]
},
"orientation": {
"default": "portrait",
"type": "string",
"enum": [
"portrait",
"landscape"
]
},
"dpi": {
"default": 200,
"type": "integer",
"minimum": 150,
"maximum": 300
},
"imagerySourceId": {
"description": "Imagery source id. Defaults to the sharpest source covering the frame.",
"type": "string"
},
"annotations": {
"description": "Callouts to draw. Placement, collision avoidance and leader lines are automatic.",
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Your id for this annotation. Echoed back in warnings so you can match them up.",
"type": "string",
"maxLength": 64
},
"type": {
"type": "string",
"enum": [
"tenant_callout",
"subject_property",
"road_label",
"traffic_count",
"place_label",
"route_shield",
"water_label",
"subject_pin",
"panel"
]
},
"at": {
"description": "[lon, lat]. Required for tenant_callout and traffic_count.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"path": {
"description": "[[lon,lat],...] along the road. Required for road_label.",
"minItems": 2,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"polygon": {
"description": "[[lon,lat],...] ring. Required for subject_property.",
"minItems": 3,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"label": {
"type": "string",
"maxLength": 120
},
"sublabel": {
"description": "Second line, e.g. \"24,500 SF\".",
"type": "string",
"maxLength": 120
},
"aadt": {
"description": "Traffic count, for traffic_count.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tier": {
"description": "place_label size class.",
"type": "string",
"enum": [
"city",
"town",
"village"
]
},
"network": {
"description": "route_shield: interstate, US route or state route.",
"type": "string",
"enum": [
"I",
"US",
"SR"
]
},
"number": {
"description": "route_shield route number, e.g. \"5\" or \"99W\".",
"type": "string",
"maxLength": 5
},
"monogram": {
"description": "subject_pin: up to three characters shown in the pin, e.g. initials.",
"type": "string",
"maxLength": 3
},
"stat": {
"description": "panel: the figure in the header, e.g. \"100,000+ jobs\".",
"type": "string",
"maxLength": 60
},
"body": {
"description": "panel: a grid of logos, one large logo, a photo, or header only.",
"type": "string",
"enum": [
"logos",
"logo",
"photo",
"none"
]
},
"logos": {
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Brand name, looked up for a public-domain logo.",
"type": "string",
"maxLength": 80
},
"wikidata": {
"type": "string",
"pattern": "^Q\\d+$"
},
"image": {
"description": "Your own logo as a data: URI (PNG, JPEG or WebP).",
"type": "string",
"maxLength": 4000000
}
}
}
},
"photo": {
"description": "panel: a photo as a data: URI (PNG, JPEG or WebP), up to 8 MB.",
"type": "object",
"properties": {
"image": {
"type": "string",
"maxLength": 11000000
}
},
"required": [
"image"
]
},
"color": {
"description": "panel: header bar colour.",
"type": "string",
"maxLength": 32
},
"outline": {
"description": "panel: the offset frame. Default on.",
"type": "boolean"
},
"outlineColor": {
"type": "string",
"maxLength": 32
},
"width": {
"description": "panel: width as a fraction of the page.",
"type": "number",
"minimum": 0.1,
"maximum": 0.6
},
"anchor": {
"description": "panel: top-left corner as fractions of the page. Omit to dock the panel beside the place it points at.",
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
]
},
"stylePreset": {
"default": "light",
"description": "light reads on dark pavement and roofs in shadow; dark reads on bright roofs and sunlit parking; accent is survey orange, meant for the subject property only.",
"type": "string",
"enum": [
"light",
"dark",
"accent"
]
},
"offset": {
"description": "Move the label box relative to its pin, in preview pixels (the page is 1397 wide at 11x17 portrait). Setting this turns the auto-placer OFF for this annotation, so it is the fix for a label_overlap warning you want resolved a specific way.",
"type": "object",
"properties": {
"dx": {
"type": "number",
"minimum": -2000,
"maximum": 2000
},
"dy": {
"type": "number",
"minimum": -2000,
"maximum": 2000
}
},
"required": [
"dx",
"dy"
]
},
"textScale": {
"description": "Multiplier on text size. Lower it to clear a text_truncated warning.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"strokeScale": {
"description": "Multiplier on pin, leader and outline weights.",
"type": "number",
"minimum": 0.5,
"maximum": 4
},
"boxColor": {
"description": "CSS colour for the label box fill.",
"type": "string",
"maxLength": 32
},
"inkColor": {
"description": "CSS colour for the label text.",
"type": "string",
"maxLength": 32
},
"markColor": {
"description": "CSS colour for the pin and leader line.",
"type": "string",
"maxLength": 32
}
},
"required": [
"type"
]
}
},
"autoLabel": {
"default": false,
"description": "Draft tenant callouts from OpenStreetMap and road names from Census TIGER before drawing your own. Use this when you do not know what is at the location. Pass an object to control how many: fewer labels is the simplest cure for a crowded page.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"mode": {
"default": "auto",
"description": "site drafts tenants and road names; regional drafts cities, highway shields and water. auto picks regional for frames 3000 m wide or more.",
"type": "string",
"enum": [
"auto",
"site",
"regional"
]
},
"maxTenants": {
"default": 10,
"type": "integer",
"minimum": 0,
"maximum": 20
},
"maxRoads": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"maxPlaces": {
"default": 8,
"type": "integer",
"minimum": 0,
"maximum": 15
},
"maxShields": {
"default": 6,
"type": "integer",
"minimum": 0,
"maximum": 12
},
"maxWater": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"brandsOnly": {
"default": false,
"description": "Keep only recognised chains. A flyer wants anchors, not every barber.",
"type": "boolean"
}
}
}
]
},
"labelScale": {
"default": 1,
"description": "Text size multiplier applied to every annotation that does not set its own textScale. Drop to ~0.8 to fit more labels; raise for a map read at arm’s length.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"titleBlockScale": {
"default": 1,
"description": "Size multiplier for the title block.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"overlays": {
"default": [],
"description": "Thematic layers drawn under the annotations. A legend is added automatically. fema-flood: regulated floodplain (blank means no mapped hazard — FEMA draws Zone X with no symbol). nwi-wetlands: USFWS National Wetlands Inventory.",
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"fema-flood",
"nwi-wetlands"
]
}
},
"pageElements": {
"default": {
"titleBlock": true,
"northArrow": true,
"scaleBar": true,
"locatorInset": false,
"insetZoomOut": 14
},
"description": "Page furniture. Turn elements off to free up room for labels.",
"type": "object",
"properties": {
"titleBlock": {
"default": true,
"type": "boolean"
},
"northArrow": {
"default": true,
"type": "boolean"
},
"scaleBar": {
"default": true,
"type": "boolean"
},
"locatorInset": {
"default": false,
"description": "A small USGS topo overview showing where this frame sits in the wider area, with the frame outlined on it. Worth the corner it costs whenever the reader may not know the town.",
"type": "boolean"
},
"insetZoomOut": {
"default": 14,
"description": "How many times wider than the frame the inset covers.",
"type": "number",
"minimum": 4,
"maximum": 60
}
}
},
"title": {
"description": "Title block heading. Defaults to the address.",
"type": "string",
"maxLength": 200
},
"mapId": {
"description": "Revise a map you already bought. Returned as X-Map-Id on your paid export. Re-exports are free for 7 days as long as the FRAME is unchanged — change labels, styling, overlays and page elements freely; changing address, center, groundWidthM, pageSize, orientation or dpi makes it a different map.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢preview_map(address, center, groundWidthM, pageSize, orientation, ...)
Render the map at screen size with a PREVIEW watermark and return it as an image, so the user can see the layout before buying. Same request as make_map. Free.
輸入結構描述
{
"type": "object",
"properties": {
"address": {
"description": "US street address, city and state. Geocoded via the US Census.",
"type": "string",
"minLength": 5,
"maxLength": 200
},
"center": {
"description": "[longitude, latitude] in WGS84. Alternative to address.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"groundWidthM": {
"default": 500,
"description": "True ground width of the frame in meters. 500 fits a typical retail plaza; 20000-40000 makes a regional map, where autoLabel drafts cities, highway shields and water instead of tenants.",
"type": "number",
"minimum": 100,
"maximum": 40000
},
"pageSize": {
"default": "tabloid",
"type": "string",
"enum": [
"letter",
"legal",
"tabloid"
]
},
"orientation": {
"default": "portrait",
"type": "string",
"enum": [
"portrait",
"landscape"
]
},
"dpi": {
"default": 200,
"type": "integer",
"minimum": 150,
"maximum": 300
},
"imagerySourceId": {
"description": "Imagery source id. Defaults to the sharpest source covering the frame.",
"type": "string"
},
"annotations": {
"description": "Callouts to draw. Placement, collision avoidance and leader lines are automatic.",
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Your id for this annotation. Echoed back in warnings so you can match them up.",
"type": "string",
"maxLength": 64
},
"type": {
"type": "string",
"enum": [
"tenant_callout",
"subject_property",
"road_label",
"traffic_count",
"place_label",
"route_shield",
"water_label",
"subject_pin",
"panel"
]
},
"at": {
"description": "[lon, lat]. Required for tenant_callout and traffic_count.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"path": {
"description": "[[lon,lat],...] along the road. Required for road_label.",
"minItems": 2,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"polygon": {
"description": "[[lon,lat],...] ring. Required for subject_property.",
"minItems": 3,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"label": {
"type": "string",
"maxLength": 120
},
"sublabel": {
"description": "Second line, e.g. \"24,500 SF\".",
"type": "string",
"maxLength": 120
},
"aadt": {
"description": "Traffic count, for traffic_count.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tier": {
"description": "place_label size class.",
"type": "string",
"enum": [
"city",
"town",
"village"
]
},
"network": {
"description": "route_shield: interstate, US route or state route.",
"type": "string",
"enum": [
"I",
"US",
"SR"
]
},
"number": {
"description": "route_shield route number, e.g. \"5\" or \"99W\".",
"type": "string",
"maxLength": 5
},
"monogram": {
"description": "subject_pin: up to three characters shown in the pin, e.g. initials.",
"type": "string",
"maxLength": 3
},
"stat": {
"description": "panel: the figure in the header, e.g. \"100,000+ jobs\".",
"type": "string",
"maxLength": 60
},
"body": {
"description": "panel: a grid of logos, one large logo, a photo, or header only.",
"type": "string",
"enum": [
"logos",
"logo",
"photo",
"none"
]
},
"logos": {
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Brand name, looked up for a public-domain logo.",
"type": "string",
"maxLength": 80
},
"wikidata": {
"type": "string",
"pattern": "^Q\\d+$"
},
"image": {
"description": "Your own logo as a data: URI (PNG, JPEG or WebP).",
"type": "string",
"maxLength": 4000000
}
}
}
},
"photo": {
"description": "panel: a photo as a data: URI (PNG, JPEG or WebP), up to 8 MB.",
"type": "object",
"properties": {
"image": {
"type": "string",
"maxLength": 11000000
}
},
"required": [
"image"
]
},
"color": {
"description": "panel: header bar colour.",
"type": "string",
"maxLength": 32
},
"outline": {
"description": "panel: the offset frame. Default on.",
"type": "boolean"
},
"outlineColor": {
"type": "string",
"maxLength": 32
},
"width": {
"description": "panel: width as a fraction of the page.",
"type": "number",
"minimum": 0.1,
"maximum": 0.6
},
"anchor": {
"description": "panel: top-left corner as fractions of the page. Omit to dock the panel beside the place it points at.",
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
]
},
"stylePreset": {
"default": "light",
"description": "light reads on dark pavement and roofs in shadow; dark reads on bright roofs and sunlit parking; accent is survey orange, meant for the subject property only.",
"type": "string",
"enum": [
"light",
"dark",
"accent"
]
},
"offset": {
"description": "Move the label box relative to its pin, in preview pixels (the page is 1397 wide at 11x17 portrait). Setting this turns the auto-placer OFF for this annotation, so it is the fix for a label_overlap warning you want resolved a specific way.",
"type": "object",
"properties": {
"dx": {
"type": "number",
"minimum": -2000,
"maximum": 2000
},
"dy": {
"type": "number",
"minimum": -2000,
"maximum": 2000
}
},
"required": [
"dx",
"dy"
]
},
"textScale": {
"description": "Multiplier on text size. Lower it to clear a text_truncated warning.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"strokeScale": {
"description": "Multiplier on pin, leader and outline weights.",
"type": "number",
"minimum": 0.5,
"maximum": 4
},
"boxColor": {
"description": "CSS colour for the label box fill.",
"type": "string",
"maxLength": 32
},
"inkColor": {
"description": "CSS colour for the label text.",
"type": "string",
"maxLength": 32
},
"markColor": {
"description": "CSS colour for the pin and leader line.",
"type": "string",
"maxLength": 32
}
},
"required": [
"type"
]
}
},
"autoLabel": {
"default": false,
"description": "Draft tenant callouts from OpenStreetMap and road names from Census TIGER before drawing your own. Use this when you do not know what is at the location. Pass an object to control how many: fewer labels is the simplest cure for a crowded page.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"mode": {
"default": "auto",
"description": "site drafts tenants and road names; regional drafts cities, highway shields and water. auto picks regional for frames 3000 m wide or more.",
"type": "string",
"enum": [
"auto",
"site",
"regional"
]
},
"maxTenants": {
"default": 10,
"type": "integer",
"minimum": 0,
"maximum": 20
},
"maxRoads": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"maxPlaces": {
"default": 8,
"type": "integer",
"minimum": 0,
"maximum": 15
},
"maxShields": {
"default": 6,
"type": "integer",
"minimum": 0,
"maximum": 12
},
"maxWater": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"brandsOnly": {
"default": false,
"description": "Keep only recognised chains. A flyer wants anchors, not every barber.",
"type": "boolean"
}
}
}
]
},
"labelScale": {
"default": 1,
"description": "Text size multiplier applied to every annotation that does not set its own textScale. Drop to ~0.8 to fit more labels; raise for a map read at arm’s length.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"titleBlockScale": {
"default": 1,
"description": "Size multiplier for the title block.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"overlays": {
"default": [],
"description": "Thematic layers drawn under the annotations. A legend is added automatically. fema-flood: regulated floodplain (blank means no mapped hazard — FEMA draws Zone X with no symbol). nwi-wetlands: USFWS National Wetlands Inventory.",
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"fema-flood",
"nwi-wetlands"
]
}
},
"pageElements": {
"default": {
"titleBlock": true,
"northArrow": true,
"scaleBar": true,
"locatorInset": false,
"insetZoomOut": 14
},
"description": "Page furniture. Turn elements off to free up room for labels.",
"type": "object",
"properties": {
"titleBlock": {
"default": true,
"type": "boolean"
},
"northArrow": {
"default": true,
"type": "boolean"
},
"scaleBar": {
"default": true,
"type": "boolean"
},
"locatorInset": {
"default": false,
"description": "A small USGS topo overview showing where this frame sits in the wider area, with the frame outlined on it. Worth the corner it costs whenever the reader may not know the town.",
"type": "boolean"
},
"insetZoomOut": {
"default": 14,
"description": "How many times wider than the frame the inset covers.",
"type": "number",
"minimum": 4,
"maximum": 60
}
}
},
"title": {
"description": "Title block heading. Defaults to the address.",
"type": "string",
"maxLength": 200
},
"mapId": {
"description": "Revise a map you already bought. Returned as X-Map-Id on your paid export. Re-exports are free for 7 days as long as the FRAME is unchanged — change labels, styling, overlays and page elements freely; changing address, center, groundWidthM, pageSize, orientation or dpi makes it a different map.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢make_map(address, center, groundWidthM, pageSize, orientation, ...)
Render the print-resolution map and return a download link. Costs $1 USDC, paid over x402: the first call returns the payment requirements; sign and call again with the payment. Charged only if the render succeeds. Includes 7 days of free revisions via revise_map.
輸入結構描述
{
"type": "object",
"properties": {
"address": {
"description": "US street address, city and state. Geocoded via the US Census.",
"type": "string",
"minLength": 5,
"maxLength": 200
},
"center": {
"description": "[longitude, latitude] in WGS84. Alternative to address.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"groundWidthM": {
"default": 500,
"description": "True ground width of the frame in meters. 500 fits a typical retail plaza; 20000-40000 makes a regional map, where autoLabel drafts cities, highway shields and water instead of tenants.",
"type": "number",
"minimum": 100,
"maximum": 40000
},
"pageSize": {
"default": "tabloid",
"type": "string",
"enum": [
"letter",
"legal",
"tabloid"
]
},
"orientation": {
"default": "portrait",
"type": "string",
"enum": [
"portrait",
"landscape"
]
},
"dpi": {
"default": 200,
"type": "integer",
"minimum": 150,
"maximum": 300
},
"format": {
"default": "pdf",
"type": "string",
"enum": [
"pdf",
"png"
]
},
"imagerySourceId": {
"description": "Imagery source id. Defaults to the sharpest source covering the frame.",
"type": "string"
},
"annotations": {
"description": "Callouts to draw. Placement, collision avoidance and leader lines are automatic.",
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Your id for this annotation. Echoed back in warnings so you can match them up.",
"type": "string",
"maxLength": 64
},
"type": {
"type": "string",
"enum": [
"tenant_callout",
"subject_property",
"road_label",
"traffic_count",
"place_label",
"route_shield",
"water_label",
"subject_pin",
"panel"
]
},
"at": {
"description": "[lon, lat]. Required for tenant_callout and traffic_count.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"path": {
"description": "[[lon,lat],...] along the road. Required for road_label.",
"minItems": 2,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"polygon": {
"description": "[[lon,lat],...] ring. Required for subject_property.",
"minItems": 3,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"label": {
"type": "string",
"maxLength": 120
},
"sublabel": {
"description": "Second line, e.g. \"24,500 SF\".",
"type": "string",
"maxLength": 120
},
"aadt": {
"description": "Traffic count, for traffic_count.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tier": {
"description": "place_label size class.",
"type": "string",
"enum": [
"city",
"town",
"village"
]
},
"network": {
"description": "route_shield: interstate, US route or state route.",
"type": "string",
"enum": [
"I",
"US",
"SR"
]
},
"number": {
"description": "route_shield route number, e.g. \"5\" or \"99W\".",
"type": "string",
"maxLength": 5
},
"monogram": {
"description": "subject_pin: up to three characters shown in the pin, e.g. initials.",
"type": "string",
"maxLength": 3
},
"stat": {
"description": "panel: the figure in the header, e.g. \"100,000+ jobs\".",
"type": "string",
"maxLength": 60
},
"body": {
"description": "panel: a grid of logos, one large logo, a photo, or header only.",
"type": "string",
"enum": [
"logos",
"logo",
"photo",
"none"
]
},
"logos": {
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Brand name, looked up for a public-domain logo.",
"type": "string",
"maxLength": 80
},
"wikidata": {
"type": "string",
"pattern": "^Q\\d+$"
},
"image": {
"description": "Your own logo as a data: URI (PNG, JPEG or WebP).",
"type": "string",
"maxLength": 4000000
}
}
}
},
"photo": {
"description": "panel: a photo as a data: URI (PNG, JPEG or WebP), up to 8 MB.",
"type": "object",
"properties": {
"image": {
"type": "string",
"maxLength": 11000000
}
},
"required": [
"image"
]
},
"color": {
"description": "panel: header bar colour.",
"type": "string",
"maxLength": 32
},
"outline": {
"description": "panel: the offset frame. Default on.",
"type": "boolean"
},
"outlineColor": {
"type": "string",
"maxLength": 32
},
"width": {
"description": "panel: width as a fraction of the page.",
"type": "number",
"minimum": 0.1,
"maximum": 0.6
},
"anchor": {
"description": "panel: top-left corner as fractions of the page. Omit to dock the panel beside the place it points at.",
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
]
},
"stylePreset": {
"default": "light",
"description": "light reads on dark pavement and roofs in shadow; dark reads on bright roofs and sunlit parking; accent is survey orange, meant for the subject property only.",
"type": "string",
"enum": [
"light",
"dark",
"accent"
]
},
"offset": {
"description": "Move the label box relative to its pin, in preview pixels (the page is 1397 wide at 11x17 portrait). Setting this turns the auto-placer OFF for this annotation, so it is the fix for a label_overlap warning you want resolved a specific way.",
"type": "object",
"properties": {
"dx": {
"type": "number",
"minimum": -2000,
"maximum": 2000
},
"dy": {
"type": "number",
"minimum": -2000,
"maximum": 2000
}
},
"required": [
"dx",
"dy"
]
},
"textScale": {
"description": "Multiplier on text size. Lower it to clear a text_truncated warning.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"strokeScale": {
"description": "Multiplier on pin, leader and outline weights.",
"type": "number",
"minimum": 0.5,
"maximum": 4
},
"boxColor": {
"description": "CSS colour for the label box fill.",
"type": "string",
"maxLength": 32
},
"inkColor": {
"description": "CSS colour for the label text.",
"type": "string",
"maxLength": 32
},
"markColor": {
"description": "CSS colour for the pin and leader line.",
"type": "string",
"maxLength": 32
}
},
"required": [
"type"
]
}
},
"autoLabel": {
"default": false,
"description": "Draft tenant callouts from OpenStreetMap and road names from Census TIGER before drawing your own. Use this when you do not know what is at the location. Pass an object to control how many: fewer labels is the simplest cure for a crowded page.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"mode": {
"default": "auto",
"description": "site drafts tenants and road names; regional drafts cities, highway shields and water. auto picks regional for frames 3000 m wide or more.",
"type": "string",
"enum": [
"auto",
"site",
"regional"
]
},
"maxTenants": {
"default": 10,
"type": "integer",
"minimum": 0,
"maximum": 20
},
"maxRoads": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"maxPlaces": {
"default": 8,
"type": "integer",
"minimum": 0,
"maximum": 15
},
"maxShields": {
"default": 6,
"type": "integer",
"minimum": 0,
"maximum": 12
},
"maxWater": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"brandsOnly": {
"default": false,
"description": "Keep only recognised chains. A flyer wants anchors, not every barber.",
"type": "boolean"
}
}
}
]
},
"labelScale": {
"default": 1,
"description": "Text size multiplier applied to every annotation that does not set its own textScale. Drop to ~0.8 to fit more labels; raise for a map read at arm’s length.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"titleBlockScale": {
"default": 1,
"description": "Size multiplier for the title block.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"overlays": {
"default": [],
"description": "Thematic layers drawn under the annotations. A legend is added automatically. fema-flood: regulated floodplain (blank means no mapped hazard — FEMA draws Zone X with no symbol). nwi-wetlands: USFWS National Wetlands Inventory.",
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"fema-flood",
"nwi-wetlands"
]
}
},
"pageElements": {
"default": {
"titleBlock": true,
"northArrow": true,
"scaleBar": true,
"locatorInset": false,
"insetZoomOut": 14
},
"description": "Page furniture. Turn elements off to free up room for labels.",
"type": "object",
"properties": {
"titleBlock": {
"default": true,
"type": "boolean"
},
"northArrow": {
"default": true,
"type": "boolean"
},
"scaleBar": {
"default": true,
"type": "boolean"
},
"locatorInset": {
"default": false,
"description": "A small USGS topo overview showing where this frame sits in the wider area, with the frame outlined on it. Worth the corner it costs whenever the reader may not know the town.",
"type": "boolean"
},
"insetZoomOut": {
"default": 14,
"description": "How many times wider than the frame the inset covers.",
"type": "number",
"minimum": 4,
"maximum": 60
}
}
},
"title": {
"description": "Title block heading. Defaults to the address.",
"type": "string",
"maxLength": 200
},
"mapId": {
"description": "Revise a map you already bought. Returned as X-Map-Id on your paid export. Re-exports are free for 7 days as long as the FRAME is unchanged — change labels, styling, overlays and page elements freely; changing address, center, groundWidthM, pageSize, orientation or dpi makes it a different map.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡revise_map(address, center, groundWidthM, pageSize, orientation, ...)
Re-export a map bought with make_map, free for 7 days: change labels, annotations, styling, overlays or page elements. The frame must stay the same -- address or center, groundWidthM, pageSize, orientation, dpi. Requires the mapId make_map returned.
輸入結構描述
{
"type": "object",
"properties": {
"address": {
"description": "US street address, city and state. Geocoded via the US Census.",
"type": "string",
"minLength": 5,
"maxLength": 200
},
"center": {
"description": "[longitude, latitude] in WGS84. Alternative to address.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"groundWidthM": {
"default": 500,
"description": "True ground width of the frame in meters. 500 fits a typical retail plaza; 20000-40000 makes a regional map, where autoLabel drafts cities, highway shields and water instead of tenants.",
"type": "number",
"minimum": 100,
"maximum": 40000
},
"pageSize": {
"default": "tabloid",
"type": "string",
"enum": [
"letter",
"legal",
"tabloid"
]
},
"orientation": {
"default": "portrait",
"type": "string",
"enum": [
"portrait",
"landscape"
]
},
"dpi": {
"default": 200,
"type": "integer",
"minimum": 150,
"maximum": 300
},
"format": {
"default": "pdf",
"type": "string",
"enum": [
"pdf",
"png"
]
},
"imagerySourceId": {
"description": "Imagery source id. Defaults to the sharpest source covering the frame.",
"type": "string"
},
"annotations": {
"description": "Callouts to draw. Placement, collision avoidance and leader lines are automatic.",
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"description": "Your id for this annotation. Echoed back in warnings so you can match them up.",
"type": "string",
"maxLength": 64
},
"type": {
"type": "string",
"enum": [
"tenant_callout",
"subject_property",
"road_label",
"traffic_count",
"place_label",
"route_shield",
"water_label",
"subject_pin",
"panel"
]
},
"at": {
"description": "[lon, lat]. Required for tenant_callout and traffic_count.",
"type": "array",
"items": [
{
"type": "number",
"minimum": -180,
"maximum": 180
},
{
"type": "number",
"minimum": -90,
"maximum": 90
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
},
"path": {
"description": "[[lon,lat],...] along the road. Required for road_label.",
"minItems": 2,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"polygon": {
"description": "[[lon,lat],...] ring. Required for subject_property.",
"minItems": 3,
"type": "array",
"items": {
"type": "array",
"items": [
{
"type": "number"
},
{
"type": "number"
}
],
"additionalItems": false,
"minItems": 2,
"maxItems": 2
}
},
"label": {
"type": "string",
"maxLength": 120
},
"sublabel": {
"description": "Second line, e.g. \"24,500 SF\".",
"type": "string",
"maxLength": 120
},
"aadt": {
"description": "Traffic count, for traffic_count.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"tier": {
"description": "place_label size class.",
"type": "string",
"enum": [
"city",
"town",
"village"
]
},
"network": {
"description": "route_shield: interstate, US route or state route.",
"type": "string",
"enum": [
"I",
"US",
"SR"
]
},
"number": {
"description": "route_shield route number, e.g. \"5\" or \"99W\".",
"type": "string",
"maxLength": 5
},
"monogram": {
"description": "subject_pin: up to three characters shown in the pin, e.g. initials.",
"type": "string",
"maxLength": 3
},
"stat": {
"description": "panel: the figure in the header, e.g. \"100,000+ jobs\".",
"type": "string",
"maxLength": 60
},
"body": {
"description": "panel: a grid of logos, one large logo, a photo, or header only.",
"type": "string",
"enum": [
"logos",
"logo",
"photo",
"none"
]
},
"logos": {
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"description": "Brand name, looked up for a public-domain logo.",
"type": "string",
"maxLength": 80
},
"wikidata": {
"type": "string",
"pattern": "^Q\\d+$"
},
"image": {
"description": "Your own logo as a data: URI (PNG, JPEG or WebP).",
"type": "string",
"maxLength": 4000000
}
}
}
},
"photo": {
"description": "panel: a photo as a data: URI (PNG, JPEG or WebP), up to 8 MB.",
"type": "object",
"properties": {
"image": {
"type": "string",
"maxLength": 11000000
}
},
"required": [
"image"
]
},
"color": {
"description": "panel: header bar colour.",
"type": "string",
"maxLength": 32
},
"outline": {
"description": "panel: the offset frame. Default on.",
"type": "boolean"
},
"outlineColor": {
"type": "string",
"maxLength": 32
},
"width": {
"description": "panel: width as a fraction of the page.",
"type": "number",
"minimum": 0.1,
"maximum": 0.6
},
"anchor": {
"description": "panel: top-left corner as fractions of the page. Omit to dock the panel beside the place it points at.",
"type": "object",
"properties": {
"x": {
"type": "number",
"minimum": 0,
"maximum": 1
},
"y": {
"type": "number",
"minimum": 0,
"maximum": 1
}
},
"required": [
"x",
"y"
]
},
"stylePreset": {
"default": "light",
"description": "light reads on dark pavement and roofs in shadow; dark reads on bright roofs and sunlit parking; accent is survey orange, meant for the subject property only.",
"type": "string",
"enum": [
"light",
"dark",
"accent"
]
},
"offset": {
"description": "Move the label box relative to its pin, in preview pixels (the page is 1397 wide at 11x17 portrait). Setting this turns the auto-placer OFF for this annotation, so it is the fix for a label_overlap warning you want resolved a specific way.",
"type": "object",
"properties": {
"dx": {
"type": "number",
"minimum": -2000,
"maximum": 2000
},
"dy": {
"type": "number",
"minimum": -2000,
"maximum": 2000
}
},
"required": [
"dx",
"dy"
]
},
"textScale": {
"description": "Multiplier on text size. Lower it to clear a text_truncated warning.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"strokeScale": {
"description": "Multiplier on pin, leader and outline weights.",
"type": "number",
"minimum": 0.5,
"maximum": 4
},
"boxColor": {
"description": "CSS colour for the label box fill.",
"type": "string",
"maxLength": 32
},
"inkColor": {
"description": "CSS colour for the label text.",
"type": "string",
"maxLength": 32
},
"markColor": {
"description": "CSS colour for the pin and leader line.",
"type": "string",
"maxLength": 32
}
},
"required": [
"type"
]
}
},
"autoLabel": {
"default": false,
"description": "Draft tenant callouts from OpenStreetMap and road names from Census TIGER before drawing your own. Use this when you do not know what is at the location. Pass an object to control how many: fewer labels is the simplest cure for a crowded page.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"mode": {
"default": "auto",
"description": "site drafts tenants and road names; regional drafts cities, highway shields and water. auto picks regional for frames 3000 m wide or more.",
"type": "string",
"enum": [
"auto",
"site",
"regional"
]
},
"maxTenants": {
"default": 10,
"type": "integer",
"minimum": 0,
"maximum": 20
},
"maxRoads": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"maxPlaces": {
"default": 8,
"type": "integer",
"minimum": 0,
"maximum": 15
},
"maxShields": {
"default": 6,
"type": "integer",
"minimum": 0,
"maximum": 12
},
"maxWater": {
"default": 4,
"type": "integer",
"minimum": 0,
"maximum": 8
},
"brandsOnly": {
"default": false,
"description": "Keep only recognised chains. A flyer wants anchors, not every barber.",
"type": "boolean"
}
}
}
]
},
"labelScale": {
"default": 1,
"description": "Text size multiplier applied to every annotation that does not set its own textScale. Drop to ~0.8 to fit more labels; raise for a map read at arm’s length.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"titleBlockScale": {
"default": 1,
"description": "Size multiplier for the title block.",
"type": "number",
"minimum": 0.6,
"maximum": 2
},
"overlays": {
"default": [],
"description": "Thematic layers drawn under the annotations. A legend is added automatically. fema-flood: regulated floodplain (blank means no mapped hazard — FEMA draws Zone X with no symbol). nwi-wetlands: USFWS National Wetlands Inventory.",
"maxItems": 2,
"type": "array",
"items": {
"type": "string",
"enum": [
"fema-flood",
"nwi-wetlands"
]
}
},
"pageElements": {
"default": {
"titleBlock": true,
"northArrow": true,
"scaleBar": true,
"locatorInset": false,
"insetZoomOut": 14
},
"description": "Page furniture. Turn elements off to free up room for labels.",
"type": "object",
"properties": {
"titleBlock": {
"default": true,
"type": "boolean"
},
"northArrow": {
"default": true,
"type": "boolean"
},
"scaleBar": {
"default": true,
"type": "boolean"
},
"locatorInset": {
"default": false,
"description": "A small USGS topo overview showing where this frame sits in the wider area, with the frame outlined on it. Worth the corner it costs whenever the reader may not know the town.",
"type": "boolean"
},
"insetZoomOut": {
"default": 14,
"description": "How many times wider than the frame the inset covers.",
"type": "number",
"minimum": 4,
"maximum": 60
}
}
},
"title": {
"description": "Title block heading. Defaults to the address.",
"type": "string",
"maxLength": 200
},
"mapId": {
"description": "Revise a map you already bought. Returned as X-Map-Id on your paid export. Re-exports are free for 7 days as long as the FRAME is unchanged — change labels, styling, overlays and page elements freely; changing address, center, groundWidthM, pageSize, orientation or dpi makes it a different map.",
"type": "string",
"format": "uuid",
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}社群
證據