生成したURLに問題があります。 Googleは、渡されたURLの文字数を2000文字に制限しており、それに固執する必要があります。
Googleのアプリケーションに渡す前に、URLのハッシュを生成して問題を解決しました。
1)ハッシュを格納するデータベーステーブルを作成します。列には、ハッシュ、パラメータ、タイムスタンプを使用できます。特定の時間より古いハッシュを削除して、テーブルを小さくして速く保つことで、コードを改善できます。
2)Googleに渡すハッシュを生成し、どこかに貼り付けるコード(my_google_map_helper/get_hash)を作成します。私はPHPを使用していますので、私のコードは次のとおりです。
// generate my hash
$hash = sha1(serialize($_GET));
// run an insert ignore into my hashes' table
// get the hash where the hash is $hash
// print my hash
3)指定されたハッシュ
if(isset($_GET['hash'])):
// select params from my hash table where hash = $_GET['hash']
// unserialize the saved params
// generate and return my KML file
endif;
4からデータベースに保存されたのparamsを取得するためのコード(get_kml)を作成します)ので、あなたのJavaScriptを変更しますGoogle機能を呼び出す前にハッシュを生成します:
$.get('my_google_map_helper/get_hash?' + MY_LONG_PARAMS_LIST, true)
, function(hash){
Polygons = new google.maps.KmlLayer(
{url:'http://my_url/get_kml?hash=' + hash , map:MAP}
);
}
);
楽しくお楽しみください!
はい「Request-URI Too Large」というエラーは長いURL(...)に問題があると思います –
この場合、私は何ができますか?これらのマーカーのすべてに関する情報を別のブラウザウィンドウに送信する必要があります。 – user198003
必要がない場合は場所の正確性の一部を削除するか、言い方によってはエンコードすることでリクエストを2000文字に制限してみてください(http://code.google.com/apis/に記載されているアルゴリズムなど)。 maps/documentation/utilities/polylinealgorithm.html) – jlivni