Quantcast

地理院地図で出典明示を選択した地図で更新したい

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

地理院地図で出典明示を選択した地図で更新したい

kouichi kita
みなさま

北海道の喜多です。

現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。

ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。

出典明示の値は、layers0.txtの"attribution"に値を入力しています。
その値をgsimaps.jsの18616行目「this.setAttribution( this._attribution);」で取得しています。

どこにどのようなコードを書けばいいのか教えていただければ助かります。

なにぶんJavascript初心者ですので、よろしくお願いします。


北海道 喜多耕一


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

Nobusuke Iwasaki-3
喜多さん、みなさん

いわさきです。
私もleaf letはよく分かってないのですが、FOSS4G
TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
https://jsfiddle.net/wata909/v5trzdbb/

地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。

地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
http://www.slideshare.net/wata909/foss4g-69748525

#みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗

2016年12月19日 21:23 喜多耕一 <[hidden email]>:

> みなさま
>
> 北海道の喜多です。
>
> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
> https://koukita.github.io/gsimaps/
>
> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>
> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
> その値をgsimaps.jsの18616行目「this.setAttribution( this._attribution);」で取得しています。
>
> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>
> なにぶんJavascript初心者ですので、よろしくお願いします。
>
>
> 北海道 喜多耕一
>
>
> _______________________________________________
> OSGeoJapan-discuss mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss



--
岩崎 亘典
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

Takashige
喜多さん

中川です。

本当は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 <[hidden email]>:

> 喜多さん、みなさん
>
> いわさきです。
> 私もleaf letはよく分かってないのですが、FOSS4G
> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
> https://jsfiddle.net/wata909/v5trzdbb/
>
> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
>
> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
> http://www.slideshare.net/wata909/foss4g-69748525
>
> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
>
> 2016年12月19日 21:23 喜多耕一 <[hidden email]>:
>> みなさま
>>
>> 北海道の喜多です。
>>
>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
>> https://koukita.github.io/gsimaps/
>>
>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>>
>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
>> その値をgsimaps.jsの18616行目「this.setAttribution( this._attribution);」で取得しています。
>>
>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>>
>> なにぶんJavascript初心者ですので、よろしくお願いします。
>>
>>
>> 北海道 喜多耕一
>>
>>
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>
>
> --
> 岩崎 亘典
> _______________________________________________
> OSGeoJapan-discuss mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

Takashige
中川です。
すみません、最後のコード間違いがありました。
正しくはこちらです。

マップオブジェクト.removeControl(マップオブジェクト.attributionControl);
マップオブジェクト.addControl(L.control.attribution({
 prefix:"",
    attribution:"あたらしい出典"
}));

出典明示の部品(attribitionControlといいます)をマップオブジェクトから削除して、またあらたに付け加えています。


2016年12月20日 17:07 Takashige Nakagawa <[hidden email]>:

> 喜多さん
>
> 中川です。
>
> 本当は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 <[hidden email]>:
>> 喜多さん、みなさん
>>
>> いわさきです。
>> 私もleaf letはよく分かってないのですが、FOSS4G
>> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
>> https://jsfiddle.net/wata909/v5trzdbb/
>>
>> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
>>
>> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
>> http://www.slideshare.net/wata909/foss4g-69748525
>>
>> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
>>
>> 2016年12月19日 21:23 喜多耕一 <[hidden email]>:
>>> みなさま
>>>
>>> 北海道の喜多です。
>>>
>>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
>>> https://koukita.github.io/gsimaps/
>>>
>>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
>>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>>>
>>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
>>> その値をgsimaps.jsの18616行目「this.setAttribution( this._attribution);」で取得しています。
>>>
>>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>>>
>>> なにぶんJavascript初心者ですので、よろしくお願いします。
>>>
>>>
>>> 北海道 喜多耕一
>>>
>>>
>>> _______________________________________________
>>> OSGeoJapan-discuss mailing list
>>> [hidden email]
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>
>>
>>
>> --
>> 岩崎 亘典
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

Nobusuke Iwasaki
中川さん、きたさん、皆さん

いわさきです。
フォロー、ありがとうございます。

というか、私のはleaf
let単体の話だったので、あ、使えないやーと投稿した後に思ったのですが、訂正するの忘れてました

私の投稿は、無視してもらうと助かります(汗

よろしくお願いします。


On 2016/12/20 17:15, Takashige Nakagawa wrote:

> 中川です。
> すみません、最後のコード間違いがありました。
> 正しくはこちらです。
>
> マップオブジェクト.removeControl(マップオブジェクト.attributionControl);
> マップオブジェクト.addControl(L.control.attribution({
>  prefix:"",
>     attribution:"あたらしい出典"
> }));
>
> 出典明示の部品(attribitionControlといいます)をマップオブジェクトから削除して、またあらたに付け加えています。
>
>
> 2016年12月20日 17:07 Takashige Nakagawa <[hidden email]>:
>> 喜多さん
>>
>> 中川です。
>>
>> 本当は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 <[hidden email]>:
>>> 喜多さん、みなさん
>>>
>>> いわさきです。
>>> 私もleaf letはよく分かってないのですが、FOSS4G
>>> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
>>> https://jsfiddle.net/wata909/v5trzdbb/
>>>
>>> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
>>>
>>> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
>>> http://www.slideshare.net/wata909/foss4g-69748525
>>>
>>> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
>>>
>>> 2016年12月19日 21:23 喜多耕一 <[hidden email]>:
>>>> みなさま
>>>>
>>>> 北海道の喜多です。
>>>>
>>>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
>>>> https://koukita.github.io/gsimaps/
>>>>
>>>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
>>>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>>>>
>>>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
>>>> その値をgsimaps.jsの18616行目「this.setAttribution( this._attribution);」で取得しています。
>>>>
>>>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>>>>
>>>> なにぶんJavascript初心者ですので、よろしくお願いします。
>>>>
>>>>
>>>> 北海道 喜多耕一
>>>>
>>>>
>>>> _______________________________________________
>>>> OSGeoJapan-discuss mailing list
>>>> [hidden email]
>>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>>
>>>
>>>
>>> --
>>> 岩崎 亘典
>>> _______________________________________________
>>> OSGeoJapan-discuss mailing list
>>> [hidden email]
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
> _______________________________________________
> OSGeoJapan-discuss mailing list
> [hidden email]
> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>

--
Nobusuke IWASAKI
岩崎 亘典
e-mail: [hidden email]
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

kouichi kita
In reply to this post by Takashige
中川さん みなさま

ありがとうございます。

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 <[hidden email]>:
中川です。
すみません、最後のコード間違いがありました。
正しくはこちらです。

マップオブジェクト.removeControl(マップオブジェクト.attributionControl);
マップオブジェクト.addControl(L.control.attribution({
 prefix:"",
    attribution:"あたらしい出典"
}));

出典明示の部品(attribitionControlといいます)をマップオブジェクトから削除して、またあらたに付け加えています。


2016年12月20日 17:07 Takashige Nakagawa <[hidden email]>:
> 喜多さん
>
> 中川です。
>
> 本当は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 <[hidden email]>:
>> 喜多さん、みなさん
>>
>> いわさきです。
>> 私もleaf letはよく分かってないのですが、FOSS4G
>> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
>> https://jsfiddle.net/wata909/v5trzdbb/
>>
>> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
>>
>> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
>> http://www.slideshare.net/wata909/foss4g-69748525
>>
>> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
>>
>> 2016年12月19日 21:23 喜多耕一 <[hidden email]>:
>>> みなさま
>>>
>>> 北海道の喜多です。
>>>
>>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
>>> https://koukita.github.io/gsimaps/
>>>
>>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
>>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>>>
>>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
>>> その値をgsimaps.jsの18616行目「this.setAttribution( this._attribution);」で取得しています。
>>>
>>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>>>
>>> なにぶんJavascript初心者ですので、よろしくお願いします。
>>>
>>>
>>> 北海道 喜多耕一
>>>
>>>
>>> _______________________________________________
>>> OSGeoJapan-discuss mailing list
>>> [hidden email]
>>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>>
>>
>>
>> --
>> 岩崎 亘典
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss


_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss

gsimapsjs.png (155K) Download Attachment
leaflet-srcjs.png (147K) Download Attachment
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

Takashige
喜多さん

中川です。removeControlの引数controlが指定されていませんね。ご推察のとおりここにattributionControlが渡っていれば解決するはずです。

自分で提案しておいて何なのですが、attributionControlをマップオブジェクトから削除して新しいattributionControlを追加するのはスマートな方法ではないなと思います。

一番よいのは、

1. マップオブジェクトの生成時にattributionControlのprefixオプションを空文字("")にする。
2. L.TileLayerのインスタンスを定義するときにattributionというオプションを渡す。

ことです。
そうすれば、attributionControlに関しては一切コーディングが不要(Leafletが勝手に表示を切り替えてくれます)になるのですが、そのように改修することは可能でしょうか?


2016年12月23日 0:55 喜多耕一 <[hidden email]>:

> 中川さん みなさま
>
> ありがとうございます。
>
> 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 <[hidden email]>:
>
>> 中川です。
>> すみません、最後のコード間違いがありました。
>> 正しくはこちらです。
>>
>> マップオブジェクト.removeControl(マップオブジェクト.attributionControl);
>> マップオブジェクト.addControl(L.control.attribution({
>>  prefix:"",
>>     attribution:"あたらしい出典"
>> }));
>>
>> 出典明示の部品(attribitionControlといいます)をマップオブジェクトから削除して、またあらたに付け加えています。
>>
>>
>> 2016年12月20日 17:07 Takashige Nakagawa <[hidden email]>:
>> > 喜多さん
>> >
>> > 中川です。
>> >
>> > 本当は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 <[hidden email]>:
>> >> 喜多さん、みなさん
>> >>
>> >> いわさきです。
>> >> 私もleaf letはよく分かってないのですが、FOSS4G
>> >> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
>> >> https://jsfiddle.net/wata909/v5trzdbb/
>> >>
>> >> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
>> >>
>> >> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
>> >> http://www.slideshare.net/wata909/foss4g-69748525
>> >>
>> >> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
>> >>
>> >> 2016年12月19日 21:23 喜多耕一 <[hidden email]>:
>> >>> みなさま
>> >>>
>> >>> 北海道の喜多です。
>> >>>
>> >>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
>> >>> https://koukita.github.io/gsimaps/
>> >>>
>> >>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
>> >>>
>> >>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>> >>>
>> >>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
>> >>> その値をgsimaps.jsの18616行目「this.setAttribution(
>> >>> this._attribution);」で取得しています。
>> >>>
>> >>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>> >>>
>> >>> なにぶんJavascript初心者ですので、よろしくお願いします。
>> >>>
>> >>>
>> >>> 北海道 喜多耕一
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> OSGeoJapan-discuss mailing list
>> >>> [hidden email]
>> >>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>> >>
>> >>
>> >>
>> >> --
>> >> 岩崎 亘典
>> >> _______________________________________________
>> >> OSGeoJapan-discuss mailing list
>> >> [hidden email]
>> >> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: 地理院地図で出典明示を選択した地図で更新したい

kouichi kita
中川さん、みなさん

喜多です。
返信ありがとうございます。
今回の用途だと、地理院地図のようにたくさんのレイヤを扱うことはないので、leafletのオーソドックスなmapオブジェクトの指定方法につくりかえてもいいかもしれません。

ちょっと試してしてみます。

また、わからなくなったら質問するかもしれませんが、そのときはよろしくお願いします。

北海道 喜多耕一


2016/12/26 11:10 "Takashige Nakagawa" <[hidden email]>:
喜多さん

中川です。removeControlの引数controlが指定されていませんね。ご推察のとおりここにattributionControlが渡っていれば解決するはずです。

自分で提案しておいて何なのですが、attributionControlをマップオブジェクトから削除して新しいattributionControlを追加するのはスマートな方法ではないなと思います。

一番よいのは、

1. マップオブジェクトの生成時にattributionControlのprefixオプションを空文字("")にする。
2. L.TileLayerのインスタンスを定義するときにattributionというオプションを渡す。

ことです。
そうすれば、attributionControlに関しては一切コーディングが不要(Leafletが勝手に表示を切り替えてくれます)になるのですが、そのように改修することは可能でしょうか?


2016年12月23日 0:55 喜多耕一 <[hidden email]>:
> 中川さん みなさま
>
> ありがとうございます。
>
> 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 <[hidden email]>:
>
>> 中川です。
>> すみません、最後のコード間違いがありました。
>> 正しくはこちらです。
>>
>> マップオブジェクト.removeControl(マップオブジェクト.attributionControl);
>> マップオブジェクト.addControl(L.control.attribution({
>>  prefix:"",
>>     attribution:"あたらしい出典"
>> }));
>>
>> 出典明示の部品(attribitionControlといいます)をマップオブジェクトから削除して、またあらたに付け加えています。
>>
>>
>> 2016年12月20日 17:07 Takashige Nakagawa <[hidden email]>:
>> > 喜多さん
>> >
>> > 中川です。
>> >
>> > 本当は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 <[hidden email]>:
>> >> 喜多さん、みなさん
>> >>
>> >> いわさきです。
>> >> 私もleaf letはよく分かってないのですが、FOSS4G
>> >> TokyoでMauricioさんのハンズオンをコピーして、作ったサンプルコードを下に公開してみます。
>> >> https://jsfiddle.net/wata909/v5trzdbb/
>> >>
>> >> 地理院タイルと室蘭市の空中写真を切り替えて、出典も変わるようになっているので、参考になるかと思います。
>> >>
>> >> 地理院地図パートナーネットワーク会議での資料が以下になりますので、ご参考下さい。
>> >> http://www.slideshare.net/wata909/foss4g-69748525
>> >>
>> >> #みなさん、もっとスマートな回答がありましたら、よろしくお願いします(汗
>> >>
>> >> 2016年12月19日 21:23 喜多耕一 <[hidden email]>:
>> >>> みなさま
>> >>>
>> >>> 北海道の喜多です。
>> >>>
>> >>> 現在、地理院地図をGithibでフォークして、OpenStreetMapを表示できるようにカスタマイズしています。
>> >>> https://koukita.github.io/gsimaps/
>> >>>
>> >>> ここで、ベースマップを選択したときに、右下の出典明示を更新したいと考えています。
>> >>>
>> >>> 出典明示の表示と、地図を変更したときの出典明示の値の取得まではできたのですが、この値を出典明示のコントロールに代入して、更新する方法がわかりません。
>> >>>
>> >>> 出典明示の値は、layers0.txtの"attribution"に値を入力しています。
>> >>> その値をgsimaps.jsの18616行目「this.setAttribution(
>> >>> this._attribution);」で取得しています。
>> >>>
>> >>> どこにどのようなコードを書けばいいのか教えていただければ助かります。
>> >>>
>> >>> なにぶんJavascript初心者ですので、よろしくお願いします。
>> >>>
>> >>>
>> >>> 北海道 喜多耕一
>> >>>
>> >>>
>> >>> _______________________________________________
>> >>> OSGeoJapan-discuss mailing list
>> >>> [hidden email]
>> >>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>> >>
>> >>
>> >>
>> >> --
>> >> 岩崎 亘典
>> >> _______________________________________________
>> >> OSGeoJapan-discuss mailing list
>> >> [hidden email]
>> >> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>> _______________________________________________
>> OSGeoJapan-discuss mailing list
>> [hidden email]
>> http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
>
>
_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss

_______________________________________________
OSGeoJapan-discuss mailing list
[hidden email]
http://lists.osgeo.org/mailman/listinfo/osgeojapan-discuss
Loading...