Bir Nesnenin Stilini Değiştirme

Bir katmandaki nesnelerin stillerini MapBasic koduyla değiştirebiliriz. Bunun için

Alter Object

MapBasic komutunu kullanırız. Aşağıdaki kod örneği noktasal bir katmanda ilk kayda karşılık gelen nokta nesnesinin stilini değiştirir:

include "mapbasic.def"

select * from Test where rowid = 1
dim o as object
o = selection.obj
alter object o info OBJ_INFO_SYMBOL, MakeSymbol(44, RED, 16)
update selection set obj = o
commit table Test

Burada en önemli kısım

alter object o info OBJ_INFO_SYMBOL, MakeSymbol(44, RED, 16)

satırıdır. Şimdi bu satıra yakından bakalım:

Alter Object komutu nesnelerin şeklini, konumunu veya grafik stilini değiştirmek için kullanılır. Biz burada nesnelerin stilini değiştireceğimiz için Alter Object komutunu Info cümleciği ile kullandık. Info cümleciğinin 2 parametresi var: object_info_code, new_info_value. Bu yüzden Info cümleciğinden sonraki ilk parametreyi noktasal bir katman kullandığımız için OBJ_INFO_SYMBOL olarak ayarladık. İkinci parametrede ise MakeSymbol() fonksiyonunu kullandık. MakeSymbol() fonksiyonu MapInfo’nun sembol kümesinden bir karakter kullanarak bir Symbol veri tipi döndürür. Sözdizimi şöyledir:

MakeSymbol(shape, color, size)

MakeSymbol() fonksiyonundaki 1. parametre oluşturacağımız sembolün kodunu, 2. parametre rengini, 3. parametre ise boyutunu ayarlamak için kullanılır.

Bu şekilde, SQL ile seçtiğimiz bir nokta nesnesinin stilini değiştirmiş olduk. Tabii ki SQL ile birden fazla nesne seçerek çoklu stil güncellemesi de yapabiliriz. Burada bir noktaya dikkat çekmek istiyorum: Bu şekilde yapılan stil güncellemesi bir style override değildir, diğer deyişle kalıcı bir güncellemedir. Bir diğer not: Stil güncellemesi uyguladığımız katmanda güncellemenin etkili olabilmesi için katmanın yalın halde olması yani mesela bir workspace ayarı ile style override yapılmamış olması gerekir. Eğer katman kontrolündeki Display Options penceresiyle style override uygulanmışsa yukarıdaki kodu çalıştırdığınızda stil güncellemesi yapılacak fakat style override ayarı bu stil güncellemesini ezdiği için haritada gösterilmeyecektir.

Advertisements
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: