import asyncio
import websockets
import json
 
async def receive_positions():
    # 作成したAPI Keyをセット
    #api_key = "YOUR_API_KEY"
    api_key = "********"
 
    subscribe_message = {
        "APIKey": api_key,
        # 指定海域 [ [南緯, 西経], [北緯, 東経] ]
        "BoundingBoxes": [[[20, 120], [50, 150]]],
        "FilterMessageTypes": ["PositionReport"],
    }
 
    async with websockets.connect(
        "wss://stream.aisstream.io/v0/stream"
    ) as websocket:
        await websocket.send(json.dumps(subscribe_message))
 
        # ストリーミングされるAISメッセージをそのままコンソールに表示
        async for message in websocket:
            data = json.loads(message)
            print(data)
 
if __name__ == "__main__":
    asyncio.run(receive_positions())
