Daha çox

Etiket miqyasını düzgün etmək


Əvvəl etiketləri miqyaslaşdırmağın mümkün olub-olmadığı barədə bir sual verdim və IAnnotateLayerTransformationProperties.ReferenceScale xassəsini düzgün göstərdim. İndi bilmək istəyən budur: təbəqənizin və xəritənizin hüdudlarına ən yaxşı uyğun gəlmək üçün bu ədədi (istinad miqyasını) və şrift ölçüsünü hesablamaq üçün istifadə etmək üçün düzgün alqoritmdə göstəricilər varmı? (İstifadəçiyə, ehtimal ki, cavab verə bilmədikləri sualları vermədən etiketləmə prosesini mümkün qədər avtomatlaşdırmaq istəyirəm (indi mənim kimi.))


FontSize və ya ReferenceScale əldə etmək üçün boş əlaqələrdən istifadə edə biləcəyiniz, birini və ya digərini tanıdığınızı düşünürsən. Mən deyirəm boş münasibət çünki estetik şriftlər hər bir xarakter üzrə genişlik dəyişikliyinə malik ola bilər; və şrift hündürlüyü daha sabit olsa da, kiçik və böyük hərflər və s. arasında yenə də dəyişiklik var. Başqa sözlə, burada "tək slosh" var.

Buna baxmayaraq, Piksel-Hər İnç faydalı bir sabitdir və 72-ə bərabərdir.

Standart alət çubuğundakı 1: N düyməsini istifadə edərək ArcGIS-də Reference Scale ilə əl ilə təcrübə edə bilərsiniz. Qövs istənilən miqdarda yaxınlaşma səviyyəsi üçün 1: ###### kimi görünən bir şey çıxaracaqdır. Hesablama məqsədləri üçün həmin ifadədən "1:" işarəsini atın. Məsələn, 1: 1200, 1200 olur.

Müəyyən bir ReferenceScale üçün FontSize-in tuta biləcəyi şaquli boşluğu hesablayın:

// Mənim girişlərim ... // fontSize = 12, fontFamily = Arial // 1200, 1: 1200 istinad miqyasındadır // 72, inç başına piksel sabitidir. scaledFontHeightOnGround = (fontSize * 72) / 1200; // scaledFontHeightOnGround 200 fut olur // Lakin əksər işarələr bundan daha qısa olacaq.

"Şrift hündürlüyü" dedikdə, annotasiyalarım yerdəki ölçüsü 200 metrə çatacaq və ya ölçülü olacaqdır. Başqa sözlə, böyüdükcə böyüyürlər və böyüdükcə azalırlar. Əksər simvol bu sahənin təxminən 2/3 hissəsinə ehtiyac duyur. Anno-nuzda bir neçə simvol olsaydı (məsələn, "144" simli kimi), mənim vəziyyətimdə yalnız yerdəki təxminən 350 fut genişlənmiş eni tutur. Başqa sözlə, münasibət annotasiya genişliyinə yaxşı tətbiq olunmur və simli uzunluq artdıqca daha da pisləşir.

Bunu bilməklə, problemi geriyə işləyərək şaquli bir ölçü qura biləcəyinizi fərz edərək, xəritə vahidlərində şərhlərinizin müəyyən bir ReferenceScale üçün yer tuta biləcəyini düşünərək FontSize əldə edə bilərsiniz. Və ya fərqli olaraq "Seçim edilmiş bir ReferenceScale-də oxumaq üçün şərhlərinizin nə qədər boyu (xəritə vahidlərində) olmalıdır?" Gəlin 300 metrlik bir şrift hündürlüyündə rahat olduğunuzu düşünək.

Xəritə vahidlərində həm ReferenceScale, həm də istənilən şrift hündürlüyünü bildiyiniz zaman məqbul FontSize əldə edin:

// Mənim girişlərim ... // 300 = xəritə vahidlərindəki yazı hündürlüyü // 1200, 1: 1200 referans miqyasındadır // 72, inç başına piksel sabitidir. (300/1200) * 72 == aNewFontSize; // aNewFontSize 18 olur

Aydındır ki, həm şrift hündürlüyü üçün qəbul edilə bilən şaquli ölçüsü, həm də xəritə vahidi :) və bir FontSize biliriksə, bir ReferenceScale çıxarmaq üçün tənliyi yenidən düzəldə bilərik.

Həm xəritə vahidlərində həm də şaquli bir ölçüyə sahib olduğunuzda bir ReferenceScale hesablayın və FontSize:

// Girişlərim ... // 300 = xəritə vahidlərindəki yazı hündürlüyü // 72 piksel başına bir sabit sabitdir // fontSize = 18, bu halda (300 * 72) / fontSize == theReferenceScale; // theReferenceScale 1200 olur

Bu ekran görüntüsündə, solda MapScale-dən çıxış edən 1: N düyməsidir. MapScale-i həmin idarəetmədə dəyişə bilərsiniz və müvafiq olaraq böyüdüb / kiçiltəcəkdir. Sağda, izahatımın yazı hündürlüyünü ölçürəm.

İndi bu mövzuda düşüncələrimi tökdükdən sonra əldə etmək itkisindəyəm həm də Bir və ya digərini bilmirsinizsə FontSize və ReferenceScale. Bəlkə də həll RefScale və FontSize cütlərinin nümunə dəstini bir araya gətirmək, sonra bir qrafiq yığmaq və verilmiş istinad tərəziləri üçün uyğun şrift ölçüləri ilə əlaqəli bir trend xətti tənliyi çıxarmaq olacaqdır. Daha yaxşısı, bəlkə kiminsə belə bir tənliyi var?

Bu suala cavab olaraq digər insanların nə töhfə verdiyini görmək çox maraqlı olar.

Yaxşı, İlyas


Videoya baxın: Etiket qaydaları - masa arxasında restoranda, qonaqlıqda nələri etmək lazımdır? #merinədeyir (Oktyabr 2021).