Harita İşleme
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 35
- Kayıt: 02 May 2009 04:50
Harita İşleme
Merhaba Arkadaşlar
Yapacağım bir projede harita işleme yapmam lazım.
Şöyleki;
Sisteme bir harita yüklüyecekler Ölçüleri hiç önemli değil
Yükleyecekleri bu harita üzerinde mekan tanımlaması yapacaklar. Mekanı kaydederken Haritanın üzerinde Şurada şeklinde bir işaret konulacak Kaydet dediklerinde sistem bunun koordinatlarını
kaydedecek daha sonra bunu çıktı olarak alabilecekler
Benim sizlerden öğrenmek istediğim şu
Ben haritayı yükleticem fakat
1 - Harita üzerinde işaretlemeyi nasıl yaparım
2 - İşaretlemenin Koordinatlarını resme göre nasıl alırım.
3 - Bunu daha sonra harita üzerinde görmek istediklerinde nasıl gösteririm
Direk kod istemiyorum. Google da nasıl arama yapacağımı da kelime olarak tam kestiremedim. Bana mantığı hakkında bilgi verirseniz
yada izlemem gereken yol hakkında gerisini ben halletmeye çalışırım..
Yardımlarınız için şimdiden teşekkürler
Yapacağım bir projede harita işleme yapmam lazım.
Şöyleki;
Sisteme bir harita yüklüyecekler Ölçüleri hiç önemli değil
Yükleyecekleri bu harita üzerinde mekan tanımlaması yapacaklar. Mekanı kaydederken Haritanın üzerinde Şurada şeklinde bir işaret konulacak Kaydet dediklerinde sistem bunun koordinatlarını
kaydedecek daha sonra bunu çıktı olarak alabilecekler
Benim sizlerden öğrenmek istediğim şu
Ben haritayı yükleticem fakat
1 - Harita üzerinde işaretlemeyi nasıl yaparım
2 - İşaretlemenin Koordinatlarını resme göre nasıl alırım.
3 - Bunu daha sonra harita üzerinde görmek istediklerinde nasıl gösteririm
Direk kod istemiyorum. Google da nasıl arama yapacağımı da kelime olarak tam kestiremedim. Bana mantığı hakkında bilgi verirseniz
yada izlemem gereken yol hakkında gerisini ben halletmeye çalışırım..
Yardımlarınız için şimdiden teşekkürler
Re: Harita İşleme
belki işinize yarayabilir.
viewtopic.php?f=2&t=27149&p=151689&hilit=maps#p151689
viewtopic.php?f=2&t=27149&p=151689&hilit=maps#p151689
En son Lost Soul tarafından 06 May 2010 12:06 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Re: Harita İşleme
tam olarak içeriği hakkında bilgim yok ama şurada konuşulmuştu koordinat vs. hakkında bilgi verebilir.
http://delphiturkiye.com/forum/viewtopi ... itas%C4%B1
http://delphiturkiye.com/forum/viewtopi ... itas%C4%B1
UWESIS CORPORATION
-
- Üye
- Mesajlar: 35
- Kayıt: 02 May 2009 04:50
Re: Harita İşleme
Google da Delphi resim işleme diye aradım fakat yeterli bilgi bulamadım
Arkadaşlar ben TImage içine onu koyucam fakat ben ona tıkladığımda o resmin üzerine istediğim şekli nasıl koyucak
yada onun koordinatlarını nasıl alıcam..
Google Map örneği vermişsiniz. Benim de aklıma ilk o geldi fajat bu haritayı çiziim olarak yüklüyecekler
Kafam çok takıldı.. Çözüm bulamıyorum bir türlü
Arkadaşlar ben TImage içine onu koyucam fakat ben ona tıkladığımda o resmin üzerine istediğim şekli nasıl koyucak
yada onun koordinatlarını nasıl alıcam..
Google Map örneği vermişsiniz. Benim de aklıma ilk o geldi fajat bu haritayı çiziim olarak yüklüyecekler
Kafam çok takıldı.. Çözüm bulamıyorum bir türlü
Re: Harita İşleme
Bu harita ölçekli bir harita olacaksa (google maps veya herhangi bir kaynaktan alınan harita) GPS koordinat sistemini anlatayım. Yoksa mevzu sadece bir resim üzerine konan bir nesne ise ve o nesnenin yerinin hatırlanarak yeniden çizilmesi ise o daha basit bir işlemdir ona göre anlatayım.
-
- Üye
- Mesajlar: 35
- Kayıt: 02 May 2009 04:50
Re: Harita İşleme
Şimdi Olay Şu
Haritada bir noktada tanımlama yapılacak
yani şurası bir bina gibi
Daha sonra bu harita gösterildiğinde nokta da daha önce kaydedildiği yerde gösterilecek
Ölçekleme şundan dolayı lazım olabilir
Harita detaylı ve büyük tanımlanacak
Resim büyütüls de küçültülse de noktanın nerede olduğunu bilmek gerekir. Yani Tam adresi her türlü göstermesi gerekir.
Çok iyi anlatamadım mı :S
Haritada bir noktada tanımlama yapılacak
yani şurası bir bina gibi
Daha sonra bu harita gösterildiğinde nokta da daha önce kaydedildiği yerde gösterilecek
Ölçekleme şundan dolayı lazım olabilir
Harita detaylı ve büyük tanımlanacak
Resim büyütüls de küçültülse de noktanın nerede olduğunu bilmek gerekir. Yani Tam adresi her türlü göstermesi gerekir.
Çok iyi anlatamadım mı :S
Re: Harita İşleme
Resmin büyüme ve küçülme oranları kontrolün altında olduğu sürece sorun yok.
Yapacağın işlem çok basit.
Bir TImage nesnesine (adı Image1 olsun...) bir haritayı Bitmap image olarak eklediniz. Form üzerinde büyüyüp küçüldükçe değişen bir Image1 olmasına rağmen sizin zaten biliyor olduğunuz boyutlar ( Image1.Width := 100 olduğunu ve Image1.Picture.Bitmap.Width := 300 olduğunu düşünürsek ve TImage nesnesinin stretch özelliği true ise ) senin yapman gereken işlem, Image1'in OnMouseUp olayındaki X, Y koordinatını en geniş ve orjinal olan Birmap'in Width ve height değerine dönüştürüp saklamak olacaktır.
Fiziksel bir örnek gerekirse örnek proje ve exe halini bu mesaja ekledim.

resim oranı bile değişse noktalarımız aynı konuma değerlendirip konulacaktır.

örnekteki resimler bunun içindir.
Yapacağın işlem çok basit.
Bir TImage nesnesine (adı Image1 olsun...) bir haritayı Bitmap image olarak eklediniz. Form üzerinde büyüyüp küçüldükçe değişen bir Image1 olmasına rağmen sizin zaten biliyor olduğunuz boyutlar ( Image1.Width := 100 olduğunu ve Image1.Picture.Bitmap.Width := 300 olduğunu düşünürsek ve TImage nesnesinin stretch özelliği true ise ) senin yapman gereken işlem, Image1'in OnMouseUp olayındaki X, Y koordinatını en geniş ve orjinal olan Birmap'in Width ve height değerine dönüştürüp saklamak olacaktır.
Fiziksel bir örnek gerekirse örnek proje ve exe halini bu mesaja ekledim.

resim oranı bile değişse noktalarımız aynı konuma değerlendirip konulacaktır.

örnekteki resimler bunun içindir.
Kod: Tümünü seç
Var
xBitmap : TBitmap;
procedure TForm1.btTemizleClick(Sender: TObject);
begin
Image1.Picture.Graphic := xBitmap;
end;
procedure TForm1.btDoldurClick(Sender: TObject);
Var
i : Integer;
x, y : Integer;
Satir : String;
x1, y1 : Integer;
begin
for i := 0 to ListBox1.Count - 1 do begin
Satir := ListBox1.Items[i];
x := StrToInt( Copy(Satir, 1, Pos(',', Satir) -1) );
System.Delete(Satir, 1, Pos(',', Satir));
y := StrToInt( Copy(Satir, 1, Pos('.', Satir) -1) );
x1 := Trunc( X * (Image1.Width / Image1.Picture.Bitmap.Width ) );
y1 := Trunc( Y * (Image1.Height / Image1.Picture.Bitmap.Height) );
with PaintBox1.Canvas do begin
Brush.Style := bsSolid;
Brush.Color := clYellow;
Pen.Color := clBlue;
Pen.Width := 3;
Rectangle(x1-5, y1-5, x1+5, y1+5);
end;
end;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ListBox1.Items.SaveToFile( ChangeFileExt(Application.Exename, '_Koordinat.TXT') );
xBitmap.Free;
end;
procedure TForm1.FormResize(Sender: TObject);
begin
btTemizle.Click;
Application.ProcessMessages;
btDoldur.Click;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
xBitmap := TBitmap.Create;
xBitmap.Assign( Image1.Picture.Bitmap );
If FileExists( ChangeFileExt(Application.Exename, '_Koordinat.TXT') )
then ListBox1.Items.LoadFromFile( ChangeFileExt(Application.Exename, '_Koordinat.TXT') );
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
if ListBox1.ItemIndex >= 0 then ListBox1.Items.Delete(ListBox1.ItemIndex);
FormResize(Nil);
end;
procedure TForm1.PaintBox1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
Var
x1, y1 : Integer;
begin
x1 := Trunc( X / (Image1.Width / Image1.Picture.Bitmap.Width ) );
y1 := Trunc( Y / (Image1.Height / Image1.Picture.Bitmap.Height) );
Form1.Caption := Format('X: %d, Y:%d', [x1, y1]);
end;
procedure TForm1.PaintBox1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Var
x1, y1 : Integer;
begin
x1 := Trunc( X / (Image1.Width / Image1.Picture.Bitmap.Width ) );
y1 := Trunc( Y / (Image1.Height / Image1.Picture.Bitmap.Height) );
ListBox1.Items.Add( Format('%d,%d.', [ X1, Y1]) );
FormResize(Nil);
end;
- Dosya ekleri
-
- HaritaKoordinat.rar
- (234.62 KiB) 286 kere indirildi
-
- Üye
- Mesajlar: 35
- Kayıt: 02 May 2009 04:50
Re: Harita İşleme
Örneğiniz yapmak istediğime çok yakın bir konu bunun için çok teşekkür ederim
Olayı biraz daha genişletirsek
Google map deki olay gibi
Ben bunu ( İnternet Ortamında IFRAME denildiği için öyle söylüyorum ) iframe içine koyarak resmi sağa sola kaydırarak uygun gördüğüm yere o noktayı koymak istiyorum.
Tabii zoom in/out gibi özellikler olacağı gibi bu resim o iframe içinde sağa sola da çekilecek
İşte ben bu durumda karışıyorum
Dediğiniz yöntem Mouse X,Y alara çok başarılı çalışıyor
Peki iframe içindeki resimde bu koordinatı nasıl yapcas
Olayı biraz daha genişletirsek
Google map deki olay gibi
Ben bunu ( İnternet Ortamında IFRAME denildiği için öyle söylüyorum ) iframe içine koyarak resmi sağa sola kaydırarak uygun gördüğüm yere o noktayı koymak istiyorum.
Tabii zoom in/out gibi özellikler olacağı gibi bu resim o iframe içinde sağa sola da çekilecek
İşte ben bu durumda karışıyorum
Dediğiniz yöntem Mouse X,Y alara çok başarılı çalışıyor
Peki iframe içindeki resimde bu koordinatı nasıl yapcas
Re: Harita İşleme
dediğin için çözüm bu şekilde.@morphine39 yazdı:Arkadaşlar ben TImage içine onu koyucam fakat ben ona tıkladığımda o resmin üzerine istediğim şekli nasıl koyucak
yada onun koordinatlarını nasıl alıcam..
Google Map örneği vermişsiniz. Benim de aklıma ilk o geldi fajat bu haritayı çiziim olarak yüklüyecekler
Kafam çok takıldı.. Çözüm bulamıyorum bir türlü
Şimdi de IFrame demişsin ki bu durumda GoogleMaps API ile çalışmak zorundasın. Kendi projemde GoogleMAPS için IFRAME içindeki kadarlık kısmı kendi yazılımıma aktarıp üzerinde öyle çalışıyorum. Böylece Offline ( sahada çalışırken ) harita ile ilgili sıkıntı yaşamıyorum

