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
TableJSON 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"], }, },