AutoCADの平面図クリックでGoogleマップをWebブラウザで起動

以前、Googleマップが表示されるAutoCADのツールパレットを作ってみました。

GoogleMaps ツールパレット

楽しい実験でした。

でもGoogleマップの機能を思う存分使うには、やっぱりWebブラウザで開くのが一番なんじゃないの?

そんな思いでこんなコマンドを作ってみました。

例によって地理的位置を設定した図面で任意の位置をクリック。

それだけです。Webブラウザが起動してクリックした位置がGoogleマップに表示されます。

地理的位置はAutoCADの機能なので、Map3D やCivil3D じゃ無くてもこのコマンドは使えますよ♪

VB.NET で作成しています。

Dim acDoc As Document = _
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument
Dim acCurDb As Database = acDoc.Database
Dim acDocEd As Editor = _
Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor

Dim GeoData As GeoLocationData
Dim msId As ObjectId = SymbolUtilityServices.GetBlockModelSpaceId(acCurDb)
Dim gdId As ObjectId
Dim hasGeoData As Boolean = False
Try
gdId = acCurDb.GeoDataObject
hasGeoData = True
Catch ex As Autodesk.AutoCAD.Runtime.Exception
End Try

If hasGeoData = True Then
Using acTrans As Transaction = _
acCurDb.TransactionManager.StartTransaction()
GeoData = acTrans.GetObject(gdId, OpenMode.ForRead)
End Using
Else
MsgBox(“地理的位置が設定されていません。”)
Exit Sub
End If

Dim pPtRes As PromptPointResult
Dim pPtOpts As PromptPointOptions = New PromptPointOptions(“”)
pPtOpts.AllowNone = True
pPtOpts.Message = vbLf & “点を指定: ”
pPtRes = acDoc.Editor.GetPoint(pPtOpts)
If pPtRes.Status = PromptStatus.Cancel Or pPtRes.Status = PromptStatus.None Then Exit Sub
Dim wcsPt As Point3d = pPtRes.Value
Dim geoPt As Point3d = GeoData.TransformToLonLatAlt(wcsPt)

Dim URL As String = ”http://maps.google.co.jp/maps?f=q&hl=ja&q=N” & _
geoPt.Y.ToString & “+E” & _
geoPt.X.ToString & “&ie=UTF8&om=1&ll=” & _
geoPt.Y.ToString & “,” & _
geoPt.X.ToString & “&spn=0.101457,0.136127&z=16&iwloc=addr”
Process.Start(URL)

(宮田)

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中