1

地図上に表示するポリゴンを多数取得する JSP アプリケーションを開発しています。

問題を説明する前に、アプリケーションがどのように機能するかを説明してみます。

私のクライアントは、Google マップで彼の領土の内部分割を確認する必要があります (領土は一連の都市であり、多対多の関連付けです)。テリトリーと都市の関係は、アプリケーション メニューからファイルをロードすることでいつでも変更できます。現在、システムには 35 の地域と約 10000 の地域と都市の協会があります。

Fusion Tables に都市の形をしたポリゴンがありますが、形を取得しようとすると、次のエラーが発生します。

1 つのテリトリーのポリゴンを読み込むコード:

layer = new google.maps.FusionTablesLayer({
    query:{
        select: 'geometry',
        from: {MYKEY},
        where: "NAME_CITY IN ("+listOfCities+")"
    }
});

エラー:

リソースの読み込みに失敗しました: サーバーは 414 (Request-URI Too Large) のステータスで応答しました

私は長い間、これらの領域をロードする方法を探していました.JavaからKMLファイルを読み込んで、各都市の座標のセットを送信しようとしました.ブラウザがフリーズして動かなくなりました。そのため、Fusion Tables が最適なアプローチのように思われました。

listOfCities 変数のサイズ (一部の地域には約 500 の都市が関連付けられている) のために、POST メソッドを使用してデータを要求するように人々が言っ​​ている投稿をいくつか見つけましたが、Google マップを使用してそれを行う方法については決して述べていません。 API。

どうやってやるの?この問題を解決する別のアプローチを持っている人はいますか?

ありがとう

4

1 に答える 1

2

何らかの方法でクエリを単純化する必要があります。POST はオプションではありません。クエリに使用されるメソッドを変更する方法はありません。

しかし、ここから始めることができます 。テリトリーと都市の関係は、アプリケーション メニューからファイルをロードすることでいつでも変更できます。

サーバーで都市をフィルタリングして都市を照会する代わりに、geocodezip で提案されているように、「関係」を格納する別の列をテーブルに追加することができます。

これは、「ファイル」がアップロードされたときに自動的に行われる場合があります(ここでは POST を使用できます)。

新しい where 句は、次のようにシンプルで短くなります。territory=35

于 2013-01-04T19:44:19.603 に答える