[OSGeoJapan-discuss] 地理院地図で出典明示を選択した地図で更新したい

喜多耕一 kou35tochas @ gmail.com
2016年 12月 22日 (木) 07:55:00 PST


中川さん みなさま

ありがとうございます。

GSI.GLOBALS.map.removeControl(GSI.GLOBALS.map.attributionControl);
GSI.GLOBALS.map.addControl(new L.control.attribution({
        position: 'bottomright',
        prefix:this._attribution
 }));

としても、removeControlの次の処理の、
leaflet-src.jsの7990行目でエラーが発生します。

L.Map.include({
addControl: function (control) {
control.addTo(this);
return this;
},

removeControl: function (control) {
control.removeFrom(this); ←ここでエラー
return this;
},

多分、attributionControlの指定方法が間違っていると思うのですが・・・。

添付ファイルにエラー発生時のデバッグ画面を添付します。

attributionControlを追加することはできますが、地図を切り替えるたびに、コントロールが増えていきます。
申し訳ありませんが、助言をよろしくお願いします。

北海道 喜多耕一

2016年12月20日 17:15 Takashige Nakagawa <takashige.nakagawa @ gmail.com>:

> 中川です。
> すみません、最後のコード間違いがありました。
> 正しくはこちらです。
>
> マップオブジェクト.removeControl(マップオブジェクト.attributionControl);
> マップオブジェクト.addControl(L.control.attribution({
> prefix:"",
>     attribution:"あたらしい出典"
> }));
>
> 出典明示の部品(attribitionControlといいます)をマップオブジェクトから削除して、またあらたに付け加えています。
>
>
> 2016年12月20日 17:07 Takashige Nakagawa <takashige.nakagawa @ gmail.com>:
> > 喜多さん
> >
> > 中川です。
> >
> > 本当はGSI.BaseLayerをnewするときに、下記のようにオプションで出典を指定できれば良いのですが(18532行目あたり)、
> >
> > options.attribution = "あたらしい出典";
> >
> > コードがそうなっていないので、
> >
> > ちょっと試しに、GSI.BaseLayerの最後に
> >
> > onAdd:function(map){
> >      L.TileLayer.prototype.onAdd.call(this,map);
> >      this._map.attributionControl.setPrefix("");
> >      this._map.attributionControl.addAttribution(this.
> baseLayerList[this.activeIndex].attribution);
> > }
> >
> > をいれてみましたが、それだと「情報リスト>ベースマップ」でベースレイヤを変更した時に出典明示が更新されないんですね。
> >
> >
> > コードをちゃんと見たわけではないので、ずばりの回答はできないのですが、更新したいタイミングで、下記を行えばできます。
> >
> > マップオブジェクト.attributionControl.setPrefix("");
> > マップオブジェクト.attributionControl.addAttribution("前の出典");
> > マップオブジェクト.attributionControl.addAttribution("あたらしい出典");
> >
> >
> > あるいは、前の出典を消すのが面倒ならば、下記でもできます。
> >
> > マップオブジェクト.removeControl(this._map.attributionControl);
> > マップオブジェクト.addControl(L.control.attribution({
> > prefix:"",
> >     attribution:"あたらしい出典"
> > }));
> >
> > 参考になれば幸いです。
> >
> > 2016年12月20日 9:37 Nobusuke Iwasaki <wata909 @ gmail.com>:
> >> 喜多さん、みなさん
> >>
> >> いわさきです。
> >> 私もleaf letはよく分かってないのですが、FOSS4G
> >> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
> >> https://jsfiddle.net/wata909/v5trzdbb/
> >>
> >> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
> >>
> >> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
> >> http://www.slideshare.net/wata909/foss4g-69748525
> >>
> >> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
> >>
> >> 2016年12月19日 21:23 喜多耕一 <kou35tochas @ gmail.com>:
> >>> みなさま
> >>>
> >>> 北海道の喜多です。
> >>>
> >>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
> >>> https://koukita.github.io/gsimaps/
> >>>
> >>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
> >>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、
> 更新する方法がわかりません。
> >>>
> >>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
> >>> その値をgsimaps.jsの18616行目「this.setAttribution(
> this._attribution);」で取得しています。
> >>>
> >>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
> >>>
> >>> なにぶんJavascript初心者ですので、よろしくお願いします。
> >>>
> >>>
> >>> 北海道 喜多耕一
> >>>
> >>>
> >>> _______________________________________________
> >>> OSGeoJapan-discuss mailing list
> >>> OSGeoJapan-discuss @ lists.osgeo.org
> >>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> >>
> >>
> >>
> >> --
> >> 岩崎 亘典
> >> _______________________________________________
> >> OSGeoJapan-discuss mailing list
> >> OSGeoJapan-discuss @ lists.osgeo.org
> >> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> _______________________________________________
> OSGeoJapan-discuss mailing list
> OSGeoJapan-discuss @ lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20161223/af168966/attachment-0001.html>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: gsimapsjs.png
型:         image/png
サイズ:     116228 バイト
説明:       無し
URL:        <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20161223/af168966/attachment-0002.png>
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: leaflet-srcjs.png
型:         image/png
サイズ:     110133 バイト
説明:       無し
URL:        <http://lists.osgeo.org/pipermail/osgeojapan-discuss/attachments/20161223/af168966/attachment-0003.png>


OSGeoJapan-discuss メーリングリストの案内