パノラマ表示
- ##1 概要 #2
- パノラマ制御##3
- パノラママップの使用方法 4
- パノラマ マップ コントロールの設定5
- パノラマの設定#6
- 屋内シーン マップの使用法 # 内に表示される poi タイプ##7 パノラマ地図データの取得
- ##8 パノラマ地図イベント
- 9 パノラマ マップに注釈を追加する
概要
Baidu パノラマ マップは、パノラマ ビューに沿って市内の指定された道路と指定された地点をカバーする 360 度のパノラマ ビューを提供します。より現実的で直感的です。
パノラマ地図 API は現在、百度地図 (map.baidu.com) と同じ都市をカバーしており、百度地図と同じ更新頻度を維持しています。
Baidu LBS オープン プラットフォームは、JavaScript API を通じてパノラマ機能を提供します。デフォルトでは、PC 側はレンダリングに Flash テクノロジーを使用し、モバイル ブラウザ側は JavaScript レンダリングを使用して、さまざまなブラウザでサービスを利用できるようにします。なお、今回のFlashレンダリングにおけるクロスドメインの問題により、PC上でパノラマ機能を利用する場合、パノラマサンプルをサーバーにデプロイして表示する必要があり、サンプルを直接ダブルクリックしてもパノラマを表示できません。
パノラマエフェクトは次のとおりです。
パノラマコントロール
通常の操作からパノラマに入ることができます。パノラマ コントロールを使用したマップ マップ、パノラマ コントロールを追加する方法は、ツールバーや他のコントロールを追加する方法と似ています。
コードは次のとおりです:
var stCtrl = new BMap.PanoramaControl(); stCtrl.setOffset(new BMap.Size(20, 20)); map.addControl(stCtrl);
パノラマ コントロールをクリックしてパノラマに入ります。パノラマの右上隅にある閉じるボタンをクリックすると、通常のマップに戻ります。
パノラマ マップの使用方法
パノラマ マップは、通常のマップと同様に div として Web ページに追加できます。以下に、パノラマを表示するためのコア コードとコードの説明を示します。
うわー手順:
1) パノラマ マップをコンテナとして「含む」div を作成します。
2) パノラマ マップを作成します。オブジェクト (パノラマ)、コンストラクター パラメーターは 1) で作成した div id と同じです;
3) 緯度と経度の座標を設定して、特定の場所のパノラマ マップを表示します。緯度と経度の指定に加えて、コード コメント部分など、現在表示されているパノラマ ビューを設定するパノラマの ID を指定することもできます。
4) この 2 つパラメーターの見出しとピッチは、パノラマの視点を設定するために使用されます。見出しはカメラの水平方向 (「頭を振る」) 角度を指します。真北は 0、真東は 90、真南は 180、真西です。は 270、ピッチはカメラの垂直方向 (「うなずき」) を指します。
パノラママップコントロールの設定
PanoramaクラスのPanoramaOptionパラメータとsetOptionsメソッドを設定することで、ナビゲーションコントロール、道路誘導コントロール、パノラママップ内のフォトアルバムコントロールなど。
非表示のナビゲーション コントロールを設定するためのコア コードは次のとおりです:
<div id="panorama" style="width:100%;height:100%"></div> //1 <script type="text/javascript"> window.onload = function(){ var panorama = new BMap.Panorama('panorama'); //2 panorama.setPosition(new BMap.Point(120.320032, 31.589666)); //3 // panorama.setId('0100010000130501122416015Z1'); panorama.setPov({heading: -40, pitch: 6}); //4 } </script>
コア コード道路誘導コントロールを設定するには次のようにします。
//通过PanoramaOption指定 var panorama = new BMap.Panorama('panorama', {navigationControl: false}); //默认为显示导航控件,默认值为true //通过setOptions方法指定 Panorama.setOptions({navigationControl:false});
上記の方法では、パノラマ アルバム コントロールを表示するかどうかも設定できます。
//通过PanoramaOption指定 var panorama = new BMap.Panorama('panorama', {linksControl:false}); //默认为显示道路指引控件,默认值为true //通过setOptions方法指定 Panorama.setOptions({linksControl:false});
に表示されるポイ タイプを設定します。 panorama
Panorama の setPanoramaPOIType メソッドでは、表示する POI タイプを指定できます。現在サポートされているタイプには、ホテル、レストラン、映画館、バス停、屋内シーンなどが含まれます。設定タイプが BMAP_PANORAMA_POI_NONE の場合、すべてのポイが非表示になることを意味します。
レストラン タイプのコア コードのみが、指定されたパノラマ ビュー内に表示されます:
panorama.setOptions({ albumsControl: true, albumsControlOptions:{anchor:BMAP_ANCHOR_TOP_LEFT, //设置相册显示位置 offset:new BMap.Size(10,10),//设置相册距离左上角偏移量 maxWidth:100%,//设置相册控件的最大显示宽度 imageHeight:80//设置相册控件的高度 } });
##屋内シーン マップの使用法
Baidu Map API は、道路沿いのパノラマ ビューのサポートに加えて、景勝地やホテルの屋内ビューもサポートしています。屋内シーンと通常のパノラマの違いは次のとおりです: 1) 通常のパノラマは、緯度と経度と ID の 2 つの方法でパノラマの設定をサポートしますが、屋内シーンは ID を通じてのみ設定できます。2 ) 通常のパノラマ PanoramaOption クラスは屋内シーンの切り替えコントロールをサポートしていませんが、屋内シーンはサポートしています。 屋内シーンのインテリア切り替えコントロールを設定するためのコア コード:panorama.setPanoramaPOIType(BMAP_PANORAMA_POI_CATERING); //餐饮 panorama.setPov({pitch: 6, heading: 138});
パノラマ マップ データの取得
特定の場所および特定の視点でのパノラマの表示に加えて、JavaScript API はこのタイプの情報の取得もサポートしています, 以下のようにパノラマIDと緯度経度座標を取得する例を示します。
var panorama = new BMap.Panorama('panorama', { 'disableIndoorSceneSwitchControl': true //默认为显示室内景场景点切换控件,默认值为false }); panorama.setOptions({ 'disableIndoorSceneSwitchControl': true });
1) PanoramaService クラスは、パノラマ データ情報クラスのインスタンスを作成するために使用され、getPanoramaById (取得された) を提供します。 pid パノラマ データによる) getPanoramaByPOIId (POIId に基づいてパノラマ データを取得) getPanoramaByLocation (座標に基づいてここに最も近いパノラマ データを返す) パノラマ データを取得するには 3 つのメソッドが使用されます。2) getPanoramaByLocation メソッドは、座標に応じて最も近いパノラマ データを返すことができますが、データが取得できない場合、コールバック関数のパラメーターは null になります。
パノラマ マップ イベント
JavaScript API は、position_changed (位置変更イベント) links_changed (隣接道路パノラマ変更イベント)、pov_changed (視点変更イベント)、zoom_changed (ズーム レベル) を提供します変更イベント) およびその他のイベントを使用して、パノラマ ステータスの変化を監視します。 使用方法は次のとおりです:var panorama = new BMap.Panorama('panorama', { 'disableIndoorSceneSwitchControl': true //默认为显示室内景场景点切换控件,默认值为false }); panorama.setOptions({ 'disableIndoorSceneSwitchControl': true });
##パノラマ マップに注釈を追加します
PanoramaLabel は、パノラマラベルの位置(位置)と三次元の高さ(高度)の属性を設定できるパノラマラベリングクラスです。三次元の高さは「近くが大きく、遠くが小さい」という特徴がありますつまり、パノラマ ラベル ポイントがパノラマの中心点から遠いほど、近いほど、同じ高さの値が高く表示されます。次の図に示すように、マーカー 1 とマーカー 2 の高さは 2 メートルに設定されていますただし、マーカー 1 はマーカー 2 よりも中心点に近いため、マーカー 1 が上に表示されます。
PanoramaLabel ラベルは、Panorama クラスの addOverlay メソッドを通じてパノラマに追加できます。使用法は次のとおりです:
var panorama = new BMap.Panorama('panorama'); panorama.setPosition(new BMap.Point(120.320032, 31.589666)); panorama.addEventListener('position_changed', function(e){ //注册全景位置改变事件 var pos = this.getPosition(); console.log(e.type); });
パノラマ注釈の追加に加えて、パノラマ注釈のクリック、マウスオーバー、マウスアウトをトリガーすることもできます。)、削除イベント。クリック イベントの使用方法は次のとおりです:
var panorama = new BMap.Panorama('panorama'); panorama.setPosition(new BMap.Point(116.403925,39.913903));//坐标点在天安门 var labelPosition = new BMap.Point(116.403925,39.913903); var labelOptions = { position: labelPosition, altitude:5 };//设置标注点的经纬度位置和高度 var label = new BMap.PanoramaLabel('自定义标注-天安门广场', labelOptions);//创建全景标注对象 panorama.addOverlay(label);//在全景地图里添加该标注 panorama.setPov(label.getPov()); //修改点的视角,朝向该label