Juni 17, 2008

MEMBUAT BENTUK HEXAGONAL PADA MAPINFO DENGAN MAPBASIC

Kegunaan dari program ini banyak sekali diantarannya mengngambarkan coverage dari sutau area,untuk membuat game dan lain-lain.
Sebagai ilustrasi berikut akan disajikan sebuah program MapBasic yang membaca koordinat-koordinat dari file teks, menyimpannya ke dalam format table Mapinfo yang bertipe poligon (hexagonal),
dan kemudian menampilkannya di dalam sebuah map window dengan sistem koordinat proyeksi peta.

Type Poligon
Id As Integer
Nama As String
JmlNode As Integer
End Type

Type pNode
Absis As Float
Ordinat As Float
End Type

Dim oWil (10) As Poligon
Dim oNode (10) As pNode
Dim oPoligon As Object
Dim Idx, IdMapWindow, i As Integer
Dim NamaFile, NamaTable, NamaFileTable As String

NamaTable = "Wilayah"
NamaFileTable = "c:\data_tab\wil_data.TAB"
NamaFile = "c:\data_tab\wil_data.txt"

Commit Table NamaTable
Browse * From NamaTable
Map From NamaTable
IdMapWindow = FrontWindow()
Set Map Window IdMapWindow Zoom Entire Display Position Distance Units "M"
Distance Type Cartesian XY Units "M" Display Decimal On
CoordSys Earth
Projection 8, 104, "M", 105.0, 0.0, 0.9996, 500000, 10000000
keluar:
ada tiga hal yang harus diperhatikan ketika kita menjalankan program ini yang pertama kita harus memasukkan koordinatnya terlebih dahulu kemudian menyimpannya didalam folder yang sesuai dengan yang ada di dalam program diatas.
contoh tabel koordinatnya adalah sebagai berikut:

WIL_DATA.TXT

1321, "BTS_1", 7
110.7245475, -7.958088
110.6910912, -8.016035918
110.6241788, -8.016035918
110.5907225, -7.958088
110.6241788, -7.900140082
110.6910912, -7.900140082
110.7245475, -7.958088
1322, "BTS_2", 7
110.7245475, -7.842192164
110.6910912, -7.900140082
110.6241788, -7.900140082
110.5907225, -7.842192164
110.6241788, -7.784244246
110.6910912, -7.784244246
110.7245475, -7.842192164
1323, "BTS_3", 7
110.579164, -7.819964122
110.5654037, -7.84379754
110.5378833, -7.84379754
110.524123, -7.819964122
110.5378833, -7.796130704
110.5654037, -7.796130704
110.579164, -7.819964122
1325, "BTS_u1", 7
110.3847472, -7.7921829
110.3785865, -7.802853417
110.3662653, -7.802853417
110.3601046, -7.7921829
110.3662653, -7.781512383
110.3785865, -7.781512383
110.3847472, -7.7921829
1326, "BTS_u2", 7
110.3847472, -7.770841866
110.3785865, -7.781512383
110.3662653, -7.781512383
110.3601046, -7.770841866
110.3662653, -7.760171349
110.3785865, -7.760171349
110.3847472, -7.770841866
1327, "BTS_u3", 7
110.403229, -7.781512383
110.3970684, -7.7921829
110.3847472, -7.7921829
110.3785865, -7.781512383
110.3847472, -7.770841866
110.3970684, -7.770841866
110.403229, -7.781512383
1328, "BTS_u4", 7
110.4217109, -7.7921829
110.4155503, -7.802853417
110.403229, -7.802853417
110.3970684, -7.7921829
110.403229, -7.781512383
110.4155503, -7.781512383
110.4217109, -7.7921829
1329, "BTS_u5", 7
110.403229, -7.802853417
110.3970684, -7.813523934
110.3847472, -7.813523934
110.3785865, -7.802853417
110.3847472, -7.7921829
110.3970684, -7.7921829
110.403229, -7.802853417
1330, "BTS_u6", 7
110.3847472, -7.813523934
110.3785865, -7.824194451
110.3662653, -7.824194451
110.3601046, -7.813523934
110.3662653, -7.802853417
110.3785865, -7.802853417
110.3847472, -7.813523934
1331, "BTS_u7", 7
110.3662653, -7.802853417
110.3601046, -7.813523934
110.3477834, -7.813523934
110.3416228, -7.802853417
110.3477834, -7.7921829
110.3601046, -7.7921829
110.3662653, -7.802853417
1332, "BTS_u8", 7
110.3477834, -7.7921829
110.3416228, -7.802853417
110.3293015, -7.802853417
110.3231409, -7.7921829
110.3293015, -7.781512383
110.3416228, -7.781512383
110.3477834, -7.7921829
1333, "BTS_u9", 7
110.3662653, -7.781512383
110.3601046, -7.7921829
110.3477834, -7.7921829
110.3416228, -7.781512383
110.3477834, -7.770841866
110.3601046, -7.770841866
110.3662653, -7.781512383
1334, "BTS_su1", 7
110.5378833, -7.84379754
110.524123, -7.867630958
110.4966026, -7.867630958
110.4828423, -7.84379754
110.4966026, -7.819964122
110.524123, -7.819964122
110.5378833, -7.84379754
1335, "BTS_su2", 7
110.5378833, -7.796130704
110.524123, -7.819964122
110.4966026, -7.819964122
110.4828423, -7.796130704
110.4966026, -7.772297286
110.524123, -7.772297286
110.5378833, -7.796130704

Setelah tabel koordinat dalam notepad tadi selesai kita simpan dalam notepad kemudian kita buka dalam MapInfo sehingga formatnya menjadi .*TAB

Setelah program dikompilasi maka akan terjadi bentuk hexagonal dengan jumlah yang sesuai dengan jumlah koordinat yang kita tuliskan.

0 komentar: