calculate-distance
Measure the distance between two geographic points using longitude and latitude coordinates with optional geographic calculations, powered by PostGIS MCP Server.
Instructions
İki nokta arasındaki mesafeyi hesapla
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| point1_lat | Yes | Birinci nokta enlem | |
| point1_lon | Yes | Birinci nokta boylam | |
| point2_lat | Yes | İkinci nokta enlem | |
| point2_lon | Yes | İkinci nokta boylam | |
| use_geography | No | Coğrafi hesaplama kullan (varsayılan: true) |
Implementation Reference
- server.js:272-297 (handler)Handler for calculate-distance tool: validates input with Zod schema, computes distance using PostGIS ST_Distance on two points (with optional geography casting), returns distance in meters/km and input points.
case "calculate-distance": { const { point1_lon, point1_lat, point2_lon, point2_lat, use_geography } = CalculateDistanceSchema.parse(args); const castType = use_geography ? "::geography" : ""; const result = yield client.query(` SELECT ST_Distance( ST_SetSRID(ST_MakePoint($1, $2), 4326)${castType}, ST_SetSRID(ST_MakePoint($3, $4), 4326)${castType} ) as distance `, [point1_lon, point1_lat, point2_lon, point2_lat]); const distance = parseFloat(result.rows[0].distance); const response = { distance_meters: distance, distance_km: distance / 1000, point1: [point1_lon, point1_lat], point2: [point2_lon, point2_lat], calculation_type: use_geography ? "geography" : "geometry", }; return { content: [ { type: "text", text: JSON.stringify(response, null, 2), }, ], }; } - server.js:26-32 (schema)Zod schema for input validation of calculate-distance tool parameters.
const CalculateDistanceSchema = zod_1.z.object({ point1_lon: zod_1.z.number(), point1_lat: zod_1.z.number(), point2_lon: zod_1.z.number(), point2_lat: zod_1.z.number(), use_geography: zod_1.z.boolean().optional().default(true), }); - server.js:103-117 (registration)Tool registration in ListTools response, including name, description, and MCP inputSchema.
{ name: "calculate-distance", description: "İki nokta arasındaki mesafeyi hesapla", inputSchema: { type: "object", properties: { point1_lon: { type: "number", description: "Birinci nokta boylam" }, point1_lat: { type: "number", description: "Birinci nokta enlem" }, point2_lon: { type: "number", description: "İkinci nokta boylam" }, point2_lat: { type: "number", description: "İkinci nokta enlem" }, use_geography: { type: "boolean", description: "Coğrafi hesaplama kullan (varsayılan: true)" }, }, required: ["point1_lon", "point1_lat", "point2_lon", "point2_lat"], }, },