タグ付けされた質問 「c#」

C#は.NETプログラミング言語です。

5
プログラムでArcGISのメタデータを編集/更新しますか?
ArcGIS 10でメタデータをプログラムで更新することに成功した人はいますか?Python / arcpyの使用を検討しますが、ArcObjects(C#またはPython / comtypes)も可能です。 FGDCとArcGIS-ISO形式のメタデータの両方を更新する必要があります。使用するソリューションでは、競合している場合を除いて、既存の(非空白の)要素と追加された要素を保持できる必要があります。追加された要素は既存の要素を上書きします。

4
緯度と経度を北座標と東座標に変換していますか?
私は次の英国の郵便番号dy8 3xtを持っており、緯度と経度が次のとおりであることを知っています:- 54.452772 -2.156082 私はまた、郵便番号の東座標、北座標が次のとおりであることも知っています:- 389490 283880 ただし、緯度/経度を北座標と東座標に変換する方程式を見つけるのに苦労しています。式をjScriptとc#の両方に含めたいと思います(私は貪欲です)。 誰か助けてもらえますか? いくつかの詳細情報、このリンクをクリックすると、私が探している結果が表示されます。WG S84を使用してlat / lngにプロジェクトを入力し、OSGBにグリッド参照プロジェクトを入力した郵便番号。だから私の質問はこれがどのように行われるのですか? 私はついにここに導かれました。

3
ArcGISの新機能で、「魚が泳ぐように」2点間の距離を計算したい
特定の割り当ての水域であるHydrographyという名前のレイヤーがあります。ステーションポイントとターゲットポイントがあります。これらの2点間の距離を計算する必要がありますが、水路の内側です。(ボートは陸を越えられません) DefenseServiceの距離計算はまずまずですが、Rasterを入力として使用しないため、直線のように見えます。ユークリッドはほとんど存在するようですが、簡単なものは見つかりません。 ArcGIS Explorer 2500、ArcGIS for Server 10.1 SP1 Enterpriseを使用していますが、サービスとツールはC#で作成しています。 水路の読み込み、IPointsの作成がありますが、次に何をすべきかについて途方に暮れています! どんな助けでも感謝してください。

1
アドインで実行されているArcObjectsの動作が遅いですか?
ジオプロセシングを行うクラスライブラリを作成しました。アドインは、非同期プロセスであるクラスを呼び出します。スレッドがSTAであり、arcobjectsがスレッドセーフであること(つまり、アドインから渡されない)であることを確認しました。すべてのアークオブジェクトはスレッド内に作成されます。 これはクラスライブラリであるため、winforms UIにアドインとしてラップしました。コードの両方のセットはまったく同じであり、テストはまったく同じデータを使用して実行されました。winformsとアドインの両方でコードが完成し、望ましい結果が得られ、メモリリークは明らかではありません。アドインの場合、この時点ではマップ期間との相互作用はなく、winformsコードにはマッピングまたは表示要素もありません。 UIの更新は、アドインとUIの両方の進行状況ダイアログの更新のみです。アドインはドッキング可能なウィンドウ(ユーザーコントロールUI)を使用しています。 私が見ている問題は、ライブラリがアドインから呼び出されると、コードの実行がwinformsアプリケーションから呼び出される同じコードよりも5倍遅いということです。 なぜこれが発生しているのか、どこを見ればよいのかについてのアイデア


2
グラフィックスを描画した後にビューを更新する最良の方法は何ですか?
ボタンをクリックしてポリゴンを描画し、機能を強調表示します。次に、ActiveViewを更新して、新しいポリゴンを表示する必要があります。この行は機能します: mapControl.ActiveView.ScreenDisplay.StartDrawing(StartDrawing(mapControl.ActiveView.ScreenDisplay.hDC, (System.Int16)ESRI.ArcGIS.Display.esriScreenCache.esriNoScreenCache); mapControl.ActiveView.ScreenDisplay.DrawPolygon(feature.Shape); mapControl.ActiveView.ScreenDisplay.FinishDrawing(); mapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewAll, feature.Extent, null); しかし、それは常にすべてのレイヤーをリロードします。私はPartialRefresh他の人とほとんどすべての方法で呼び出しを試みましたesriViewDrawPhaseが、どれも新しいポリゴンを表示しませんでした。 で再描画するよりも良い解決策はありesriViewDrawPhase.esriViewAllますか? 更新 を使用しILayerExtensionDraw.AfterDrawて描画フェーズをテストしましたが、AfterDrawはでのみヒットPartialRefresh()しesriViewAllます。拡張機能はMapControl.Layersのすべてのレイヤーに追加されます。毎回ヒットすると思っていましたか?mapControl.ActiveView.ScreenDisplay.DrawPolygon(feature.Shape);AfterDrawが発生しないように、どのレイヤーに描画しますか? 回答 カークのおかげで、ここに解決策があり、レイヤーを再ロードせずに、新しく追加されたグラフィックを表示します。 IGraphicsContainer con = _mapControl.Map as IGraphicsContainer; if (con != null) { IFillShapeElement fillShapeElement = new PolygonElementClass(); fillShapeElement.Symbol = fillSymbol; IElement element = (IElement)fillShapeElement; element.Geometry = feature.Shape; con.DeleteAllElements(); con.AddElement(element, 0); _mapControl.ActiveView.ScreenDisplay.Invalidate(feature.Extent, true, _mapControl.ActiveView.get_ScreenCacheID(esriViewDrawPhase.esriViewGraphics, null)); }

1
プログラムでArcMapのシェープファイルを編集しますか?
これはできることですか? たとえば、マップ上にオーバーレイを作成してシェープファイルとして保存した場合、この(既存のファイル)オーバーレイに移動して編集したいと思います。 理想的には、新しいシェープファイルの作成や古いシェープファイルの削除を避けたいです。 考え? 編集1:OK、今、誰かがそれを行うことができると言いました。明白な質問は、シェープファイルをどのように編集するか(ArcObjectsでプログラム的に)ですか? 編集2:コメントを見ると、私はこのようなことをする必要があるようですが、わかりません。 現在、C#のArcObjectsで編集する基本的なシェープファイルがあります。 FeatureClass、ワークスペースを作成し、形状を渡してシェープファイルを作成しました。この場合、それは、いくつかのポイントを持つ単純なポリラインです。私がしたいことは、このシェープファイルを更新する機能を持っていることです。 そのFeatureClass、Workspaceを再利用し、新しい形状で渡す必要があると想定しています。しかし、私がやっていることはうまくいかないようです。これが私が編集しているところです-どんなアドバイスでも素晴らしいでしょう。 IWorkspaceEdit workspaceEdit = (IWorkspaceEdit)inWorkspace; workspaceEdit.StartEditing(true); workspaceEdit.StartEditOperation(); ComReleaser comReleaser = new ComReleaser(); IFeatureCursor featureCursor = inFeatureClass.Update(null , true); IFeature feature = null; while((feature = featureCursor.NextFeature()) != null) { int id = feature.Fields.FindField("shape"); IFeatureBuffer featureBuffer = inFeatureClass.CreateFeatureBuffer(); featureCursor.DeleteFeature(); //Delete the old featureBuffer.Shape = …

3
ArcObjectsを使用して、ArcMapにフローティング専用(ドッキング不可)ウィンドウを作成しますか?
ArcMapでフローティングウィンドウを作成する方法を探しています。例として、Identifyツールのウィンドウを見てください。 フローティングとは、常にマップドキュメントの前面にあり、ユーザーがArcMapを引き続き使用できることを意味します。インターフェイスIDockableWindowDefを使用して、フローティングも可能なドッキング可能ウィンドウを作成できることは知っていますが、ドッキングさせたくありません。私の知る限り、IDockableWindowManagerによって作成されたフォームがドッキングされないようにすることはできません。たとえば、ユーザーがフォームをArcMapウィンドウの境界にプッシュした場合。 何か案は? 解決策は、子ウィンドウやMDIなどのキーワードを検索することでした。HTH 問題の解決策は@llcfの答えと同じくらい簡単なようです: MyForm form = new MyForm(); form.Show(NativeWindow.FromHandle(new IntPtr(m_application.hWnd)));
9 arcmap  arcobjects  c# 

2
Web機能サービス(WFS)呼び出しのC#の抽象化
現在、シッククライアントアプリケーション(Windowsデスクトップアプリケーション)のC#でWFSクライアント側の実装に取り​​組んでいます。目標は、地図上に重ねて表示する「レイヤー」の組み合わせを選択できるようにすることです。レンダリングはシッククライアントの既存の関数呼び出しを使用します。C#/ .NETの要件はかなりしっかりしています。 この段階では、標準の.NET関数呼び出しを使用してGetCapabilitiesへのHTTP GET呼び出し、標準のXmlReaderを使用して機能を解析し、その抽象化を構築してから、その抽象化の属性に基づいてさらにHTTP呼び出しを行います。それほど難しくはありませんが(おそらく、GMLパーサーの部分にまだ達していないためでしょう...)、もっと良い方法があるかどうか疑問に思いました。特に、クライアントが一部のサーバーで機能し、他のサーバーでは機能しない可能性があることを懸念しています(OWSlibにWMTSを実装したいくつかの経験に基づく)。 クライアント側でWFSのC#抽象化を提供できる合理的に「有効な」オープンソース製品/プロジェクトを誰かが知っているかどうか疑問に思いました。 同様の質問(特にpython / C#を使用してWeb機能サービスに接続します。これはかなり良いフォローアップバンターでかなりごみの答えがありますが、要件はそれほど具体的ではありません)と表面的には似ているが対処された質問があります。サーバー 側の実装を使用するか、実際には管理者向け(GeoServer RESTなど)でした。 Mass GISの優れた人々がC#コネクタを利用できるようにしました。これは基本的に私が探しているものですが、長い間(2007年のように)更新されていません。これに基づいて進行中のプロジェクトは興味深いでしょう。 レンダリング部分を「バンドル」しないもの(最終部分を少し「軽く」するため)が望ましいのですが、それが抽出するのがそれほど難しくなければ、興味深いかもしれません。 理想的な世界では、C#用のOWSLibがあります。
9 c#  wfs  .net 

1
C#/。NET 4.5.1のGDALバインディングをインストールするにはどうすればよいですか?
C#gdalバインディングを使用しようとしていますが、C#コードで「DLL 'gdal_wrap'をロードできません:指定されたモジュールが見つかりませんでした。(HRESULTからの例外:0x8007007E)」というエラーが表示されます。 私はgdal_csharp.dllの依存関係を確認しましたが、すべて問題ありません。際立っていた2つの点は、csharp dllが32ビットdllであるのに対し、すべての依存関係は64ビットシステム(私のマシンには64ビットCPUが搭載されている)に対するものです。また、ファイルieshims.dllは依存関係としてリストされていましたが、私が収集したものから、それがインストールされている必要は必ずしもありません。 zipファイルを使用して手動でファイルをインストールし、gdalコアライブラリの.msiインストーラーを使用してみました。システムパスにgdal実行可能ファイルへのパスを必ず追加しました。 ここからバイナリをダウンロードしました:http : //www.gisinternals.com/query.html? content=filelist&file =release-1800-x64-gdal-1-11-1-mapserver-6-4-1.zip そして、私はインストール手順についてこのガイドに大まかに従いました:http : //vipassanaandenvironmentalinformatics.blogspot.co.nz/2013/03/getting-started-with-c-and-gdal.html 私はVisual Studio 2013を使用していますが、そのバイナリは上記のサイトで入手できます。
8 gdal  c#  osgeo 

5
SQL Server空間データをGeoJSONに変換し、地図上にプロットする
地理空間データを含むSQLサーバーテーブルがあります。行の例は(列名付き)です。 type: streetline code: 231001 geog: 0xE6100000011 ........ Centroid 0xE61000000C....... geom: 0xE6100000011 ........ 上記の図形をリーフレットマップに描画するために、MVC3でC#を使用しています。上記のsqlデータをデータテーブルにフェッチしています。列「geom」でSQL関数「ToString()」を使用すると、次の結果が得られます。 "LINESTRING (-1.131510412 52.65531, -1.13286 52.65559)", "POLYGON ((-1.1116360 52.6409953, -1.1116683 52.6413, -1.11146723 52.641317, -1.11133263 52.6413572, -1.1113059))", 問題は、上記をGeoJSONに変換して、リーフレットマップにプロットできるようにする方法です。期待される出力(GeoJSON)の例を次に示します。 var geojsonFeature = { "type": "Feature", "properties": { "name": "Coors Field", "amenity": "Baseball Stadium", "popupContent": "This is where the Rockies …

2
ESRI ArcMapアドインConfig.esriaddinx
古いArcMapエクステンションをC#のアドインに変換している最中で、XMLベースの構成を最大限に活用しようとしています。 Config.esriaddinxは、基本的なセットアップ(ツールバー、ボタン、拡張情報など)に最適ですが、フィールド名、レイヤー名、データベース接続など、他の構成パラメーターを追加する方法はありますか? App.configファイルを作成する必要がありますか?その場合、App.configファイルは他のアドインと同じようにパッケージ化/展開されますか?パラメータを読み取るための最良の方法は何ですか?私はアドインの初心者であり、提案やサンプルをいただければ幸いです。ありがとう!

1
直線上の最も近い点を見つける
2つのlatlon位置の間に線があり、特定のlatlon位置に点があります。私が知りたいのは、その線上の最も近い点が(他の点に関して)何であるかです。したがって、その行の緯度の位置。 基本的な計算方法は知っていますが、緯度計算には頭が足りません。誰かが私を助けたり、それを行う方法についていくつかのアドバイスをくれますか? ありがとう
8 c#  mathematics 

2
SharpMapライブラリの使用を開始するには?
私はGISの初心者であり、特にC#のプログラミングもしています。私は次のようなプログラムを開発しようとしています: GeoTIFF、DTED(レベル2と思います)、シェープファイル、JPEGタイプのファイルからマップを表示します。 速度入力に関して車両の動きを表示する 緯度、経度、高度、ピッチ、ロールを表示 正しい地理的位置を表す車両アイコン 実際の移動距離を計算する SharpMapライブラリを使用するように言われましたが、Microsoft Visual Studio 2010で使用しています。 SharpMapライブラリの使用を開始してプログラミングするためのヒントはありますか?私を助けるかもしれないSharpMap上のプロ?
8 c#  sharpmap 

3
ArcObjects(ArcGIS for DesktopおよびC#):ArcMap COM UIとカスタム.Net UserControlオブジェクトの間をキャストする方法は?
ArcObjects(9.3.1 SDK)とC#.Netを使用して、ArcGIS for Desktopで実行するユーティリティを作成しています。私のプロトタイプには、2つのコンボボックスとツールを備えたツールバーが含まれています。最初のコンボは目次のレイヤーを選択し、2番目のコンボは選択したレイヤーからフィールドを選択します。このツールは、地図を操作するために使用されます。 基本的に、レイヤーを選択し、有効なフィールドを選択してから、マップ内のフィーチャをクリックして、選択したフィールドの値を取得します。役立つ場合は、ツールバーの画像を次に示します。 [質問はここからほぼ完全に書き直されました] 私が抱えている問題は、ネイティブCOM UIパーツとカスタム.Netコントロールの間で状態を渡すことです。たとえば、レイヤーコンボボックスでDropDownClosedイベントをキャッチし、そのレイヤーに関連する列の有効なリストをアセンブルし、フィールド名のリストを(IFieldsを介して)フィールドコンボボックスに適用します。 RagiYaserBurhamとblah238による最初のコメントを適用し、これらをこのページの詳細とマージした後、次のDropDownClosedイベントハンドラーはコンボボックスからツールバー(ICommandBar)に戻りますが、ICommandItemからキャストする方法がわかりませんUserControlのFieldsコンボボックスの実装に: private void layerSelectCBO_DropDownClosed(object sender, EventArgs e) { _completionNotify.SetComplete(); string layerName = (sender as ComboBox).SelectedItem as string; // These two lines are a combination of initial commenter suggestions. ICommandItem toolbar = _iApp.Document.CommandBars.Find("ArcProject.UI.AngryToolbar", false, false); ICommandItem fieldsItem = (toolbar as ICommandBar).Find("ArcProject.UI.FieldSelectUC", false); } …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.