3

私はMapServerを約2時間使用していますが、開始するのは少し複雑なようです。だからここに私の質問
がありますmapserverに全世界の簡単な地図を表示させる方法はありますか?地図を動かして世界のさまざまな部分を見ることができますか?
(これまでに学んだことから、mapserv cgiを通過したマップが表示されるだけで、マップは静的で移動できません!)

編集:私はまだ全世界または国または何でものための簡単な地図を持つことができるかどうか疑問に思っています!すべての.Mapファイルを自分で作成する必要がありますか?

4

3 に答える 3

5

さて、それを調べて少し苦労した後、私はこれを行うためのいくつかのJSライブラリを見つけました。そのうちの1つはOpenLayersでした。あなたはちょうどあなたのhtmlページの始めにそれを参照する必要があります:

<script src="http://openlayers.org/api/OpenLayers.js"></script>

次に、次のようにMapServerデータをOpenLayersの初期化関数にバインドすることで、マップのズームと移動のオプションを設定できます。

Var map, layer;

function init(){
    map = new OpenLayers.Map( 'map' );
    layer = new OpenLayers.Layer.MapServer( "NAME",
       "http://localhost/cgi-bin/mapserv", {map: 'PATH_TO_.MAP'} );
    map.addLayer(layer);
    map.zoomToMaxExtent();
}

そして、たくさんのクールなチュートリアルがspatialhorizo​​ns.comにあります。
これが誰かに役立つことを願っています:)

于 2012-09-12T13:20:05.213 に答える
1

MapServerはまさにそれ、MAPサーバーです。現在、ホストされているマップを表示するためにcgiスクリプトを使用しているようです。MapServerのようなWMSプロバイダーは、WMSクライアントアプリケーションを使用して表示できるデータをホストします。そのようなアプリケーションはたくさんあります。より複雑なマップ操作を実行するには、MapServerに接続するためのより高度なクライアントアプリケーションが必要になります。

GoogleEarthをチェックしてください

またはNASAWorldWind

または、これはまだ使用していませんが、信頼性が最も低いとすれば、最も簡単なようです。

于 2012-09-10T20:24:38.410 に答える
1

最初のMapServerは、GISサーバー側のテクノロジーです。ズームイン/パンは、私の意見ではクライアント側の動作です。

ユーザーが1つのWebアプリケーションでパン/ズームする瞬間を見ると、実際に起こったことは、フロントエンドアプリケーションがパン/ズームイベントを取得し、mapserverを呼び出して、新しいマップをクライアント側に戻すことです。

したがって、リーフレット、GoogleマップAPI、Openlayersなどがクライアントの動きの検出を処理し、それを新しいgetmapリクエストに解析し、リクエストをmapserverに送信してレスポンスを取得している可能性が高くなります。

getリクエストを使用してMapServerから見たものは静的であり、静的であると思われます。動的な部分は、これらの静的な呼び出しを行うためにフロントエンドアプリケーションから動的な呼び出しを行うためにクライアント側で発生します。これは、クライアント側が動的に要求を送信し、応答からマップを更新するときにインタラクティブです。

于 2016-09-08T19:45:29.233 に答える