2

データベースに2.500タイルのようなテーブルがあるので、50x50です。フロントエンドのサイズはタイルあたり256pxx256pxであり、ズームレベルはありません。次に、他のデータ(建物、オブジェクト)を保持するテーブルがあり、このオブジェクトのすべてが特定のタイルに属している可能性があります。

フロントエンドでは、フルスクリーンのOpenLayersを使用して、画面全体に表示するタイルのセットを表示し、ドラッグと非同期を使用するだけです。OpenLayersが提供するタイルのリロード。可能であれば、世界地図の境界に達した場合でも、ドラッグを自動的に停止します。

また、画像(png)をレンダリングしたくありません-とにかくボディの背景が繰り返される草のテクスチャであり、に関連付けられているオブジェクトに応じてs<div>を含めたいので、タイルは空であるか、少なくとも透明である必要があります<img>モデルのタイル。

OpenLayersに精通している人なら誰でも、これがバックエンドのこのような単純なカスタムモデルで可能かどうか教えてもらえますか?この特定のケースに関するリソースは非常に役立ちます!

4

1 に答える 1

2

はい、これはOpenLayersで可能です。テーブル内の各タイルに、境界やコーナーの緯度/経度などの地理空間データが関連付けられている場合です。

OpenLayersは、ブラウザーのビューポート内に地理空間的にベースレイヤー(WMSとしてのタイル)と機能(WMS、WFS、またはベクターとしての建物とオブジェクト)を配置したいと考えています。秘訣は、OpenLayersを単一のズームレベル(解像度)に制限して、保存されているタイルの暗黙の解像度に一致させ、OpenLayers.MapオブジェクトのmaxExtentをすべてのタイルの範囲に一致するように設定して、各WMSタイルリクエストが生成されるようにすることです。 by OpenLayersには、タイルの1つに一致する境界ボックスがあります。

これは、私が持っている単純なベースレイヤーに対してOpenLayersによって生成されたWMSリクエストです(BBOXはメートル単位です)。リンクはファイアウォールの背後にあるため、機能しません。

http://kpnatsp8:9080/WmsServlet?SERVICE=USSTATES&TRANSPARENT=FALSE&FORMAT=image/png&LAYERS=USSTATES&SCALE=4000000.0000000005&SPHERICALMERCATOR=true&MAXEXTENT=-20037508.34,-20037508.34,20037508.34,20037508.34&REQUEST=GetMap&STYLES=&SRS=EPSG:900913&BBOX=-12812623.352549,3443367.869216,-11909512.729118,4346478.492647&WIDTH=640&HEIGHT=640

そのリクエストを受け取り、タイル画像を返すJavaサーブレットがあります。独自のサーブレットまたはサーバー側スクリプトを作成してリクエストを受け取り、データベース内のどのタイルがBBOXの境界に一致するかを判断し、そのタイルをイメージ応答として返します。

私がここで衒学者であるならば申し訳ありませんが、あなたはOpenLayersに不慣れに聞こえました。これが私が始める方法ですが、私はより良いアイデアを受け入れています。

于 2013-03-19T19:40:12.970 に答える