これを正確に行うための既存の標準はありませんが、XEP-0060 を拡張してこれを達成することができます。
私が開発したシステムでは、ノード内でポイント + 半径をサブスクライブできるようにしました。これは、次のようなサブスクリプション オプションによって実現されます。
<iq type='set'
from='francisco@denmark.lit/barracks'
to='pubsub.shakespeare.lit'
id='sub1'>
<pubsub xmlns='http://jabber.org/protocol/pubsub'>
<subscribe node='princely_musings' jid='francisco@denmark.lit'/>
<options>
<x xmlns='jabber:x:data' type='submit'>
<field var='FORM_TYPE' type='hidden'>
<value>http://jabber.org/protocol/pubsub#subscribe_options</value>
</field>
<field var='location#latitude'><value>52.231</value></field>
<field var='location#longitude'><value>-1.49</value></field>
<field var='location#radius'><value>10</value></field>
</x>
</options>
</pubsub>
</iq>
次に、pubsub サービスをカスタマイズして、サブスクリプション オプションの領域に応じて通知をフィルター処理しました。アイテムが場所を移動する場合にのみ、事態は非常に複雑になります。また、クライアントに以前に公開されたアイテムがそのサブスクリプション エリアの範囲外に出た場合は、リトラクトをエミュレートする必要があります。
残念ながら、公開されていないため (私の選択ではありません)、コードを提供することはできませんが、とにかく Prosody 用であり、ejabberd ソリューションを探しているようです。ただし、上記の原則は私にとってはうまく機能しているため、少なくともテンプレートソリューションとして提案します.