File size: 1,426 Bytes
d2a1db5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import asyncio
from src.mcp_weather_server.tools import geographic_tools

class LocationAgent:
    async def get_locations(self, state, district):
        print(f"Fetching villages for {district}, {state}...")
        villages_response = await geographic_tools.list_villages(state=state, district=district)
        if "error" in villages_response:
            print(f"Error: {villages_response['error']}")
            return None

        locations = []
        for village in villages_response["villages"]:
            print(f"Getting coordinates for {village}...")
            coordinates_response = await geographic_tools.reverse_geocode(location_name=village)
            if "error" in coordinates_response:
                print(f"Error: {coordinates_response['error']}")
                continue

            locations.append({
                "village": village,
                "latitude": coordinates_response["latitude"],
                "longitude": coordinates_response["longitude"]
            })
        return locations

async def main():
    agent = LocationAgent()
    locations = await agent.get_locations(state="bihar", district="patna")
    if locations:
        print("\n--- Locations ---")
        for loc in locations:
            print(f"Village: {loc['village']}, Lat: {loc['latitude']}, Lon: {loc['longitude']}")
        print("-----------------")

if __name__ == "__main__":
    asyncio.run(main())