ホーム » tarumi の投稿 (ページ 18)

作者アーカイブ: tarumi

Map上のFeatureの属性を照会

get valules for all fields from selected features

ArcGISの役立つサイト

ArcObjects API Reference for .NET

ArcGIS Resource Center

axMapControl MAPをイメージにエクスポート

Build and export PDF maps using ArcObjects?

Export active view

axMapControl MAPをイメージにエクスポートする際の画質

今度見る
Create JPEG (hi-resolution) from ActiveView Snippet

Why does Exporting Document to JPEG using ArcObjects in Layout View result in bad picture quality?

ArcObjects コードでポリゴン削除

今度見る
ArcMap tool for deleting polygon with C#

ArcObjects axMapControl 指定座標にPan

[code]
ESRI.ArcGIS.Geometry.IPoint pt = new ESRI.ArcGIS.Geometry.Point();
pt.PutCoords(-35708, -53655);
axMapControl1.CenterAt(pt);
axMapControl1.Refresh();
[/code]

ちなみに以下の方法で座標を設定したら正しく動作しなかった
[code]
ESRI.ArcGIS.Geometry.IPoint pt = new ESRI.ArcGIS.Geometry.Point(-35708, -53655);
[/code]

更にMAPと空間データの座標刑が違う場合はstackoverflow Converting Lat / long to PointClassを参照

念の為
[code]
ISpatialReferenceFactory srFactory = new SpatialReferenceEnvironmentClass();
IGeographicCoordinateSystem gcs = srFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);
ISpatialReference sr1 = gcs;
IPoint point = new PointClass() as IPoint;
point.PutCoords(-92.96000, 44.9227);
IGeometry geometryShape;
geometryShape = point;
geometryShape.SpatialReference = sr1;
geometryShape.Project(mapControl.SpatialReference);
mapControl.DrawShape(geometryShape);
[/code]

AxMapControl: How to set map extent in ArcObjects?

ArcObjects MapControl上での画面座標(pixel)と地図座標の相互変換

// 地図のEPSGが2451の場合

地図座標をピクセルに変換
[code]
ESRI.ArcGIS.Geometry.IPoint pt = new ESRI.ArcGIS.Geometry.Point();
pt.PutCoords(-35708, -53655);
ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = axMapControl1.ActiveView.ScreenDisplay;
int x;
int y;
screenDisplay.DisplayTransformation.FromMapPoint(pt, out x, out y);
[/code]

ピクセルを地図座標に変換

[code]
ESRI.ArcGIS.Display.IScreenDisplay screenDisplay = axMapControl1.ActiveView.ScreenDisplay;
ESRI.ArcGIS.Geometry.IPoint point = screenDisplay.DisplayTransformation.ToMapPoint(100, 100);
[/code]

Spatialiteの空間データテーブルをArcObjectsに表示

[code]
ESRI.ArcGIS.Geodatabase.IWorkspaceFactory workspaceFactory = new ESRI.ArcGIS.DataSourcesGDB.SqlWorkspaceFactoryClass();
ESRI.ArcGIS.Geodatabase.IFeatureWorkspace featureWorkspace = (ESRI.ArcGIS.Geodatabase.IFeatureWorkspace)workspaceFactory1.OpenFromFile(@"Spatialiteフルパス", 0);
ESRI.ArcGIS.Geodatabase.IFeatureClass featureClass = featureWorkspace.OpenFeatureClass("テーブル名");
ESRI.ArcGIS.Carto.IFeatureLayer featureLayer = new ESRI.ArcGIS.Carto.FeatureLayerClass();
featureLayer.FeatureClass = featureClass;
featureLayer.Name = "レイヤ名";
axMapControl1.AddLayer(featureLayer);
[/code]

参考にしたサイトUsing Sqlite/Spatialite with ArcObjects and C#

GeoTIFFのExtentを表示

GeoTIFFのExtentはGDALのユーティリティgdalinfoで表示可能。
gdalinfoのサイト

Windows上で動作するコンパイル済みのGDALモジュールはOsgeoのwikiのダウンロードサイトにあるリンクからたどった
Gisinternalsよりダウンロード
d1

今回は1.9.2 vc2008 32bit版(release-1500-gdal-1-9-2-mapserver-6-2-0.zip)をダウンロード
d2

圧縮ファイル内のbinディレクトリにあるdllとbin\gdal\appsにあるgdalinfo.exeをドイツのディレクトリにおいてコマンドからGEOTIFFのパスを渡すとgeotiffのExtenを含めて各種の情報を表示

d3

OpenLayersでOSMが表示されない

OpenLayersでOSMの地図を表示していたのがだ、なぜか表示されなくなった。
7月にMapQuestが使えなくなり、OSMに切り替えたのだがOSMもとは・・・
OpenLayersのsampleをサイトを見ると表示されている。

表示される
[code]
layer_base = new OpenLayers.Layer.OSM();
[/code]

表示される

[code]
layer_base = new OpenLayers.Layer.OSM( "Simple OSM Map");
[/code]