サーバーがユーザーから要求されたマップの一部のみを送信してパフォーマンスを向上させることを可能にする Google マップの背後にあるテクノロジの名前は何ですか?これを処理するライブラリはありますか?
13 に答える
このテクノロジは、一般的にマップ サーバーとして説明できます。マップ サーバーは、地球全体をカバーする事前に生成されたマップ タイル画像の大規模なセットから、要求された場所のマップを生成します。マップ サーバーは、この上に他のデータベースのデータをオーバーレイする場合があります。マップ ビューアー クライアントと地理データベースの組み合わせは、伝統的に地理情報システム(GIS) と呼ばれます。
誰でもGoogle Maps APIを使用して Google マップを埋め込む Web アプリケーションを作成できます。独自のマップ サーバーをデプロイする場合は、優れたオープン ソースのマップ サーバー ( MapServerと呼ばれる) もあります。
これは、OpenSource、 http://www.geoserver.org http://www.openlayers.org 、そして最後になりましたが http://geowebcache.org/で試してみることができるものです 。
数時間でmaps.googleと同様のことを行う最小限の環境をセットアップできるはずです。
EveryBlock.com の創設者の 1 人による、Web ベースのマップを生成するためのオープン ソース スタックの概要を次に示します。
独自の画像でGoogle Maps APIを使用することもできます。もちろん、マップである必要はありません。任意の画像にすることができます。これにより、ユーザーは Google マップのようにドラッグしてズームできるようになります。
Google マップ ページのリンクを見ると、次のようになります。
http://maps.google.com/maps?f=q&hl=en&sll=37.0625,-95.677068&sspn=53.345014,88.769531&ie=UTF8&ll=41.226264,-81.454246&spn=0.012507,0.021672&z=16
ページ上の JavaScript コードとサーバー コードは、リンク内の数値を使用して、表示しているマップの場所、ズーム レベル、および表示ウィンドウのサイズを決定し、ブラウザに送信するタイルを決定します。
マッピング データを提供できる商用ライブラリと、データを表示およびナビゲートするためのツールがあります。私が以前に使用したのはGeomicroです
基礎となる分野の総称はGISです。
一般的な好奇心から詳細を求めていますか、それともプロジェクトに特定の技術的ニーズがありますか?
Google は、これらの画像を販売するサービスから高解像度の衛星写真を取得し、この画像を保存してトリミングし、特定のポイントを見たときに必要な画像のみを提供します。つまり、ズームインおよびズームアウトすると、正方形のタイルが表示されることに気付きましたか? これらは、Google サーバーが提供しているものです。
また、Google ファイル システムと MapReduce を使用して負荷を処理する方法も考慮する必要があります。
質問に答えるのではなく、情報を広げてください。Microsoftには、Silverlight用の「ディープズーム」と呼ばれるものがあり、そのような効果を簡単に実行できます。
無料のコンポーザーで、写真(または1つの大きな写真)を並べて表示し、その他の設定を行います。次に、サブフォルダー内の多数の小さな写真(ズームレベルごとに1つのフォルダー)に分割します。そして、それらをスムーズに利用できるページを作成します。
それについての良いブログエントリ: http ://weblogs.asp.net/jgalloway/archive/2008/03/21/why-silverlight-2-deep-zoom-really-is-something-new.aspx
私は、非常に大きな歴史的な計画とスケッチのクロス ブラウザー ビューアーに取り組んでいます。http://www.cadmaps.com/gisblog/?p=7で見つけた最初のステップ (古いブログ) で、 画像のピラミッドを理解するのに役立ちます (それが Google マップで動作します)。
「タイル」を使用して、testImage_0001111100.png のような多くの画像を生成します。0001111100 は、つまり、5 番目のズーム レベルであり、画像ピラミッド内の x / y 位置です。ほとんどの計算 (隣接画像、画像スタックの上下) は、ajax 要求によって呼び出される php によってサーバー側で行われます。
私は現在、スムーズなシフトとズームの問題 (解決不可能ではない) に苦しんでいます。それが私の問題ですが、記事を読んでください。
Google マップと Google Earth では、XML の特別な変形である KML (「キーホール マークアップ言語」) として知られるものを使用します。最初の地理追跡衛星に敬意を表して名付けられました。このマークアップを使用して特定の緯度と経度の座標をジオコーディングすることにより、Google Earth の場所に関する情報を保存できます (そして、最終的には Google マップに反映されます)。高度を含めることもできます。
これは、(AJAX などを使用して) 個別にダウンロードされる正方形のチャンクで構成される巨大なイメージです。ある種の内部Googleライブラリ(GWTでもある可能性があります)によって行われていると思います。
このトピックの詳細: http://blog.grimpoteuthis.org/2005/02/mapping-google.html