森林土木memoある自治体職員が、仕事で使うGIS、GPS、CADなどについてメモします。ソフトウエア「Map円Edit」はこちら今回は、円の図形と中心のマーカーをkmlファイルに出力する方法の説明です。kmlファイルは、xmlファイルの一種です。vb.netでは、xmlファイルを簡単に作ることができます。今回の方法は、xmlWriterを使って、1行づつ書き込んでいく方法です。vb.netでのxmlファイルの作成方法は、この記事が参考になると思います。.NETで簡単XML>まずは、Kmlに変換するボタンのクリックイベントを説明します。ボタンの名称は「Butt_円のKML作成」です。保存するファイル名を指定するため、SaveFileDialogコントロールもフォームに配置しています。SaveFileDialogコントロールの名称は「SaveFileDialog_KML」としています。'ファイル保存ダイアログを開いて、保存するファイル名を指定します。MessageBox.Show("キャンセルされました。'クラス「XML_Edit」の「sub_kml円作成」メソッドを呼び出します。'引数は、KMLファイルのフルパスを渡しています。'ファイルが作成されたら、メッセージを表示して、kmlファイルに関連付けられたソフトでファイルを開きます。MessageBox.Show("KMLが保存されました。Sub次に上のプロシージャで呼び出しているクラス「XML_Edit」の内容です。xmlの編集を行うために、「System.xml」をインポートしておきます。'ここはエラーになるので記述しない。記述がなくてもGoogleEarthでは読み込める。Class上のコードはxmlを1行づつ作成していく方法です。vb.netで使えるxmlwriterクラスを使用します。「WriteStartElement("****")」でタグを開始します。「WriteEndElement()」でタグを閉じます。"内容")」と記載します。"内容")」と記載しします。「WriteStartElement("****")」と「WriteEndElement()」の数が合わないと、エラーになるので注意してください。以上で、円のkmlファイルを作成することができます。kmlのタグの意味などは、Webサイトに沢山情報がありますので、そちらで確認して下さい。コードに間違いや不具合があった場合には、コメント欄で教えていただければと思います。自由に使用して頂いて構いません。VB.netで作成しています。「こんなことができるんだ」と思ったのがきっかけです。先人の知恵には本当に感謝します。「地図で円を描く(Map円Edit)」ソフトウエアのコードを書き残しておこうと思います。自分用のメモでもあるのですが。「Map円Edit」のメインフォームは以下のようになっています。上部に地図の切り替えを行うラジオボタン、地図の中心の緯度経度を表示するテキストボックがあります。その下には、円を作成するときに設定するテキストボックスと、KMLを作成するためのボタンがあります。WebBrowserコントロールが真ん中にあり、その下に、ステータスバーを配置して、ラベルでマウスのある緯度経度を表示しています。画像では見えませんが、円を描画した時の座標を記録しておくリストボックを非表示で配置してあります。フォームの名称は「F_地図表示」、WebBrowserコントロールの名称は「Web_地図表示」です。フォームを表示するときのコードです。フォームのShownイベントに記載します。地理院地図を表示します。SubRadio_地理院地図ボタンのクリックイベントは以下のとおりです。「sub_Opnelayers表示」プロシージャを呼び出して、地図を表示します。地図を表示する前に、WebBrowserコントロールのbjectForScriptingプロパティにクラス(Cls_地図表示)のインスタンスを渡します。これで、WebBrowserをクリックしたり、マウスを移動させた時のイベントをvb側に渡すことができるようです。Radio_OSM、Radio_GoogleMapボタンのクリックイベントもRadio_地理院地図と全く同じものを記載します。'アクセスできるオブジェクトを取得または設定します。Subクラス(Cls_地図表示)の内容は以下のとおりWebBrowserコントロールから呼び出したいイベントやメソッドを記載しておきます。ここではCls_地図表示は、F_地図表示とは別のファイルに作成しています。'List_円の座標は非表示で配置されている。各地図を呼び出すプロシージャです。HTMLを文字列にして記入していきます。'テキストボックスのバックカラーをhtml16進数に変換。'チェックで地図を切り替え。地図によって呼び出すスクリプトを変える。'.NETのSubroutineを呼び出す。'.NETのSubroutineを呼び出す。Functionイベント部分に記載していある「window.external」で、WebBrowserコントロールの「.ObjectForScripting」プロパティに設定したクラス(Cls_地図表示)内のイベントやメソッドを呼び出して実行することができます。次回は、円をkmlファイルに保存する部分を書きたいと思います。2.0業務で使う林業QGIS徹底使いこなしガイドブログ主が書きましたQGISのマニュアル本です。2017年6月発売!「林業」とありますが、林業だけでなくQGISの基本から応用まで幅広く網羅しています。御覧ください!Amazonでも販売中!下のリンクから、本で利用できるサンプルファイルをダウンロードできます。業務で使う林業QGIS徹底使いこなしガイド本の紹介ページ(全林協)公開しているテキスト当ブログ管理人が作成したQuantumGISのテキストなどをダウンロード出来ます。北海道Shapeファイル北海道全域の基盤地図情報をShapeに変換しました。)、「道路縁」があります。(04/19)ファンメッセージを送るこのブログの読者になる更新情報をチェックするブックマークする友達に教えるカテゴリ日記(14)その他(2)CAD(1)GIMP(1)林道(1)QGIS(50)GPS(4)リンク(1)DBF編集(2)GISその他(22)魚道(0)治山ダム(1)Android(10)カシミール3D(6)vb.net(2)Web地図(5)過去ログ2019年10月(2)2019年02月(1)2018年09月(3)2018年08月(1)2018年03月(1)2017年12月(1)2017年08月(1)2017年07月(3)2017年06月(2)2017年05月(2)2017年02月(1)2017年01月(1)2016年12月(1)2016年11月(4)2016年09月(1)2016年08月(3)2016年07月(3)2016年03月(1)2015年12月(1)2015年09月(2)Seesaaブログ。