ラベル Google の投稿を表示しています。 すべての投稿を表示
ラベル Google の投稿を表示しています。 すべての投稿を表示

2025/05/28

【Python】foliumでGoogleMapsや航空写真を表示する方法

過去に似たようなfoliumの使い方の記事を何本か書いていますが、今回はGoogle MapsなどGoolge系を中心に背景地図として重ねる方法をまとめておきます。

 
 ⚠️ 注意
本記事では、Google Maps系の地図タイルを foliumに読み込んで表示する方法を紹介していますが、これらのタイルURLはGoogleが公式に公開しているものではありません。今回の方法はあくまで個人の検証・学習・備忘録用として記録しており、自己責任での利用を前提としています。公開用途や商用利用には適さない点をご注意ください


Google Mapsの背景地図タイルURL一覧

表示モード タイルURL(tiles= に指定) 説明
Google Maps https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z} 通常の地図表示
Google Satellite https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z} 航空写真
Google Hybrid https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z} 航空写真 + ラベル
Google Terrain https://mt1.google.com/vt/lyrs=p&x={x}&y={y}&z={z} 地形図(陰影・地勢)
Google Maps系のタイルは通常、ズームレベル 0〜18 に対応しているみたいです。


サンプルコード



foliumで使う場合の操作制限について

foliumでGoogle Maps系のタイルを表示する場合、Google Maps公式のような細かい操作はできません。
  • 背景地図は静的なタイル画像を重ねているだけなので、マップ上のオブジェクトをクリックして情報取得やルート検索はできません。
  • ズームやパンはfolium(Leaflet)が対応しますが、Google Maps特有のストリートビューや動的情報の表示はありません。
  • マーカーやポップアップはfoliumで自由に配置できますが、Google Mapsのような豊富な連携機能はありません。

これらの点を理解したうえで、用途に応じて使い分けるのがおすすめです。
Google Mapsのようなインタラクティブな地図体験を期待する場合は、Google Maps APIなどの公式ライブラリを利用しましょう。


関連記事

2020/08/17

【Python】Google People API でGoogle連絡先と住所録CSVを同期する

前々回前回とサラミした記事になってしましましたが、Google People APIを使って住所録のcsvをGoogle連絡先に同期するプログラムが完成したので公開します。
これまで作成したコードを利用していますので、仕様が分からない時は、これまでの記事を参照下さい。

sample.csvについて

Fake Name Generator疑似個人情報データ生成サービスで作成した偽個人情報です。
たまたま実在する人物になっている可能性は低いと思いますが、利用の際はご留意ください。
Google CSV形式に近づけてありますが、微妙に間違っているかもしれません。create_contact_bodyの関数を弄れば、好きなCSV形式に対応できます。

同期方法について

userDefinedに修正日と住所録内のidを設定することで、更新差分を判定しています。

問題点:credentials.jsonの流用

credentials.jsonがQuickstart.pyのものを流用したプログラムとなっているので、アプリケーション名などが正しく設定できていません。今後、設定の仕方が分かれば更新したいと思います。
とりあえず動かす分には現状で問題ないはず...

【関連記事】

2020/06/20

【Python】Google People API でGoogle連絡先の追加/削除する

前回に引き続き、Google People APIを触ってみます。
会社のデータベースや年賀状作成ソフトから出力した住所録のcsvをGoogle連絡先に同期させることを目標として設定しました。
本記事では、csvのファイルを読み込んで、Google連絡先に追加する部分を作成したので公開します。

住所録のcsvファイルの構成は、色々あるかと思いますが、Google連絡先からエクスポートされる際にも使用されているGoogle CSV 形式に事前に合わせてあると仮定して、プログラムを作成します。

Google CSV 形式について

Google CSV形式は恐らく以下のような構成になっているかと思います。

各列名各列の説明
Name氏名
Given Name
Additional Nameミドルネームなど
Family Name
Yomi Name氏名のよみがな
Given Name Yomi名のよみがな
Additional Name Yomiミドルネームなどのよみがな
Family Name Yomi姓のよみがな
Name Prefix敬称(名前の前);Mr.やMrs.、Dr.など
Name Suffix敬称(名前の後);様、先生など
Initialsイニシャル
Nicknameニックネーム
Short Nameショートネーム
Maiden Name旧姓
Birthday誕生日
Gender性別
Location
Billing Information請求情報
Directory Server
Mileage
Occupation職業
Hobby趣味
Sensitivity
Priority
Subject
Notesメモ
Language言語
Photo
Group Membershipグループ
E-mail 1 - TypeE-mail 1の種類;Home、Work、Mobileなど
E-mail 1 - ValueE-mail 1のアドレス
E-mail 2 - TypeE-mail 2の種類;Home、Work、Mobileなど
E-mail 2 - ValueE-mail 2のアドレス
Phone 1 - TypePhone 1の種類;Home、Work、Mobileなど
Phone 1 - ValuePhone 1の電話番号
Phone 2 - TypePhone 2の種類;Home、Work、Mobileなど
Phone 2 - ValuePhone 2の電話番号
Phone 3 - TypePhone 3の種類;Home、Work、Mobileなど
Phone 3 - ValuePhone 3の電話番号
Address 1 - TypeAddress 1の種類;Home、Workなど
Address 1 - FormattedAddress 1の住所
Address 1 - StreetAddress 1の番地・区画
Address 1 - CityAddress 1の市町村
Address 1 - PO BoxAddress 1の私書箱
Address 1 - RegionAddress 1の都道府県
Address 1 - Postal CodeAddress 1の郵便番号
Address 1 - CountryAddress 1の国
Address 1 - Extended AddressAddress 1のアパートの部屋番号など
Address 2 - TypeAddress 2の種類;Home、Workなど
Address 2 - FormattedAddress 2の住所
Address 2 - StreetAddress 2の番地・区画
Address 2 - CityAddress 2の市町村
Address 2 - PO BoxAddress 2の私書箱
Address 2 - RegionAddress 2の都道府県
Address 2 - Postal CodeAddress 2の郵便番号
Address 2 - CountryAddress 2の国
Address 2 - Extended AddressAddress 2のアパートの部屋番号など
Organization 1 - TypeOrganization 1の種類;会社、学校など
Organization 1 - NameOrganization 1の名前
Organization 1 - Yomi NameOrganization 1のよみがな
Organization 1 - TitleOrganization 1での役職
Organization 1 - DepartmentOrganization 1での部署
Organization 1 - Symbol
Organization 1 - LocationOrganization 1の場所
Organization 1 - Job DescriptionOrganization 1での仕事内容
Custom Field 1 - Typeカスタムフィールド(自由に設定可能な領域)
Custom Field 1 - Valueカスタムフィールド(自由に設定可能な領域)
参考:http://googleapis.github.io/google-api-python-client/docs/dyn/people_v1.people.html#createContact

と以上の様に多くの情報が、Google連絡先には登録可能です。
人によっては列の項目がこれよりも多かったりするかも知れませんが、上記の場合のcsvを、インポートするプログラムを組みます。
上記のカスタムフィールドは同期させる時に必要な「修正日」や「住所録内でのID」などを想定しています。
また、CP932やShift_JISで保存されたcsvを想定していません。事前に他のプログラムで処理してあるものとします。

問題点:削除用のバッチ処理コードが実装されていない


一時的に削除用のグループを作成して、そこに削除したい全てのメンバーを移動し、一時的なグループごと削除するという方法が掲示されていました。

しかし、contactGroups.members.modifyでは、連絡先全体(people/me)を指定することができない様なので、結局は、逐次のグループ移動処理が必要になると思います。

前回作成したコードを一部流用して作成したのが以下のものです。

作成したコード

必要なファイル:credentials.json、contacts.csv

以下のページにAPIの仕様がまとまっているので開発の上で役に立つかと思います。

続き

2020/06/19

【Python】Google People API でGoogle連絡先を取得する


Google連絡先の取得、追加、削除などを行うにはGoogle Contacts APIGoolge People APIが利用できます。
しかし、Contacts APIは、People APIに置き換わっていくそうなので、これからGoogle連絡先と連携するアプリケーションを作成する際はPeople APIの方を用いると良いかも知れません。
個人的な経験ですが、G SuiteのGoogle連絡先を更新する時Contacts APIでは上手く行きませんでしたが、People APIでは更新できました。ですが、今のところ、People APIではContacts APIの機能を全て互換出来ている訳ではない様です…

PythonからPeople APIを使う

Google People APIをPythonから使うためのサンプルコードとしては、公式ドキュメントに記載してあるPython Quickstartがあります。

本サイトでは、会社のデータベースや年賀状作成ソフトから出力した住所録のcsvをGoogle連絡先に同期させることを目標として、プログラムを作成しようと思います。
本記事では、Python Quickstart内のquickstart.pyを元にGoogle連絡先のデータを取得・表示するコードを作成したものを公開します。

People APIの有効化と必要なライブラリのインストール

まずは、Python Quickstartの内容に従って、サンプルコードquickstart.pyが動く状態にします。
下記のコードでは、ここでダウンロードしたcredentials.jsonをそのまま利用します。
また、People APIは、現時点ではPython 2.6以上に対応していますが、Python 2系統はサポートが終了し、Python 3系への移行が推奨されることから、
本サイト記載のコードは、Python 3系環境で実行することを想定しています。

問題点:people.connections.listのpageSizeの上限

公式ドキュメントによると、記事作成時(2019.06.19)時点では、pageSizeは1~1000の間しか設定出来ない様です。(少し前まで上限は2000だった様な…?)
この上限を超える件数の連絡先を取得したい場合は、nextPageTokenを利用すると良い様です。


作成したコード

必要なファイル:credentials.json

以下のページにAPIの仕様がまとまっているので開発の上で役に立つかと思います。

続き

2017/04/15

Google Earth上に活断層を表示する方法


本記事では、産総研が公開している活断層データベースをGoogle Earth上で表示する方法を紹介します。




注意
・この記事で紹介する方法は産総研が公式に案内している方法ではありません。今後、仕様変更等により使えなくなる可能性があります。
・当方は産総研とは関係のない個人ですので、問い合わせに答えることはできません。自己責任でお願いいたします。


活断層データベースでは、Google Map上で活断層の位置や情報を確認できます。
このデータをGoogle Map上ではなく、Google Earth上で表示したいと思います。

そのために、活断層データベースのソースを読み込んだところ、
https://gbank.gsj.jp/activefault/GMAP/googlemap_kmz.js
ファイルの置き場所等がまとめられていました。


この中から、活断層の位置についてのkmzファイルのURLを探すと、ここでした。
ダウンロードしてGoogle Earthで開くと、「活動セグメント」として表示されます。

以下に、その他のファイルへのリンクの一部をまとめておきます。

関連記事:

2014/02/02

PDFファイルのパスワード設定を解除して保存する方法(Google Chrome)

本記事では、Google Chromeを使って、パスワード設定されたPDFファイルの設定を解除して再保存する方法を紹介します。

注意
・パスワードが分かっている時にだけしか使えない方法です。
・セキュリティ上問題があるものなどへの使用は自己責任で行ってください。

1. Google ChromeでPDFファイルを開く。

ローカルのファイルなら、Google Chromeのアドレス欄にファイルをドラッグ&ドロップすると開かれます。オンラインのファイルならPDFのURLを開いてください。

2. パスワードを入力し、印刷ボタンを押す。

パスワードの入力を求められるのでパスワードを入力してください。


ファイルが開かれます。
上の画像で示している赤枠の保存ボタンをクリックすれば保存できますが、この状態ではパスワード保護が残ったままです。


保存ボタンの右の印刷ボタンを押して、印刷画面に移ります。「右クリック」>「印刷」でも可能です。


3. 送信先を「変更」から「PDFに保存」に切り替えて保存する。

これでパスワード保護を外して保存できます。