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())
|