Google App Engineにマップタイルエンジンを実装しようとしています。Google App Engineで効率的なマップタイルエンジンを実装するにはどうすればよいですか?
マップデータは、データベース、データストア(ビッグテーブル)に格納されます。問題は、データベース内の同じ行セットに基づいて20のタイルを描画するために、20回のリクエストがほぼ同時に発生する可能性があることです。
20個のリクエストが入ってくるので、リクエストごとにデータベースから読み込むコードを書けば、データベースから同じ20個の読み込みが行われます。それぞれのタイルイメージ出力ごとに読み込まれます。各読取りは同じ問合せであるため、同じ問合せを20回実行するのは意味がありません。実際、これは非常に非効率的です。
これを行うには誰でも良い方法を提案できますか?
私がmemcacheを使用する場合、データをmemcacheに入れる必要がありますが、同時にデータの要求が20回ある場合、nieveの実装を行うと20プロセスがmemcacheに書き込みを行い、彼らはすべて同時に並行しているからです。
私はGoogle App EngineのGoogle Goバージョン1ベータ版でプログラミングしています。より完全なので、ここではPythonのドキュメントを参照しています。
参考文献:私は明確にするためhttp://leaflet.cloudmade.com/
マップタイルを示すために使用しています
Googleのデータストアhttp://code.google.com/appengine/docs/python/datastore/overview.html
リーフレットJS。
データベース内のデータからタイルイメージを生成します。つまり、データのデータベースにクエリします(これはタイルイメージではありません)。次に、データをイメージに描画し、イメージをJPEGとしてレンダリングします。 GAEは、サーバ側http://blog.golang.org/2011/12/from-zero-to-go-launching-on-google.html
私はデータベースのデータからタイルイメージを生成します。つまり、データをデータベースに照会して、データをイメージに描画し、イメージをJPEGとしてレンダリングします。 GAEはサーバー側で画像を描画するのに効率的ですhttp://blog.golang.org/2011/12/from-zero-to-go-launching-on-google.html – Phil
@Phil私はPNGがあなたに地図画像データのよりよい結果(品質/圧縮)。 –
@ Philまた、イメージクライアント側をダウンロードする方が良いでしょうか?これは、すべての地図サービス(Google/Bing/Quest)がそれをやっているところです。 –