GeoSpark

Verifiable geospatial tools: distances, topology, isochrones, Overture Maps, with sources.

我该使用它吗

质量与安全性

A
描述质量
93%
模式完整度
93%
命名质量
87%
投毒风险
100%
权限匹配度
100%
协议合规性
100%

发现(3)

  • LOWTool 'calculate_distance' description lacks action verb在 calculate_distance 中
  • LOWTool 'get_active_fires' description lacks action verb在 get_active_fires 中
  • LOWTool 'sun_position' description lacks action verb在 sun_position 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~9,510token 数(工具定义)
~4.5 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 7.43%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "geospark": {
      "url": "https://geospark.terrascout.app/mcp"
    }
  }
}

远程端点

https://geospark.terrascout.app/mcpstreamable-http

它能做什么

工具清单

工具(21)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢calculate_distance(place_a, place_b, point_a, point_b)

Exact geodesic distance between two places or geometries on the WGS84 ellipsoid. Use for any "how far" question instead of estimating. For NAMED places pass place_a and place_b; the server geocodes them, so never type coordinates for a place yourself. Use point_a/point_b only for coordinates the user gave or another tool returned. For lines and polygons the distance is between their nearest points. Returns metres and kilometres.

输入模式

{
  "type": "object",
  "properties": {
    "place_a": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A place NAME, e.g. 'Adelaide Oval'; geocoded on the server (preferred)",
      "title": "Place A"
    },
    "place_b": {
      "anyOf": [
        {
          "maxLength": 500,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A place NAME, e.g. 'Adelaide Oval'; geocoded on the server (preferred)",
      "title": "Place B"
    },
    "point_a": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A GeoJSON geometry, e.g. {\"type\": \"Point\", \"coordinates\": [lon, lat]}; only for coordinates the user gave or a tool returned",
      "title": "Point A"
    },
    "point_b": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A GeoJSON geometry, e.g. {\"type\": \"Point\", \"coordinates\": [lon, lat]}; only for coordinates the user gave or a tool returned",
      "title": "Point B"
    }
  },
  "title": "calculate_distanceArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "distance_m": {
      "description": "Geodesic distance in metres (WGS84 ellipsoid)",
      "title": "Distance M",
      "type": "number"
    },
    "distance_km": {
      "title": "Distance Km",
      "type": "number"
    },
    "places": {
      "description": "Named places as geocoded on the server: query, display_name, coordinates [lon, lat]",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Places",
      "type": "array"
    }
  },
  "required": [
    "distance_m",
    "distance_km"
  ],
  "title": "DistanceResult"
}
🟢check_spatial_relationship(geometry_a, geometry_b, relationship)

Ground-truth topology: does geometry_a <relationship> geometry_b? Use instead of guessing containment, overlap or adjacency. Invalid geometries (for example self-intersecting polygons) are refused with the reason.

输入模式

{
  "type": "object",
  "properties": {
    "geometry_a": {
      "additionalProperties": true,
      "description": "A GeoJSON geometry, e.g. {\"type\": \"Point\", \"coordinates\": [lon, lat]}",
      "title": "Geometry A",
      "type": "object"
    },
    "geometry_b": {
      "additionalProperties": true,
      "description": "A GeoJSON geometry, e.g. {\"type\": \"Point\", \"coordinates\": [lon, lat]}",
      "title": "Geometry B",
      "type": "object"
    },
    "relationship": {
      "enum": [
        "contains",
        "intersects",
        "within",
        "touches",
        "crosses",
        "overlaps",
        "disjoint"
      ],
      "title": "Relationship",
      "type": "string"
    }
  },
  "required": [
    "geometry_a",
    "geometry_b",
    "relationship"
  ],
  "title": "check_spatial_relationshipArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "relationship": {
      "title": "Relationship",
      "type": "string"
    },
    "holds": {
      "description": "Whether geometry_a <relationship> geometry_b is true",
      "title": "Holds",
      "type": "boolean"
    }
  },
  "required": [
    "relationship",
    "holds"
  ],
  "title": "RelationshipResult"
}
🟢spatial_operation(operation, geometry, radius_m)

Compute a buffer (shape-preserving, metres), geodesic area or length, centroid or convex hull. Returns the resulting geometry as GeoJSON with its measurements and units.

输入模式

{
  "type": "object",
  "properties": {
    "operation": {
      "enum": [
        "buffer",
        "area",
        "length",
        "centroid",
        "convex_hull"
      ],
      "title": "Operation",
      "type": "string"
    },
    "geometry": {
      "additionalProperties": true,
      "description": "A GeoJSON geometry, e.g. {\"type\": \"Point\", \"coordinates\": [lon, lat]}",
      "title": "Geometry",
      "type": "object"
    },
    "radius_m": {
      "anyOf": [
        {
          "maximum": 100000,
          "minimum": 0,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Buffer radius in metres",
      "title": "Radius M"
    }
  },
  "required": [
    "operation",
    "geometry"
  ],
  "title": "spatial_operationArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢geocode(query, limit)

Find coordinates for an address or place name (OpenStreetMap Nominatim). Check `geospark.warnings` for ambiguous names (e.g. "Springfield") and ask the user which one they mean, or add a region.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "description": "Address or place name",
      "maxLength": 500,
      "minLength": 1,
      "title": "Query",
      "type": "string"
    },
    "limit": {
      "default": 5,
      "maximum": 10,
      "minimum": 1,
      "title": "Limit",
      "type": "integer"
    }
  },
  "required": [
    "query"
  ],
  "title": "geocodeArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢reverse_geocode(latitude, longitude)

Find the address or place at a coordinate (OpenStreetMap Nominatim).

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "reverse_geocodeArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢get_elevation(latitude, longitude)

Ground elevation in metres (Copernicus GLO-30, Open Elevation fallback), with its vertical datum and accuracy.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "get_elevationArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "latitude": {
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "title": "Longitude",
      "type": "number"
    },
    "elevation_m": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Elevation M"
    },
    "vertical_datum": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Vertical Datum"
    },
    "quality": {
      "additionalProperties": true,
      "description": "e.g. vertical_accuracy_le90_m",
      "title": "Quality",
      "type": "object"
    },
    "attribution": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Attribution"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "elevation_m"
  ],
  "title": "ElevationResult"
}
🟢route(from_latitude, from_longitude, to_latitude, to_longitude)

Driving route between two points (OSRM over OpenStreetMap): line geometry, distance in metres and duration in seconds.

输入模式

{
  "type": "object",
  "properties": {
    "from_latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "From Latitude",
      "type": "number"
    },
    "from_longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "From Longitude",
      "type": "number"
    },
    "to_latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "To Latitude",
      "type": "number"
    },
    "to_longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "To Longitude",
      "type": "number"
    }
  },
  "required": [
    "from_latitude",
    "from_longitude",
    "to_latitude",
    "to_longitude"
  ],
  "title": "routeArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢get_weather(latitude, longitude, forecast_days)

Current weather and a daily forecast for a point (Open-Meteo, no key needed).

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "forecast_days": {
      "default": 3,
      "maximum": 16,
      "minimum": 1,
      "title": "Forecast Days",
      "type": "integer"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "get_weatherArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "channel": {
      "title": "Channel",
      "type": "string"
    },
    "features": {
      "description": "Records from the data source",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "total_results": {
      "default": 0,
      "title": "Total Results",
      "type": "integer"
    },
    "query": {
      "additionalProperties": true,
      "title": "Query",
      "type": "object"
    }
  },
  "required": [
    "channel",
    "features"
  ],
  "title": "DataResult"
}
🟢get_air_quality(latitude, longitude)

Latest PM2.5, NO2, O3 from the nearest monitoring stations (OpenAQ; the server needs an OPENAQ_API_KEY), with each station's data licence.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "get_air_qualityArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "channel": {
      "title": "Channel",
      "type": "string"
    },
    "features": {
      "description": "Records from the data source",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "total_results": {
      "default": 0,
      "title": "Total Results",
      "type": "integer"
    },
    "query": {
      "additionalProperties": true,
      "title": "Query",
      "type": "object"
    }
  },
  "required": [
    "channel",
    "features"
  ],
  "title": "DataResult"
}
🟢get_active_fires(latitude, longitude, days)

Satellite active-fire detections near a point (NASA FIRMS; the server needs a FIRMS_MAP_KEY).

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "days": {
      "default": 1,
      "maximum": 2,
      "minimum": 1,
      "title": "Days",
      "type": "integer"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "get_active_firesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "channel": {
      "title": "Channel",
      "type": "string"
    },
    "features": {
      "description": "Records from the data source",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "total_results": {
      "default": 0,
      "title": "Total Results",
      "type": "integer"
    },
    "query": {
      "additionalProperties": true,
      "title": "Query",
      "type": "object"
    }
  },
  "required": [
    "channel",
    "features"
  ],
  "title": "DataResult"
}
🟢isochrone(latitude, longitude, minutes, mode)

Where can you get to from a point within N minutes on foot, by bike or by car? Returns one polygon per contour with its geodesic area (Valhalla over OpenStreetMap).

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "minutes": {
      "default": [
        10
      ],
      "description": "Contour times, 1-60",
      "items": {
        "type": "integer"
      },
      "maxItems": 4,
      "minItems": 1,
      "title": "Minutes",
      "type": "array"
    },
    "mode": {
      "default": "walk",
      "enum": [
        "walk",
        "bike",
        "drive"
      ],
      "title": "Mode",
      "type": "string"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "isochroneArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢travel_time_matrix(origins, destinations, mode)

Network travel time (minutes) and distance (metres) from each origin to each destination. Note: points here are [latitude, longitude] pairs.

输入模式

{
  "type": "object",
  "properties": {
    "origins": {
      "description": "[[lat, lon], ...]",
      "items": {
        "maxItems": 2,
        "minItems": 2,
        "prefixItems": [
          {
            "type": "number"
          },
          {
            "type": "number"
          }
        ],
        "type": "array"
      },
      "maxItems": 5,
      "minItems": 1,
      "title": "Origins",
      "type": "array"
    },
    "destinations": {
      "description": "[[lat, lon], ...]",
      "items": {
        "maxItems": 2,
        "minItems": 2,
        "prefixItems": [
          {
            "type": "number"
          },
          {
            "type": "number"
          }
        ],
        "type": "array"
      },
      "maxItems": 5,
      "minItems": 1,
      "title": "Destinations",
      "type": "array"
    },
    "mode": {
      "default": "walk",
      "enum": [
        "walk",
        "bike",
        "drive"
      ],
      "title": "Mode",
      "type": "string"
    }
  },
  "required": [
    "origins",
    "destinations"
  ],
  "title": "travel_time_matrixArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢overture_features(theme, latitude, longitude, radius_m, category, ...)

Open global map data from Overture Maps, no API key: points of interest (with categories), building footprints (height, floors, geodesic footprint area), road and path segments (geodesic length), or `divisions`, the administrative areas containing the point (country, region, city, neighbourhood). Results are nearest first, with distances in metres. Can take 5-20 s on a cold cache.

输入模式

{
  "type": "object",
  "properties": {
    "theme": {
      "enum": [
        "places",
        "buildings",
        "transportation",
        "divisions"
      ],
      "title": "Theme",
      "type": "string"
    },
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "radius_m": {
      "default": 300,
      "description": "Search radius in metres",
      "exclusiveMinimum": 0,
      "maximum": 2000,
      "title": "Radius M",
      "type": "number"
    },
    "category": {
      "anyOf": [
        {
          "maxLength": 100,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Places only, e.g. 'cafe'",
      "title": "Category"
    },
    "limit": {
      "anyOf": [
        {
          "maximum": 2000,
          "minimum": 1,
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Limit"
    }
  },
  "required": [
    "theme",
    "latitude",
    "longitude"
  ],
  "title": "overture_featuresArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢transform_coordinates(source_crs, target_crs, coordinates, epoch)

Convert coordinates between CRSs as the official transformation does: GDA94 to GDA2020, MGA zones, British National Grid (OSTN15), NAD27 to NAD83 (NADCON), ITRF at an epoch, and any other EPSG pair. Uses national grids (downloaded once), refuses PROJ's ballpark approximations, and returns the operation and its stated accuracy. Use this instead of applying datum parameters yourself.

输入模式

{
  "type": "object",
  "properties": {
    "source_crs": {
      "description": "CRS name or EPSG code, e.g. 'GDA94 / MGA zone 55' or EPSG:28355",
      "maxLength": 100,
      "title": "Source Crs",
      "type": "string"
    },
    "target_crs": {
      "description": "CRS name or EPSG code, e.g. 'GDA2020 / MGA zone 55' or EPSG:7855",
      "maxLength": 100,
      "title": "Target Crs",
      "type": "string"
    },
    "coordinates": {
      "description": "[x, y] or [x, y, z]: [lon, lat] or [easting, northing]",
      "items": {
        "items": {
          "type": "number"
        },
        "type": "array"
      },
      "maxItems": 1000,
      "minItems": 1,
      "title": "Coordinates",
      "type": "array"
    },
    "epoch": {
      "anyOf": [
        {
          "maximum": 2100,
          "minimum": 1900,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Decimal year, for ITRF/ATRF frames",
      "title": "Epoch"
    }
  },
  "required": [
    "source_crs",
    "target_crs",
    "coordinates"
  ],
  "title": "transform_coordinatesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "coordinates": {
      "description": "Transformed points, in the target CRS's x/y(/z) order",
      "items": {
        "items": {
          "type": "number"
        },
        "type": "array"
      },
      "title": "Coordinates",
      "type": "array"
    },
    "source_crs": {
      "title": "Source Crs",
      "type": "string"
    },
    "target_crs": {
      "title": "Target Crs",
      "type": "string"
    },
    "method": {
      "description": "The EPSG operation used",
      "title": "Method",
      "type": "string"
    },
    "accuracy_m": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "description": "The operation's stated accuracy; null for an exact conversion",
      "title": "Accuracy M"
    },
    "grids": {
      "description": "Official grid files the operation used",
      "items": {
        "type": "string"
      },
      "title": "Grids",
      "type": "array"
    },
    "area_of_use": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Area Of Use"
    }
  },
  "required": [
    "coordinates",
    "source_crs",
    "target_crs",
    "method",
    "accuracy_m"
  ],
  "title": "TransformResult"
}
🟢convert_height(latitude, longitude, height_m, from_reference, to_reference)

Convert a height between the ellipsoid (GNSS, drones) and a national height datum with the official geoid model: AHD (AUSGeoid2020), ODN (OSGM15), NZVD2016 (NZGeoid2016), NAVD88 (GEOID18), or global EGM2008. Never estimate a geoid separation from memory: it is often tens of metres and varies by metres across a region.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "height_m": {
      "description": "The height to convert, in metres",
      "maximum": 10000,
      "minimum": -1000,
      "title": "Height M",
      "type": "number"
    },
    "from_reference": {
      "description": "'ellipsoidal', AHD, ODN, NZVD2016, NAVD88 or EGM2008",
      "title": "From Reference",
      "type": "string"
    },
    "to_reference": {
      "description": "'ellipsoidal', AHD, ODN, NZVD2016, NAVD88 or EGM2008",
      "title": "To Reference",
      "type": "string"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "height_m",
    "from_reference",
    "to_reference"
  ],
  "title": "convert_heightArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "height_m": {
      "title": "Height M",
      "type": "number"
    },
    "from_reference": {
      "title": "From Reference",
      "type": "string"
    },
    "to_reference": {
      "title": "To Reference",
      "type": "string"
    },
    "geoid_model": {
      "title": "Geoid Model",
      "type": "string"
    },
    "separation_m": {
      "description": "Ellipsoidal height minus the datum height at this point",
      "title": "Separation M",
      "type": "number"
    },
    "method": {
      "title": "Method",
      "type": "string"
    },
    "accuracy_m": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "title": "Accuracy M"
    },
    "grids": {
      "items": {
        "type": "string"
      },
      "title": "Grids",
      "type": "array"
    }
  },
  "required": [
    "height_m",
    "from_reference",
    "to_reference",
    "geoid_model",
    "separation_m",
    "method",
    "accuracy_m"
  ],
  "title": "HeightResult"
}
🟢sun_position(latitude, longitude, time, tz, object_height_m)

The Sun's apparent elevation and azimuth (from true north) at a place and time, and the shadow a vertical object casts on level ground (NOAA solar position, refraction included).

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "time": {
      "description": "ISO 8601, with a UTC offset (2026-12-21T12:00:00+11:00) or local with tz",
      "maxLength": 40,
      "title": "Time",
      "type": "string"
    },
    "tz": {
      "anyOf": [
        {
          "maxLength": 60,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IANA time zone for a local time, e.g. Australia/Melbourne",
      "title": "Tz"
    },
    "object_height_m": {
      "anyOf": [
        {
          "exclusiveMinimum": 0,
          "maximum": 10000,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Height of a vertical object, for its shadow",
      "title": "Object Height M"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "time"
  ],
  "title": "sun_positionArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "time": {
      "title": "Time",
      "type": "string"
    },
    "elevation_deg": {
      "description": "Apparent elevation above a flat horizon, refraction included",
      "title": "Elevation Deg",
      "type": "number"
    },
    "azimuth_deg": {
      "description": "Clockwise from true north",
      "title": "Azimuth Deg",
      "type": "number"
    },
    "declination_deg": {
      "title": "Declination Deg",
      "type": "number"
    },
    "equation_of_time_min": {
      "title": "Equation Of Time Min",
      "type": "number"
    },
    "above_horizon": {
      "title": "Above Horizon",
      "type": "boolean"
    },
    "method": {
      "title": "Method",
      "type": "string"
    },
    "shadow_length_m": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "On level ground, for object_height_m",
      "title": "Shadow Length M"
    },
    "shadow_direction_deg": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Direction the shadow points, from true north",
      "title": "Shadow Direction Deg"
    }
  },
  "required": [
    "time",
    "elevation_deg",
    "azimuth_deg",
    "declination_deg",
    "equation_of_time_min",
    "above_horizon",
    "method"
  ],
  "title": "SunResult"
}
🟢sun_times(latitude, longitude, date, tz, terrain)

Sunrise, solar noon, sunset and day length on a date for a flat horizon; with terrain=True, also the hours of direct sun once hills are taken into account.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "date": {
      "description": "Local date, YYYY-MM-DD",
      "maxLength": 10,
      "title": "Date",
      "type": "string"
    },
    "tz": {
      "anyOf": [
        {
          "maxLength": 60,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "IANA time zone, e.g. Australia/Melbourne; default UTC",
      "title": "Tz"
    },
    "terrain": {
      "default": false,
      "description": "Also count hours of direct sun above the terrain horizon (reads the DEM; ~10-60 s)",
      "title": "Terrain",
      "type": "boolean"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "date"
  ],
  "title": "sun_timesArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "date": {
      "title": "Date",
      "type": "string"
    },
    "time_zone": {
      "title": "Time Zone",
      "type": "string"
    },
    "sunrise": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sunrise"
    },
    "solar_noon": {
      "title": "Solar Noon",
      "type": "string"
    },
    "sunset": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Sunset"
    },
    "day_length_h": {
      "title": "Day Length H",
      "type": "number"
    },
    "solar_noon_elevation_deg": {
      "title": "Solar Noon Elevation Deg",
      "type": "number"
    },
    "terrain_hours": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Hours of direct sun above the terrain horizon",
      "title": "Terrain Hours"
    },
    "first_direct_sun": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "First Direct Sun"
    },
    "last_direct_sun": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Last Direct Sun"
    },
    "method": {
      "title": "Method",
      "type": "string"
    }
  },
  "required": [
    "date",
    "time_zone",
    "sunrise",
    "solar_noon",
    "sunset",
    "day_length_h",
    "solar_noon_elevation_deg",
    "method"
  ],
  "title": "SunTimesResult"
}
🟢terrain_horizon(latitude, longitude, observer_height_m, max_distance_m, step_deg)

The skyline the terrain makes around a point: for each azimuth, the elevation angle of the horizon and how far away the blocking terrain is (Copernicus 30 m DEM, Earth curvature and refraction). Use for solar-panel shading, valley sunlight, or what hills hide. ~10-60 s.

输入模式

{
  "type": "object",
  "properties": {
    "latitude": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Longitude",
      "type": "number"
    },
    "observer_height_m": {
      "default": 1.5,
      "description": "Eye or sensor height above ground",
      "maximum": 500,
      "minimum": 0,
      "title": "Observer Height M",
      "type": "number"
    },
    "max_distance_m": {
      "default": 20000,
      "maximum": 50000,
      "minimum": 500,
      "title": "Max Distance M",
      "type": "number"
    },
    "step_deg": {
      "default": 5,
      "description": "Azimuth spacing; must divide 360",
      "maximum": 10,
      "minimum": 0.5,
      "title": "Step Deg",
      "type": "number"
    }
  },
  "required": [
    "latitude",
    "longitude"
  ],
  "title": "terrain_horizonArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "latitude": {
      "title": "Latitude",
      "type": "number"
    },
    "longitude": {
      "title": "Longitude",
      "type": "number"
    },
    "ground_elevation_m": {
      "title": "Ground Elevation M",
      "type": "number"
    },
    "observer_height_m": {
      "title": "Observer Height M",
      "type": "number"
    },
    "max_distance_m": {
      "title": "Max Distance M",
      "type": "number"
    },
    "azimuths_deg": {
      "items": {
        "type": "number"
      },
      "title": "Azimuths Deg",
      "type": "array"
    },
    "horizon_elevation_deg": {
      "description": "Skyline elevation angle at each azimuth",
      "items": {
        "type": "number"
      },
      "title": "Horizon Elevation Deg",
      "type": "array"
    },
    "obstruction_distance_m": {
      "items": {
        "type": "number"
      },
      "title": "Obstruction Distance M",
      "type": "array"
    },
    "highest": {
      "additionalProperties": {
        "type": "number"
      },
      "title": "Highest",
      "type": "object"
    },
    "method": {
      "title": "Method",
      "type": "string"
    }
  },
  "required": [
    "latitude",
    "longitude",
    "ground_elevation_m",
    "observer_height_m",
    "max_distance_m",
    "azimuths_deg",
    "horizon_elevation_deg",
    "obstruction_distance_m",
    "highest",
    "method"
  ],
  "title": "HorizonResult"
}
🟢line_of_sight(lat_a, lon_a, lat_b, lon_b, height_a_m, ...)

Whether A and B can see each other over the terrain (Copernicus 30 m DEM, curvature and refraction), the minimum clearance and where it occurs; with frequency_mhz, the first Fresnel zone clearance of a radio link (60% clear is the usual rule).

输入模式

{
  "type": "object",
  "properties": {
    "lat_a": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Lat A",
      "type": "number"
    },
    "lon_a": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Lon A",
      "type": "number"
    },
    "lat_b": {
      "description": "Latitude in degrees (WGS84)",
      "maximum": 90,
      "minimum": -90,
      "title": "Lat B",
      "type": "number"
    },
    "lon_b": {
      "description": "Longitude in degrees (WGS84)",
      "maximum": 180,
      "minimum": -180,
      "title": "Lon B",
      "type": "number"
    },
    "height_a_m": {
      "default": 1.5,
      "description": "Height above ground at A (e.g. a mast)",
      "maximum": 1000,
      "minimum": 0,
      "title": "Height A M",
      "type": "number"
    },
    "height_b_m": {
      "default": 1.5,
      "description": "Height above ground at B",
      "maximum": 1000,
      "minimum": 0,
      "title": "Height B M",
      "type": "number"
    },
    "frequency_mhz": {
      "anyOf": [
        {
          "maximum": 300000,
          "minimum": 1,
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "For a radio link: report first Fresnel zone clearance",
      "title": "Frequency Mhz"
    }
  },
  "required": [
    "lat_a",
    "lon_a",
    "lat_b",
    "lon_b"
  ],
  "title": "line_of_sightArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "status": {
      "default": "ok",
      "enum": [
        "ok",
        "partial",
        "cannot_answer"
      ],
      "title": "Status",
      "type": "string"
    },
    "units": {
      "additionalProperties": {
        "type": "string"
      },
      "description": "Unit of each numeric field",
      "title": "Units",
      "type": "object"
    },
    "warnings": {
      "description": "Caveats to tell the user",
      "items": {
        "type": "string"
      },
      "title": "Warnings",
      "type": "array"
    },
    "provenance": {
      "description": "Source, licence, attribution, retrieval time and method",
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Provenance",
      "type": "array"
    },
    "visible": {
      "title": "Visible",
      "type": "boolean"
    },
    "distance_m": {
      "title": "Distance M",
      "type": "number"
    },
    "bearing_deg": {
      "title": "Bearing Deg",
      "type": "number"
    },
    "min_clearance_m": {
      "description": "Smallest gap between the sight line and the terrain; negative = blocked",
      "title": "Min Clearance M",
      "type": "number"
    },
    "min_clearance_at": {
      "additionalProperties": {
        "type": "number"
      },
      "title": "Min Clearance At",
      "type": "object"
    },
    "fresnel": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Fresnel"
    },
    "method": {
      "title": "Method",
      "type": "string"
    }
  },
  "required": [
    "visible",
    "distance_m",
    "bearing_deg",
    "min_clearance_m",
    "min_clearance_at",
    "method"
  ],
  "title": "LineOfSightResult"
}
🟢location_report(location, radius_m)

A dossier for a place: address, elevation, weather, and nearby amenities with exact distances, as a GeoJSON map layer listing every data source used. Takes ~10-30 s.

输入模式

{
  "type": "object",
  "properties": {
    "location": {
      "description": "Place to analyse",
      "maxLength": 500,
      "minLength": 1,
      "title": "Location",
      "type": "string"
    },
    "radius_m": {
      "default": 1000,
      "exclusiveMinimum": 0,
      "maximum": 10000,
      "title": "Radius M",
      "type": "number"
    }
  },
  "required": [
    "location"
  ],
  "title": "location_reportArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}
🟢select_site(within, near, avoid, facility_type, radius_m)

Rank candidate sites in an area by geodesic distance to amenities you want nearby and away from ones to avoid (OpenStreetMap data). Takes ~10-30 s.

输入模式

{
  "type": "object",
  "properties": {
    "within": {
      "description": "City or neighbourhood",
      "maxLength": 500,
      "minLength": 1,
      "title": "Within",
      "type": "string"
    },
    "near": {
      "default": [],
      "description": "Amenity types to be close to",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "title": "Near",
      "type": "array"
    },
    "avoid": {
      "default": [],
      "description": "Amenity types to stay away from",
      "items": {
        "type": "string"
      },
      "maxItems": 10,
      "title": "Avoid",
      "type": "array"
    },
    "facility_type": {
      "default": "restaurant",
      "maxLength": 100,
      "title": "Facility Type",
      "type": "string"
    },
    "radius_m": {
      "default": 3000,
      "exclusiveMinimum": 0,
      "maximum": 10000,
      "title": "Radius M",
      "type": "number"
    }
  },
  "required": [
    "within"
  ],
  "title": "select_siteArguments"
}

输出模式

{
  "type": "object",
  "properties": {
    "type": {
      "const": "FeatureCollection",
      "default": "FeatureCollection",
      "title": "Type",
      "type": "string"
    },
    "features": {
      "items": {
        "additionalProperties": true,
        "type": "object"
      },
      "title": "Features",
      "type": "array"
    },
    "bbox": {
      "anyOf": [
        {
          "items": {
            "type": "number"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Bbox"
    },
    "geospark": {
      "additionalProperties": true,
      "title": "Geospark",
      "type": "object"
    }
  },
  "required": [
    "features"
  ],
  "description": "An RFC 7946 GeoJSON FeatureCollection; `geospark` holds status, units, warnings, provenance.",
  "title": "FeatureCollection"
}

社区

评价此服务器

证据

最近观测

已验证未记录版本21 个工具