ArcGIS Desktop을 사용하여 건물 그림자를 생성합니까? 속성 값이

건물 외곽 설정에서 건물 그림자를 어떻게 생성 하시겠습니까?
건물 높이에 대한 속성 값이 있습니다.
따라서 그림자 크기는 그에 따라 달라지는 것이 좋습니다.
가장 좋은 제안 I의 한 드롭 그림자는 ArcGIS이다 사용하여 발견 : http://blogs.esri.com/Support/blogs/mappingcenter/archive/2008/10/21/3d-effect-for-a-building-footprints.aspx



답변

빠르고 더러운 방법 은 건물 지붕의 그림자 만 그릴 수 있으며 어두운 회색으로 표시하고 (기본 지상층이있는 경우 반투명) 건물 다각형을 그 위에 그립니다. 지붕 그림자는 광원의 방위각과 고도에 의해 설정된 방향으로 건물 높이에 의해 결정된 거리만큼 건물 다각형을 변환하여 얻습니다 (무한 거리로 간주). (번역 양에 대한 공식은 아래에 나와 있습니다.)

조잡한 그림자

낮은 고도 나 고층 빌딩 (예 : 고층 빌딩)을 제외하고는 제대로 작동하는 경향이 있습니다. 오른쪽에있는 더 높은 고립 된 건물의 그림자가 건물 자체에서 어떻게 분리되는지 확인하십시오.

그림자 를 건물에 올바르게 연결하려면 건물 의 그림자를 포함해야합니다 . 이것은 어렵지 않습니다. P에 위치한 점과 Q에있는 다른 점 사이에서 연장되는 벽의 그림자는 {P, Q, Q ‘, P’}로 요약 된 사변형이됩니다. 여기서 Q ‘는 Q의 그림자이고 P’는 P. 다각형 건물은 닫힌 점 시퀀스 (P (1), P (2), …, P (n))로 표시되는 연결된 다각형의 모음입니다. 이러한 각 다각형에 대해 가장자리 그림자의 합집합을 형성하십시오 (P (1), P (2)), (P (2), P (3)), …, (P (n), P ( 1)). 이것은 가장자리 위의 루프를 통해 간단합니다.

방위각에서 빛 도 (이스트 북쪽)과 고도 의의 (수평선)에서도, 투영 좌표 (X, Y) 및 높이를 갖는 점 P의 그림자 H (모두 같은 단위로 표현 미터와 같은)는 P ‘= (x-h sin (a) / tan (s), y-h cos (a) / tan (s))에 있습니다. 전체 레이어에 대해 sin (a) / tan (s) 및 cos (a) / tan (s)을 한 번만 계산하면되고 각 다각형에 대해 오프셋을 얻기 위해 해당 계수에 높이를 한 번만 곱하면됩니다. 다각형의 각 점 그림자. (실제 계산 작업은 코드가 아닌 GIS에 의해 수행되며,이 모든 사변형의 합집합을 형성합니다.)

다음은 효과의 예입니다. (방위와 고도는 첫 번째 그림과 비교하여 약간 변경되었지만 건물 다각형과 높이는 서로 다르지만 이전과 동일합니다.)

좋은 그림자

충수

요청에 대한 응답으로 두 번째 예를 작성하는 데 사용되는 코드는 다음과 같습니다. 더 이상이 언어 (애비뉴)를 사용하는 사람은 거의 없지만 좋아하는 GIS에서 솔루션을 만들기위한 의사 코드 역할을 할 수 있습니다. (그러나 대부분의 의사 코드와 달리 실제로 실행하여 테스트되었습니다. 🙂 설명이 필요하지 않은 것은 매우 간단합니다. 인덱싱은 1이 아니라 0으로 시작하고 다각형 링은 명시 적으로 닫힙니다 (목록의 마지막 지점이 첫 번째 지점과 일치 함).

' S
' Return the shadow of a shape.

' Field calculator example:
' av.run("S", {[shape], [height], 200, 35})
'======================================================================'
theShape = SELF.Get(0) ' A projected polygon
xHeight = SELF.Get(1)  ' Expressed in the projected units
xAzimuth = SELF.Get(2).AsRadians  ' Any angle (in degrees) east of north
xAltitude = SELF.Get(3).AsRadians ' Angle between 0 and 90 (vertical)
'
' Compute the shadow offsets.
'
xSpread = 1/xAltitude.Tan
x = -xHeight * xSpread * xAzimuth.Sin
y = -xHeight * xSpread * xAzimuth.Cos
xy = x@y
'
' Begin with the original shape.
'
p = theShape.Clone
'
' Adjoin the wall shadows.
'
for each lPts in theShape.AsList   ' Loop over the rings
  for each i in 1..(lPts.Count-1)  ' Loop over edges in this ring
    l = {lPts.Get(i-1), lPts.Get(i), lPts.Get(i)+xy, lPts.Get(i-1)+xy}
    p = p.ReturnUnion(Polygon.Make({l}))
  end
end
return p
' end of script


답변

나는 당신이 (찾고있는) 말이 아크 맵 (버전?)의 가능성이 될 것이라고 생각하지 않습니다. 아마도 당신이 원하지 않는 한계에
대해서는이 질문 을 보십시오 .
활용하여 3 차원 분석의 확장arcscene 당신이 빛을 추가 할 수 있지만 몇 가지 제한 사항이 아직 없습니다. cityengine
관련 하여 일부 esri 운동이 있습니다 .
그림자 정확도 섹션으로 스크롤하십시오.
나는 이전에 lightscape와 관련이 있습니다 (이것은 은퇴되었으며 3dsmax 내부에 살고 있음을 확신합니다).
이제는 경로가 엔지니어링 시각화 제품 라인을 통과했을 것입니다 …
3ds Max


답변

3D Analyst 확장에는 실루엣과 그림자 볼륨을 생성하기위한 몇 가지 도구 ( SkylineSkyline Barrier )가 있지만 스카이 라인에서와 같이 수직 평면에 투영되는 상황이므로 쉽게 조정할 수 있는지 여부를 잘 모르겠습니다. 이 경우 (평면,지면에 투사).


답변