Mapbasic Başlangıç

Kategori: MapBasic - MapInfo
Tarih: 5th Aralık 2011

Bilmeyenler için söylüyorum MapBasic harita programlama dilidir. MapInfo CBS yazılımını bu dille programlayabilirsiniz. Başlangıç aşamasında işe yarayacak 2 program anlatacağım.

1. program koyyolu_kkno kolonunu kontrol ediyor. Kolon içinde “-” karakterini bulursa bunun 2. derece bir yol olduğunu anlayıp koyyolu_derece kolonunu FALSE yapıyor; değilse TRUE yapıyor. Bi zaman 3000 kaydı teker teker incelememek için yazmıştım.

include "mapbasic.def"
declare sub main
sub main
   dim tabloAd as string
   tabloAd = "koyyolu_boslarsilindi_" 'Tablo adı
   select * from tabloAd into tablo
   fetch first from tablo
   dim i as integer
   i=1
   do while not eot (tablo)
	if InStr(1, tablo.koyyolu_kkno, "-") <> 0 then
		update tablo set koyyolu_derece = 0 where Rowid=i 'tablo.derece = "F"
	else
		update tablo set koyyolu_derece = 1 where Rowid=i 'tablo.derece = "T"
	end if
	i = i+1
	fetch next from tablo	
   loop	
end sub

2. Program biraz daha komplex. İki tane grafik verili koyyolu ve ilcesiniri tablom var. koyyolu tablosu çizgi, ilcesiniri tablom alan verisi tutuyor. Bir excel tablosundada koyyollarının grup yada münferit bilgilerini tutuyorum. Program istediğimiz ilçenin alanları içindeki yolları buluyor sonra her bir yol için excel tablosundaki gurup yada münferit bilgisini alıp ilgili kolana giriyor. Bu programıda aynı şekilde yaklaşık 3000 kaydı teker teker incelememek için yazmıştım.


include "mapbasic.def"

declare sub main
declare function verigetir(ByVal kkno as string) as integer

global bilgikkno(1), bilgimunferit(1) as string

function verigetir(ByVal kkno as string) as integer
	dim k as integer
	for k=1 to 71
		if bilgikkno(k) = kkno then
if bilgimunferit(k) = "MÜNFERİT" then
verigetir = 1
			else
				verigetir = 0
			end if
		end if
	next
end function
sub main
	dim i as integer
	select * from tavsanli into bilgi

	redim bilgikkno(tableinfo(bilgi, tab_info_nrows))
	redim bilgimunferit(tableinfo(bilgi, tab_info_nrows))

	fetch first from bilgi

i=1
	do while not eot(bilgi)
		bilgikkno(i) = bilgi.kkno
		bilgimunferit(i) = bilgi.munferit

		i = i+1

	        fetch next from bilgi
	loop
        select koyyolu_boslarsilindi_.obj, koyyolu_boslarsilindi_.koyyolu_tanimi, koyyolu_boslarsilindi_.koyyolu_derece, koyyolu_boslarsilindi_.koyyolu_kkno, koyyolu_boslarsilindi_.koyyolu_munferit from koyyolu_boslarsilindi_, ilcesiniri where ilcesiniri.obj Contains koyyolu_boslarsilindi_.obj and ilcesiniri.IlceAdi="Tavşanlı" into tablo

	fetch first from tablo

	dim k as integer
	do while not eot(tablo)
		if tablo.koyyolu_derece then
			update tablo set koyyolu_munferit = verigetir(tablo.koyyolu_kkno) where  Rowid=k
		end if

		k = k+1

		fetch next from tablo
	loop
end sub
Optimization WordPress Plugins & Solutions by W3 EDGE