Skip to main content

Map

Form üzerinde gömülü bir harita gösteren nesnedir. Üzerine işaretçi (marker) koyabilir, iki nokta arasında rota çizebilir ve kullanıcının seçtiği konumu saklayabilirsiniz.

Değer tipi: string

Seçilen konum, harita nesnesinin Value alanında metin olarak (koordinat) tutulur.

Ne zaman kullanılır?

Adres, teslimat noktası, şube konumu, arıza yeri gibi coğrafi bilgileri form üzerinde göstermek ve seçtirmek için kullanılır. Sadece düz adres metni isteyeceğiniz durumlarda bir TextBox yeterlidir; konumu harita üzerinde görsel olarak göstermek veya seçtirmek istediğinizde Map nesnesini tercih edin.

Tasarımcı özellikleri

Bir Map seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.

General

ÖzellikAçıklama
NameNesnenin koddaki adı (ör. Map1). Koddan bu adla erişirsiniz.
Field NameKonum değerinin veritabanında saklanacağı alanın adı.

Behavior

ÖzellikAçıklama
ProviderHarita sağlayıcısı (ör. Google). Hangi harita servisinin kullanılacağını belirler.
ApiKeyHarita sağlayıcısının istediği API anahtarı. Haritanın yüklenebilmesi için gereklidir.
TypeHarita türü (yol, uydu vb. görünüm).
CenterHaritanın açılışta ortalanacağı koordinat (enlem/boylam).
ZoomAçılıştaki yakınlaştırma seviyesi. Büyük değer daha yakın görünümdür.
AutoAdjustİşaretçiler varsa haritayı otomatik olarak hepsini kapsayacak şekilde ayarlar.
ControlsHarita üzerindeki zoom / tür gibi kontrollerin görünürlüğü.
MarkersHarita üzerine yerleştirilecek işaretçilerin listesi.
MarkerIconSrcİşaretçiler için kullanılacak özel simgenin yolu.
RoutesHarita üzerinde çizilecek rotaların listesi.
RouteModeRota modu; noktalar arası yol çiziminin nasıl yapılacağını belirler.
ReadOnlyHaritayı salt okunur yapar; kullanıcı konum seçemez.
RequiredKonum seçimini zorunlu yapar; boşsa form kaydedilmez.
TabIndexTab tuşuyla geçiş sırasını belirler.

Appearance

ÖzellikAçıklama
Visible / Client VisibleNesnenin görünürlüğü.
Enabled / Client EnabledNesnenin aktif olup olmadığı.
TitleNesnenin başlığı (çok dilli olabilir).
PlaceholderDeğer boşken görünen ipucu yazısı.
TextNesnenin metin değeri.
Text AlignYazının yatay hizası.

Olaylar

Bir nesne açılırken olaylar belirli bir sırayla tetiklenir; kullanıcı konum seçtiğinde de ayrı olaylar çalışır. Doğru kodu doğru olaya yazmak işinizi kolaylaştırır.

Açılış sırası: OnInitOnLoadOnRender

Kullanıcı seçim yaparken: OnTextChangingOnTextChanged, değer kesinleşince OnValueChangingOnValueChanged

Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda.

Sunucu olayları (Server)

OlayNe zaman çalışır
OnInitForm açılırken nesne oluşturulduğunda, en başta.
OnLoadOnInit'in hemen ardından, nesne yüklenince.
OnRenderNesne ekrana çizilirken.
OnTextChangingMetin değişmeden hemen önce.
OnTextChangedMetin değiştikten hemen sonra.
OnValueChangingSeçilen konum değişmeden hemen önce (iptal edilebilir).
OnValueChangedKullanıcı konumu kesinleştirdiğinde. En sık kullanılan olaydır.
OnValidatingForm doğrulanırken nesne değeri kontrol edilirken.

İstemci olayları (Client)

Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:

OlayNe zaman çalışır
OnDataLoadNesnenin verisi yüklendiğinde.
OnPreRenderNesne ekrana çizilmeden hemen önce.
OnClick / OnDoubleClickNesneye tıklanınca / çift tıklanınca.
OnPropertyChanging / OnPropertyChangedBir özellik kodla değiştirilmeden önce / sonra.
Olay parametreleri

OnValueChanging / OnTextChanging olaylarının parametresi (args TS, e C#) şunları taşır:

  • newValue / NewValue — girilmek istenen yeni değer
  • oldValue / OldValue — önceki değer
  • cancel / Canceltrue yapılırsa değişiklik iptal edilir (yalnızca Changing olaylarında)

Changed olaylarında cancel yoktur (değişiklik artık gerçekleşmiştir).

Kod örnekleri

Bir Map nesnesine üç yerden erişebilirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.

Form kodu (C#, sunucu)

Form kodunda nesneye doğrudan adıyla erişirsiniz. Seçili konum Value içinde metin olarak tutulur:

// Oku
string konum = Map1.Value.ToString();

// Yaz (koordinatı metin olarak set edin)
Map1.Value = "39.925533,32.866287";

Akış (Flow) kodu (C#, sunucu)

Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:

// Oku
string konum = Document1.Controls["Map1"].Value.ToString();

// Yaz
Document1.Controls["Map1"].Value = "39.925533,32.866287";

İstemci kodu (TypeScript, tarayıcı)

İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır (value, text):

this.Map1.value = "39.925533,32.866287";
this.Map1.text = "Ankara";
Konum nasıl saklanır?

Map nesnesinin değeri bir string'tir; genellikle "enlem,boylam" biçiminde koordinat tutar. Bu değeri başka bir alana yazarak adres çözümlemesinde veya raporda kullanabilirsiniz.

Örnek: konum seçimini doğrulama (OnValueChanging)

OnValueChanging seçilen konum kesinleşmeden hemen önce çalışır; istemediğiniz bir değeri burada iptal edebilirsiniz. Aşağıdaki örnekte boş konum seçimi engellenir.

İstemci (TypeScript):

async Map1_OnValueChanging(args: Controls.EventArgs.IPropertyChangingEventArgs<string>) {
if (args.newValue == "") {
args.cancel = true; // Boş konumu iptal eder
this.showMessage("Uyarı", "Lütfen harita üzerinden bir konum seçin.", "Validation");
}
}

Sunucu (C#):

void Map1_OnValueChanging(object sender, PropertyChangingEventArgs<string> e)
{
if (string.IsNullOrEmpty(e.NewValue))
{
e.Cancel = true;
ShowMessage("Uyarı", "Lütfen harita üzerinden bir konum seçin.",
Bimser.CSP.FormControls.RuleManager.AlertType.Validation);
}
}

İpuçları

  • Haritanın yüklenebilmesi için Provider ve geçerli bir ApiKey ayarlanmış olmalıdır; anahtar yoksa harita boş görünür.
  • Birden çok işaretçi gösterdiğinizde AutoAdjust özelliğini açın; harita hepsini kapsayacak şekilde otomatik ölçeklenir.
  • Sadece konumu göstermek, kullanıcının değiştirmesini istemiyorsanız ReadOnly özelliğini açın.
Tüm tasarımcı özellikleri (tam liste)

General: Name, Field Name

Behavior: Provider, ApiKey, Type, Center, Zoom, AutoAdjust, Controls, Markers, MarkerIconSrc, Routes, RouteMode, ReadOnly, Required, TabIndex

Appearance: Visible, Client Visible, Enabled, Client Enabled, Title, Placeholder, Text, Value, Text Align

Olaylar (Server): OnInit, OnLoad, OnRender, OnTextChanging, OnTextChanged, OnValueChanging, OnValueChanged, OnValidating

Olaylar (Client): OnInit, OnLoad, OnPreRender, OnRender, OnDataLoad, OnClick, OnDoubleClick, OnPropertyChanging, OnPropertyChanged, OnTextChanging, OnTextChanged, OnValueChanging, OnValueChanged