2012-03-06 11 views
1

私は地理的に位置するオブジェクトを持つデータベースバックエンドを持ち、それぞれがkmlファイルに格納されたジオデータを持っているWebアプリケーションを開発しています。 google maps js api v3を使用してGoogleマップにオブジェクトを表示すると、次のようなシナリオがあります。 最初にjson呼び出しを行い、オブジェクトの配列を返します。各jsonオブジェクトには、ジオロケーション、つまりgmapマーカーかルート/ポリラインがあります。すべてのオブジェクトにはid、name、description、kml_urlなどのプロパティがあります。Kml_urlはkmlファイルのurlで、 "new google.maps.KmlLayer(...)"呼び出しによってマップ上にオブジェクトをプロットするために使用されます。作成されたすべてのkmlLayerはjsonオブジェクトにバインドされているため、jsによってそのオブジェクトを操作(表示/非表示など)できます。次に、すべてのkmlLayerが「google.maps.event.addListener(...)」を持つマウスクリックイベントリスナーを取得し、応答はkmlのjsonオブジェクト属性から動的に生成されます(id属性を取得し、別のjson呼び出しによってオブジェクトの詳細)。Google Maps API - 経路/ポリラインの表示、kmlLayerの代替方法

問題は、10 kmlのレイヤーが作成されたとすると、「NetworkError:414 Request-URI Too Large」というヒットになります。私はkmlネットワークリンクを使用してエラーを取り除くことができますが、AFAIKは、この場合、jsonオブジェクト(作成された有界のkmlLayer)を介してすべてのオブジェクトを操作する能力が緩やかです。

kml-sをまったく使用しないこの種のアプリケーションの代替手段は何ですか? オーバーレイを使用してすべてのルートとマーカーを描画すると、スケーラビリティの問題が発生することになります.15本のルート、50本のポリラインノード、15本のマーカーを描画すると相当なクライアントの時間。

は、 エミール

答えて

1

をありがとう、私は、KMLファイルを大量に処理するために(目印、ポリライン、ポリゴンを含む)多くの要素を持つ各GeoXML3で大きな成功を収めてきました。私はあなたがpolys branchを取得することをお勧めします。私の意見では、現在のところ、KMZファイルを扱うKMZ branchには大きな努力がなされていますが、これは生産の準備が整っていません。

私自身の編集では、Google API v3、Geoxml3を使用してサイドバーとレイヤーコントロールを表示するGithub projectを作成しました。また、afterParseフックのようないくつかのより高度な機能を使用し、私はそれを使用して追加triggers a parsed event on the Geoxml3 object

+0

感謝の男!私はGeoXML3をテストしているだけで、うまく動作します。私はいくつかの65のkmlファイルでテストしました。クライアント側の描画とレンダリングは瞬間的です。素晴らしい図書館! – egremyl

関連する問題