-
地球の裏の緯度経度を求める
[vb title="VBA"] Public Function GetBackLatLon(FromPoint As IPoint) As IPoint '入力座標が地理座標系でない場合、Nothingを返す If FromPoint.SpatialReference Is Nothing Then Set GetBackLatLon = Nothing Exit Function ElseIf Not TypeOf FromPoint.SpatialReference Is IGeographicCoordinateSystem ... -
単位当たりのピクセル幅を計算
[vb title="VBA"] 'データフレームの単位当たりのディスプレイ距離を計算 Sub fncCalculateDistance() 'Applicationの取得 Dim pMxApplication As IMxApplication Set pMxApplication = Application Dim pAppDisplay As IAppDisplay Set pAppDisplay = pMxApplication.Display Dim pDisplayTransf... -
測地線・航程線・大楕円線
IPolycurveGeodetic IConstructGeodetic -
測地線に基づく距離の計測
[vb title="VBA"] Public Sub Test() Dim pSpatialReferenceFactory As ISpatialReferenceFactory2 Set pSpatialReferenceFactory = New SpatialReferenceEnvironment '地理座標系(WGS84)の定義 Dim pSpatialReference As ISpatialReference Set pSpatialReference = pSpatialReferenceFactory.CreateGeographic... -
測地系の変更(座標変換)
[csharp title="C#"] static void Main(string[] args) { //ESRI License Initializer generated code. m_AOLicenseInitializer.InitializeApplication(new esriLicenseProductCode[] { esriLicenseProductCode.esriLicenseProductCodeBasic }, new esriLicenseExtensionCode[] { }); //ESRI License Initializer gener... -
選択フィーチャにズーム
[csharp title="C#"] ISelectionSet pSelectionSet = pFeatureSelection.SelectionSet; IEnumGeometry pEnumGeometry = new EnumFeatureGeometryClass(); IEnumGeometryBind pEnumGeometryBind = (IEnumGeometryBind)pEnumGeometry; pEnumGeometryBind.BindGeometrySource(null,pSelectionSet); System.Type t = System.Type.GetTypeFromP... -
真円を作成する方法
[csharp title="C#"] //中心点座標 double X = ; //UTM座標系のX座標値 double Y = ; //UTM座標系のY座標値 double radius = 10500; //半径 //中心点 Point 作成 IPoint pPCenter = new PointClass(); pPCenter.PutCoors(X,Y); //円周接点 Point 作成 IPoint pFromTo As IPoint = new PointClass(); pFromTo.PutCoords(X + radius, Y); ... -
始点から各点にラインを引く方法
[vb title="VBA"] Sub subCreateLine() Dim pMxDoc As IMxDocument Set pMxDoc = ThisDocument 'ポイント Dim pFLayer0 As IFeatureLayer Set pFLayer0 = pMxDoc.FocusMap.Layer(0) Dim pFClass0 As IFeatureClass Set pFClass0 = pFLayer0.FeatureClass '作成ライン Dim pFLayer1 ... -
ジオメトリの不正の種類を判定
[vb title="VBA"] Dim pBoolean As Boolean Dim reason As esriNonSimpleReasonEnum Dim pTopologicalOperator As ITopologicalOperator3 Set pTopologicalOperator = pGeometry pTopologicalOperator.IsKnownSimple = False pBoolean = pTopologicalOperator.IsSimpleEx(reason) 'pBooleadn に不正かどうかが返される 'reason に不正の種... -
ジオメトリのチェック
[vb title="VBA"] Public Sub CheckGeometryError() Dim pFeatureSimplify2 As IFeatureSimplify2 Set pFeatureSimplify2 = pFeature Dim pGeometry As IGeometry Set pGeometry = pFeature.Shape Dim enumReason As esriNonSimpleReasonEnum If pFeatureSimplify2.IsSimpleGeometry(pGeometr...
