Daha çox

Xətt etiketini xətt seqmentinə dik qoyun


Atributları olan bir nöqtə shapefile var və etiketi bir xətt shapefile dik etmək istərdim, bu mümkündürmü? Əsas olaraq ballarım evləri təmsil edir və ev etiketinin xətt seqmentinə (yol) dik görünməsini istəyirəm. Xətt seqmentlərim hamısı eyni şəkildə işləmir, ona görə də yazılarımı əl ilə çevirməliyəm və etiketi avtomatik olaraq düzəltməyin bir yolu olub olmadığını düşünürdüm. Mənim nöqtələrim də xətlərin üzərində uzanmır, aralarında boşluq var. Arcmap 10.3 istifadə edirəm


Maplex etiketləmə mühərrikindən istifadə edərək Etiket menecerini vurun və nöqtə qatınızı seçin. Xüsusiyyətlərə və Etiket Vəziyyətinə gedin. Etiket Pozisyonu daxilində xüsusiyyətə görə döndür seçin və seçimlərə vurun. Orada etiket çevrilməsini bir sahəyə görə və ya bunlardan dik olan Alignment Type ilə təyin edə bilərsiniz. Ümid edirəm kömək edər!


  1. Alan ANGLE əlavə edin, ballarınıza float yazın.
  2. STREET_REC sahəsini əlavə edin, küçə mərkəzlərinizə uzun tam ədədi yazın.
  3. Ardıcıl sayı olan sahə kalkulyatoru ilə doldurun, məs. [FID]
  4. Yol qatını STREETS olaraq dəyişdirin
  5. Aşağıda göstərildiyi kimi nöqtəyə məkan qoşulma əlavə edin

Bu sahə kalkulyator ifadəsini SJ cədvəlinin ANGLE sahəsindəki işə salın

math pi = math.pi def getAngle (shp, n): mxd = arcpy.mapping.MapDocument ("CURRENT") lr = arcpy.mapping.ListLayers (mxd, "STREETS") [0] q = r '"STREET_REC "= '+ str (n) arcpy.da.SearchCursor (lr," Shape @ ", q) ilə kursor kimi: kursordakı sıra üçün: street = sıra [0]; break pointPosition = street.measureOnLine (shp) f = max (0, pointPosition-0.01) t = min (street.length, pointPosition + 0.01) p1 = street.positionAlongLine (f) .firstPoint p2 = street.positionAlongLine (t) .firstPoint dX = p2.X-p1.X dY = p2.Y-p1.Y əgər dX == 0: dX = 0.0001 əgər dY <0: qayıdış math.atan (dY / dX) / pi * 180-90 math.atan (dY / dX) / pi * 180 +90

Etiketləmə dialoqunda ANGLE sahəsini istifadə edin.

NƏTİCƏ:


Videoya baxın: Qaradolaq sortu qoyun satilir 1500 baş elaqe 0513604615 (Oktyabr 2021).