folder Tahribat.com Forumları
linefolder Delphi - Pascal
linefolder Delphide Harita Problemi



Delphide Harita Problemi

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek
    arkadaslar yapmak istedigim seyi soliim sonra buldugum mantıksız yoldan bahsedeceem umarım daha ii bi cozum gelir.
    elimizde bi harita var ve bunu delphide islemek istiyorum mesela her ulkenin sınırları belli bi ulkeye tıklanınca o ulkeyle ilgili veri gelecek.
    ulkeleri ayırmak icin buldugum yok mesela harita 3500*2000 buyuklugundeyse mınımum birim olarak 9 birimkare alıp haritayı adresler ve bi veri tabanında tutarım sonra tıklanan pixeli kontrol eder databaseden bulurum ama cok uzun bi islem bide veritabanı cozutabilir cunku kayıt sayısı fazla olur.
    bu probleme daha ii bi cozum onerirseniz cidden sevaba girersiniz..
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    luckystrike_ss
    luckystrike_ss's avatar
    Kayıt Tarihi: 10/Aralık/2003
    Erkek
    selam, ya ben de bi ara bole bisi lerle ugrasmistim bence her ulkenin ismini bir label olarak goster veya iclerine ulkeyi kapsicak sekilde bir bevel koy ve bundan sonra onlarin onclick veya dblclick olayina gerekli codu yaz bence bu daha bantikli olacaktir yormaz en azindan seni,
    yada shape objesini kullanarak ulkelerin sinirlarini birdaha ciz ve ondan sonra da transparent yaparak onclick olayi yarat
    kolay gelsin

    Bilgi Paylastikca Buyur
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    eergin06
    eergin06's avatar
    Kayıt Tarihi: 10/Ağustos/2002
    Erkek
    her ülkeyi farklı renklerde yap tıklanınca tıklanılan yerin rengini buldur o renge göre veritabanından kayıt buldur, veritabanını şifrele.. vs

    Zulm ile abad olanın Ahiri berbad olur
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek
    cok tesekkur ederim ufkumu actınız
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blackbird
    blackbird's avatar
    Kayıt Tarihi: 24/Aralık/2003
    Erkek
    Ülklerin üzerine Flat Buton ekle üzerince gelince tıklanacağı belli olur butona basınca Databese"arama yapma bile gerek yok çünkü hangi ülke olduğu bellidir. bilgileri sen istediğin gibi yansıtırsın..

    Çizmiş Ruhu Hisset...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Sana profosyonel olarak bole bişe nasi proramlanir setwindowrgn(form1.handle,RegionHandle,true);anlatim.

    Al mesela sana bi çokgen yarattım türkiyeye azcik benzien (cografyam ii deildir kusura bakma)

    bu örnekte regionhandle adlı bi çokgen içinde türkie haritasinin tipini barındırıyor.

    setwindowrgn(form1.handle,RegionHandle,true);

    komutu ile de forma bu çokgenin şeklini verdirdim.

    senin yapman gereken tıklanan noktanın bu region icinde olup olmadiini bulman bunun icinde azcik mantik ve az biraz matematik gerekcek :)

    ben sadece alanlari birbirinden ayirman icin nasi cokgen yaratirsin onun kodunu verdim. her noktanin kordinatini deneyerek vermene gerek yok bunun icin ayri bi prog yazabilirsin.

    procedure TForm1.FormShow(Sender: TObject);
    var regionhandle:integer; area:array[0..46] of tpoint;
    begin
    area[0].x :=105; area[0].y :=130 ;
    area[1].x :=142; area[1].y :=108 ;
    area[2].x :=116; area[2].y :=44 ;
    area[3].x :=135; area[3].y :=31 ;
    area[4].x :=212; area[4].y :=46 ;
    area[5].x :=364; area[5].y :=48 ;
    area[6].x :=450; area[6].y :=68 ;
    area[7].x :=504; area[7].y :=96 ;
    area[8].x :=528; area[8].y :=118 ;
    area[9].x :=536; area[9].y :=157 ;
    area[10].x :=537; area[10].y :=207 ;
    area[11].x :=516; area[11].y :=227 ;
    area[12].x :=500; area[12].y :=237 ;
    area[13].x :=457; area[13].y :=247 ;
    area[14].x :=410; area[14].y :=245 ;
    area[15].x :=376; area[15].y :=227 ;
    area[16].x :=350; area[16].y :=213 ;
    area[17].x :=336; area[17].y :=207 ;
    area[18].x :=317; area[18].y :=203 ;
    area[19].x :=279; area[19].y :=200 ;
    area[20].x :=244; area[20].y :=201 ;
    area[21].x :=216; area[21].y :=201 ;
    area[22].x :=170; area[22].y :=168 ;
    area[23].x :=157; area[23].y :=151 ;
    area[24].x :=146; area[24].y :=136 ;
    area[25].x :=120; area[25].y :=157 ;
    area[26].x :=131; area[26].y :=194 ;
    area[27].x :=148; area[27].y :=208 ;
    area[28].x :=136; area[28].y :=237 ;
    area[29].x :=116; area[29].y :=260 ;
    area[30].x :=108; area[30].y :=281 ;
    area[31].x :=113; area[31].y :=309 ;
    area[32].x :=138; area[32].y :=328 ;
    area[33].x :=168; area[33].y :=346 ;
    area[34].x :=199; area[34].y :=360 ;
    area[35].x :=278; area[35].y :=356 ;
    area[36].x :=308; area[36].y :=367 ;
    area[37].x :=351; area[37].y :=391 ;
    area[38].x :=397; area[38].y :=368 ;
    area[39].x :=463; area[39].y :=371 ;
    area[40].x :=499; area[40].y :=400 ;
    area[41].x :=537; area[41].y :=422 ;
    area[42].x :=608; area[42].y :=424 ;
    area[43].x :=687; area[43].y :=354 ;
    area[44].x :=675; area[44].y :=219 ;
    area[45].x :=711; area[45].y :=82 ;
    area[46].x :=621; area[46].y :=2 ;
    regionhandle:=CreatePolygonRgn(area,47,ALTERNATE);


    end;

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek
    holy nin cozumu profesyonel ama biras uygulaması zor sanki her eyalet icin bu kodla cokgen yarattım diyelim bu durumda bosluk olmadan bunnarı birlestirmem mi gerekecek.
    bide bu xy leri otomatik olarak bi data dosyasından cevirmenin bi yolu olabilirmi mesela ben bi bmp yapsam harita bi progla bu bmp cevrilirmi bu sekilde koordinatlar..
    tesekkur ederim ilgilendiginiz icin
  8. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek
    Hoja attim sana vektorel cokgen cizici ve yorumlayici kod ve ayrica icinde bi noktanin cokgenin icinde kalan alanda olup olmadini veren bi de fonksion kodum ki tikladiin alanin hangisi oldunu bulasin. :)

    kodlariyla attim hoja insalla isine yarar

    aklıma şimdi bi başka çözüm geldi ama :) zaten hep zoru yapinca gelir bana kolay cozumler:)

    Amatör çözüm ariyosan:
    ülkeleri bmp yapsan imgaelara koysan, arkaplani mor falan gibi kullanmadiin bi renk yapsan, ozelliini transparent yapsan, istediin gibi dizsen ülkeleri olmazmiydi?

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  9. KısayolKısayol reportŞikayet pmÖzel Mesaj
    knoppix
    knoppix's avatar
    Kayıt Tarihi: 29/Haziran/2003
    Erkek
    veritabani ile ugrasirsan aciiip kasarsin.

    hiiiiiiiiçç gerek yok.
    sadece .ini lere bagla olsun bitsin...
    ülkeler ile ilgili bilgileri textlere bilem baglasan daha ii olur.. ne gerek var iki saat ugrascan db ile filan...
  10. KısayolKısayol reportŞikayet pmÖzel Mesaj
    blackbird
    blackbird's avatar
    Kayıt Tarihi: 24/Aralık/2003
    Erkek
    Konu X Y olayına varacak kadar zor bir olay değil aslında Delphi nin kendi bileşenleriyle bu kolayca halledilebilir yani hiçbirşeyin kontrol dışına çıkmaması sağlanır...

    Çizmiş Ruhu Hisset...
  11. KısayolKısayol reportŞikayet pmÖzel Mesaj
    hellcaraxe
    hellcaraxe's avatar
    Kayıt Tarihi: 13/Ekim/2003
    Erkek
    holly harbi deli oturdu gonderdigin kodlar. kendime gore revize ettim mukemmel oldu bu bana farklı harita yaratmada muthis bi kolaylık sagladı ayrıca sunuda soliim poligon yontemi kesinlikle bmp yapmaktan kolay. burda poligonun kırılma noktalarını dosyalıyom sona istedigim gibi yenideb ciziyom. bu farklı haritalar yaratmamda deli kolaylık saglar. cok saol kodlar icin muthis oldu en onemli kısmı asmıs oldum sayende.
    yardım etmek isteyen tum arkadaslarada tesekkur ederim
Toplam Hit: 1347 Toplam Mesaj: 11