目次
マップオーバーレイの概要
1つ。ポリライン
二。カスタム オーバーレイ
ホームページ ウェブフロントエンド htmlチュートリアル Baidu Map は使いやすい - ポリライン、円などを追加します (html、js)_html/css_WEB-ITnose

Baidu Map は使いやすい - ポリライン、円などを追加します (html、js)_html/css_WEB-ITnose

Jun 24, 2016 am 11:39 AM

マップオーバーレイの概要

地図上に重ね合わされたり覆われたりするすべてのコンテンツを総称してマップオーバーレイと呼びます。注釈、ベクター グラフィック要素 (ポリライン、多角形、円を含む)、情報ウィンドウなど。オーバーレイには独自の地理座標があり、マップをドラッグまたはズームすると、それに応じて移動します。

マップ API は次のタイプのオーバーレイを提供します。

  • オーバーレイ: オーバーレイの抽象基本クラスはすべて、このクラスのメソッドを継承します。
  • マーカー: マーカーは地図上の点を表し、マーク アイコンはカスタマイズできます。
  • ラベル: マップ上のテキスト ラベルを表します。ラベルのテキスト コンテンツをカスタマイズできます。
  • ポリライン: 地図上のポリラインを表します。
  • ポリゴン: マップ上のポリゴンを表します。ポリゴンは閉じたポリラインに似ていますが、塗りつぶしの色を追加することもできます。
  • Circle: 地図上の円を表します。
  • 情報ウィンドウ: 情報ウィンドウは、よりリッチなテキストやマルチメディア情報を表示できる特別なオーバーレイでもあります。注: マップ上で同時に開くことができる情報ウィンドウは 1 つだけです。
  • map.addOverlay メソッドを使用してマップにオーバーレイを追加し、map.removeOverlay メソッドを使用してオーバーレイを削除できます。このメソッドは InfoWindow には適用されないことに注意してください。

    1つ。ポリライン

    ポリラインは地図上のポリラインのオーバーレイを表します。一連の点で構成され、これらの点を接続してポリラインを形成します。

    ポリラインを追加

    ポリラインは一連の直線セグメントとして地図上に描画されます。これらのセグメントの色、太さ、透明度はカスタマイズできます。色には 16 進数 (例: #ff0000) または色のキーワード (例: 赤) を指定できます。

    ポリライン描画にはブラウザがベクトル描画機能をサポートしている必要があります。 Internet Explorer では、地図は VML を使用してポリラインを描画しますが、他のブラウザでは SVG または Canvas を使用します

    次のコード スニペットは、2 つの点の間に幅 6 ピクセルの青いポリラインを作成します:

    var polyline = new BMap.Polyline([       new BMap.Point(116.399, 39.910),       new BMap.Point(116.405, 39.920)     ],     {strokeColor:"blue", strokeWeight:6, strokeOpacity:0.5}    );    map.addOverlay(polyline);
    ログイン後にコピー

    二。カスタム オーバーレイ

    API は、バージョン 1.1 以降、ユーザー定義のオーバーレイをサポートしています。

    カスタム オーバーレイを作成するには、次の操作を行う必要があります:

    1. カスタム オーバーレイのコンストラクターを定義し、コンストラクター パラメーターを通じていくつかの自由変数を渡します。

    2. カスタムオーバーレイオブジェクトのprototype属性をOverlayのインスタンスに設定し、オーバーレイ基本クラスを継承できるようにします。

    3. 初期化メソッドを実装します。map.addOverlay メソッドが呼び出されると、API はこのメソッドを呼び出します。

    4.drawメソッドを実装します。

    コンストラクターを定義して Overlay を継承する

    まず、カスタム オーバーレイのコンストラクターを定義する必要があります。次の例では、中心点と辺の長さの 2 つのパラメーターを含むコンストラクターを定義します。地図上の正方形のオーバーレイ。

    // 定义自定义覆盖物的构造函数  function SquareOverlay(center, length, color){     this._center = center;     this._length = length;     this._color = color;    }    // 继承API的BMap.Overlay    SquareOverlay.prototype = new BMap.Overlay();
    ログイン後にコピー

    Initializing a Custom overlay

    カスタムオーバーレイを追加するためにmap.addOverlayメソッドが呼び出されるとき、APIはオブジェクトのinitializeメソッドを呼び出してオーバーレイを初期化します。これは実行中に必要です。初期化プロセス オーバーレイに必要な DOM 要素を作成し、それらをマップの対応するコンテナーに追加します。

    マップには、オーバーレイ表示用のいくつかのコンテナが用意されています。これらのコンテナ要素は、map.getPanes メソッドを通じて取得できます。

    floatPane
  • markerMouseTarget
  • labelPane
  • markerPane
  • mapPane
  • これらのオブジェクト異なるカバー コンテナ要素間にはオーバーレイ関係があります。最上位のレイヤーは情報ウィンドウのコンテンツを表示するために使用されます。次に、注釈クリック領域レイヤー、情報ウィンドウ シャドウ レイヤー、テキスト注釈レイヤーを示します。アノテーションレイヤーとベクターグラフィックスレイヤー。
  • カスタムの正方形のカバーは任意のレイヤーに追加できます。ここでは、子ノードの 1 つとして markerPane に追加することを選択します。

    // 实现初始化方法  SquareOverlay.prototype.initialize = function(map){    // 保存map对象实例    this._map = map;         // 创建div元素,作为自定义覆盖物的容器    var div = document.createElement("div");     div.style.position = "absolute";         // 可以根据参数设置元素外观    div.style.width = this._length + "px";     div.style.height = this._length + "px";     div.style.background = this._color;      // 将div添加到覆盖物容器中    map.getPanes().markerPane.appendChild(div);      // 保存div实例    this._div = div;      // 需要将div元素作为方法的返回值,当调用该覆盖物的show、   // hide方法,或者对覆盖物进行移除时,API都将操作此元素。    return div;    }
    ログイン後にコピー

    Drawing Overlay

    これまでのところ、オーバーレイを地図に追加しただけで、正しい場所に配置していません。描画メソッドでオーバーレイの位置を設定する必要があります。マップの状態が変化するたびに (位置の移動、レベルの変更など)、API はオーバーレイの描画メソッドを呼び出してオーバーレイの位置を再計算します。 map.pointToOverlayPixel メソッドを使用して、地理座標をオーバーレイの必要なピクセル座標に変換できます。

    // 实现绘制方法   SquareOverlay.prototype.draw = function(){    // 根据地理坐标转换为像素坐标,并设置给容器     var position = this._map.pointToOverlayPixel(this._center);     this._div.style.left = position.x - this._length / 2 + "px";     this._div.style.top = position.y - this._length / 2 + "px";    }
    ログイン後にコピー

    Add Overlay

    これで、地図に追加する準備ができた完全なカスタム オーバーレイの作成が完了しました。

    れーい

    三。楕円を追加します

    // 初始化地图  var map = new BMap.Map("container");    var point = new BMap.Point(116.404, 39.915);    map.centerAndZoom(point, 15);    // 添加自定义覆盖物   var mySquare = new SquareOverlay(map.getCenter(), 100, "red");    map.addOverlay(mySquare);
    ログイン後にコピー

    効果:

    読んでいただきありがとうございます!

    基礎知識は http://www.cnblogs.com/0201zcr/p/4687220.html 百度地図事件

    http://www.cnblogs.com/0201zcr/p/4680461.html タグを追加

    http://www.cnblogs.com/0201zcr/p/4679444.html 地図サービスを追加

    このウェブサイトの声明
    この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

    ホットAIツール

    Undresser.AI Undress

    Undresser.AI Undress

    リアルなヌード写真を作成する AI 搭載アプリ

    AI Clothes Remover

    AI Clothes Remover

    写真から衣服を削除するオンライン AI ツール。

    Undress AI Tool

    Undress AI Tool

    脱衣画像を無料で

    Clothoff.io

    Clothoff.io

    AI衣類リムーバー

    Video Face Swap

    Video Face Swap

    完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

    ホットツール

    メモ帳++7.3.1

    メモ帳++7.3.1

    使いやすく無料のコードエディター

    SublimeText3 中国語版

    SublimeText3 中国語版

    中国語版、とても使いやすい

    ゼンドスタジオ 13.0.1

    ゼンドスタジオ 13.0.1

    強力な PHP 統合開発環境

    ドリームウィーバー CS6

    ドリームウィーバー CS6

    ビジュアル Web 開発ツール

    SublimeText3 Mac版

    SublimeText3 Mac版

    神レベルのコード編集ソフト(SublimeText3)

    HTMLは初心者のために簡単に学ぶことができますか? HTMLは初心者のために簡単に学ぶことができますか? Apr 07, 2025 am 12:11 AM

    HTMLは、簡単に学習しやすく、結果をすばやく見ることができるため、初心者に適しています。 1)HTMLの学習曲線はスムーズで簡単に開始できます。 2)基本タグをマスターして、Webページの作成を開始します。 3)柔軟性が高く、CSSおよびJavaScriptと組み合わせて使用​​できます。 4)豊富な学習リソースと最新のツールは、学習プロセスをサポートしています。

    HTML、CSS、およびJavaScriptの役割:コアの責任 HTML、CSS、およびJavaScriptの役割:コアの責任 Apr 08, 2025 pm 07:05 PM

    HTMLはWeb構造を定義し、CSSはスタイルとレイアウトを担当し、JavaScriptは動的な相互作用を提供します。 3人はWeb開発で職務を遂行し、共同でカラフルなWebサイトを構築します。

    HTMLでの開始タグの例は何ですか? HTMLでの開始タグの例は何ですか? Apr 06, 2025 am 12:04 AM

    Anexampleapalofastartingtaginhtmlis、それはaperginsaparagraph.startingtagsaresentionentientiontheyinitiateelements、definetheirtypes、およびarecrucialforurturingwebpagesandcontingthomedomを構築します。

    HTML、CSS、およびJavaScriptの理解:初心者向けガイド HTML、CSS、およびJavaScriptの理解:初心者向けガイド Apr 12, 2025 am 12:02 AM

    webdevelopmentReliesOnhtml、css、andjavascript:1)htmlStructuresContent、2)cssStylesit、および3)Javascriptaddsinteractivity、形成、

    WebアノテーションにY軸位置の適応レイアウトを実装する方法は? WebアノテーションにY軸位置の適応レイアウトを実装する方法は? Apr 04, 2025 pm 11:30 PM

    Y軸位置Webアノテーション機能の適応アルゴリズムこの記事では、単語文書と同様の注釈関数、特に注釈間の間隔を扱う方法を実装する方法を探ります...

    Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Giteeページ静的なWebサイトの展開に失敗しました:単一のファイル404エラーをトラブルシューティングと解決する方法 Apr 04, 2025 pm 11:54 PM

    GiteEpages静的Webサイトの展開が失敗しました:404エラーのトラブルシューティングと解像度Giteeを使用する

    CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? CSS3とJavaScriptを使用して、クリック後に周囲の写真を散乱および拡大する効果を実現する方法は? Apr 05, 2025 am 06:15 AM

    画像をクリックした後、散乱と周囲の画像を拡大する効果を実現するには、多くのWebデザインがインタラクティブな効果を実現する必要があります。特定の画像をクリックして周囲を作成してください...

    HTML、CSS、およびJavaScript:Web開発者に不可欠なツール HTML、CSS、およびJavaScript:Web開発者に不可欠なツール Apr 09, 2025 am 12:12 AM

    HTML、CSS、およびJavaScriptは、Web開発の3つの柱です。 1。HTMLは、Webページ構造を定義し、などなどのタグを使用します。2。CSSは、色、フォントサイズなどのセレクターと属性を使用してWebページスタイルを制御します。

    See all articles