読者です 読者をやめる 読者になる 読者になる

GIS奮闘記

現役GISエンジニアの技術紹介ブログ。主にPythonを使用。

PythonでArcObjectsを使ってみよう!

本日はPythonでのArcobjectsの使用方法を書いてみたいと思います。PythonだとArcpyしか使えず、ちょっと難しいことをやろうと思うと途端にその貧弱さが露呈してしまいましたが、ArcObjectsを使えば大丈夫?!なはずです。それじゃあ最初から.NETで開発しろよというツッコミはなしで(我らがPythonを使いたいのです!)。

Snippets moduleを作成

ArcGISのバージョンごとにこんなものが用意されています。

・9.3, 9.4 - http://pierssen.com/arcgis/upload/misc/python_arcobjects.zip
・10.0 - http://www.pierssen.com/arcgis10/upload/python/snippets100.py
・10.1 - http://www.pierssen.com/arcgis10/upload/python/snippets101.py
・10.2 - http://www.pierssen.com/arcgis10/upload/python/snippets102.py

これらのうちいずれかを例えば、C:\Python27\ArcGIS10.2\Scriptsに配置してください。# -*- coding: utf-8 -*- を忘れずに!

comtypesのインストール

https://pypi.python.org/pypi/comtypesにソースがありますので、そこからpython setup.py install からのeasy_install comtypes-1.1.2-py2.7.egg ですね。

サンプルコード

ポイントを作ってその座標を設定するサンプルです。

# -*- coding: utf-8 -*-
from comtypes.client import GetModule, CreateObject
from snippets102 import GetLibPath, InitStandalone
m = GetModule(GetLibPath() + "esriGeometry.olb")
p = CreateObject(m.Point, interface=m.IPoint)
p.PutCoords(2,3)
print p.X, p.Y

詳細は使用方法についてはこれから調査してみたいと思います。

以上、本日は「PythonでArcObjectsを使ってみよう!」でした。