Şekiller

Platformu seçin: Android iOS JavaScript

Sabit kırmızı çizgili harita

Android için Google Haritalar API'sı, bunları uygulamanıza göre özelleştirmek için haritalarınıza şekil eklemenin basit yollarını sunar.

  • Polyline istediğiniz şekilde şekil oluşturabilen ve haritadaki yolları ve rotaları işaretlemek için kullanılabilen bir dizi bağlı çizgi segmentidir.
  • Polygon, haritadaki alanları işaretlemek için kullanılabilecek kapalı bir şekildir.
  • Circle, Dünya üzerindeki bir dairenin harita üzerinde çizilen coğrafi olarak doğru bir tahminidir.

Tüm bu şekiller için çeşitli özellikler değiştirerek bunların görünümünü özelleştirebilirsiniz.

Kod örnekleri

Alanları ve rotaları temsil eden poligonlar ve çoklu çizgiler eklemeyle ilgili eğitim, basit bir Android uygulaması için tüm kodu içerir.

Buna ek olarak, GitHub'daki ApiDemos deposu şekillerin ve özelliklerinin kullanımını gösteren örnekler içerir:

Çoklu Çizgiler

Polyline sınıfı, harita üzerinde bir dizi bağlı çizgi segmenti tanımlar. Polyline nesnesi, bir dizi LatLng konumdan oluşur ve bu konumları belirli bir sırayla bağlayan bir dizi satır segmenti oluşturur.

Bu videoda, harita üzerindeki bir yolu çizmek için çoklu çizgiler kullanarak kullanıcılarınızın gidecekleri yere ulaşmalarına nasıl yardımcı olabileceğinize dair fikir verilmektedir.

Çoklu Çizgi oluşturmak için önce bir PolylineOptions nesnesi oluşturun ve bu nesneye nokta ekleyin. Noktalar yeryüzündeki bir noktayı temsil eder ve LatLng nesnesi olarak ifade edilir. Çizgi segmentleri, noktalar arasında PolylineOptions nesnesine eklenme sırasına göre çizilir.

PolylineOptions nesnesine puan eklemek için PolylineOptions.add() işlevini çağırın. Bu yöntemin değişken sayıda parametre aldığına dikkat edin. Böylece tek seferde birden çok nokta ekleyebilirsiniz (puanlar listede zaten varsa PolylineOptions.addAll(Iterable<LatLng>) çağrısı da yapabilirsiniz).

Ardından, GoogleMap.addPolyline(PolylineOptions) çağırarak çoklu çizgiyi bir haritaya ekleyebilirsiniz. Yöntem, çoklu çizgiyi daha sonra değiştirebileceğiniz bir Polyline nesnesi döndürür.

Aşağıdaki kod snippet'i bir haritaya nasıl dikdörtgen ekleneceğini gösterir:

Java


// Instantiates a new Polyline object and adds points to define a rectangle
PolylineOptions polylineOptions = new PolylineOptions()
    .add(new LatLng(37.35, -122.0))
    .add(new LatLng(37.45, -122.0))  // North of the previous point, but at the same longitude
    .add(new LatLng(37.45, -122.2))  // Same latitude, and 30km to the west
    .add(new LatLng(37.35, -122.2))  // Same longitude, and 16km to the south
    .add(new LatLng(37.35, -122.0)); // Closes the polyline.

// Get back the mutable Polyline
Polyline polyline = map.addPolyline(polylineOptions);

      

Kotlin


// Instantiates a new Polyline object and adds points to define a rectangle
val polylineOptions = PolylineOptions()
    .add(LatLng(37.35, -122.0))
    .add(LatLng(37.45, -122.0)) // North of the previous point, but at the same longitude
    .add(LatLng(37.45, -122.2)) // Same latitude, and 30km to the west
    .add(LatLng(37.35, -122.2)) // Same longitude, and 16km to the south
    .add(LatLng(37.35, -122.0)) // Closes the polyline.

// Get back the mutable Polyline
val polyline = map.addPolyline(polylineOptions)

      

Dikdörtgen, aşağıda gösterildiği gibi haritada görünür:

Dikdörtgen çoklu çizgili harita

Ekledikten sonra çoklu çizginin şeklini değiştirmek için Polyline.setPoints() yöntemini çağırabilir ve çoklu çizgi için yeni bir nokta listesi sağlayabilirsiniz.

Çoklu çizginin görünümünü hem haritaya eklemeden önce hem de haritaya eklendikten sonra özelleştirebilirsiniz. Daha fazla bilgi için aşağıdaki görünümleri özelleştirme bölümüne bakın.

Çoklu çizgi özelleştirme

Çoklu çizgilerin görünümünü özelleştirmenin birkaç yolu vardır:

  • Çok renkli çoklu çizgiler çoklu çizgi segmentlerini farklı renklere ayarlar.
  • Kademeli çoklu çizgiler, bir çoklu çizgiyi iki renk gradyanı kullanarak renklendirir.
  • Eşlenen çoklu çizgiler, tekrarlanan bit eşlemleri kullanarak bir çoklu çizginin stilini belirler.

Çoklu Çizgi Özelleştirmeleri'ni kullanmak istiyorsanız Android için Haritalar SDK'sının 18.1.0 veya sonraki bir sürümünü kullanmanız ve Android için en son Haritalar SDK'sını kullanmanız gerekir.

Çok renkli çoklu çizgi oluşturma

Çok renkli çoklu çizgili harita

Bir çoklu çizginin bölümlerini tek tek renklendirmek için aralıkları kullanabilir ve bunları StyleSpan nesneleri oluşturup addSpan() veya addSpans() yöntemlerini kullanarak PolylineOptions öğesine ekleyebilirsiniz. Dizideki her öğe varsayılan olarak, ilgili satır segmentinin rengini belirler. Aşağıdaki örnekte, kırmızı ve yeşil segmentli bir çoklu çizgi oluşturmak için segment renklerinin ayarlanması gösterilmektedir:

Java


Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(Color.RED))
        .addSpan(new StyleSpan(Color.GREEN)));

      

Kotlin


val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(StyleSpan(Color.RED))
        .addSpan(StyleSpan(Color.GREEN))
)

      

Gradyan çoklu çizgisi oluşturma

Gradyan çoklu çizgili harita

Fırçanın başlangıç ve bitiş renklerini belirtmek için bir 32 bit alfa-kırmızı-mavi (ARGB) tam sayı belirterek bir renk geçişi tanımlayabilirsiniz. PolylineOptions.addSpan() çağırarak bu özelliği şeklin seçenekler nesnesine ayarlayın. Aşağıdaki örnekte, Woodland Park Hayvanat Bahçesi'nden Kirkland, WA'ya kırmızı-sarı gradyan çoklu çizginin nasıl oluşturulacağı gösterilmektedir.

Java


Polyline line = map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(new StyleSpan(StrokeStyle.gradientBuilder(Color.RED, Color.YELLOW).build())));

      

Kotlin


val line = map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(
            StyleSpan(
                StrokeStyle.gradientBuilder(
                    Color.RED,
                    Color.YELLOW
                ).build()
            )
        )
)

      

Damgalı çoklu çizgi oluşturma

Damgalı çoklu çizgili harita

Çoklu çizginin görünümünü tekrar eden bit eşlem dokusuna ayarlayabilirsiniz. Bunu yapmak için bir StampStyle/TextureStyle oluşturun ve ardından burada gösterildiği gibi PolylineOptions.addSpan() çağrısı yaparak şeklin seçenekler nesnesinde bu özelliği ayarlayın:

Java


StampStyle stampStyle =
        TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build();
StyleSpan span = new StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build());
map.addPolyline(new PolylineOptions()
        .add(new LatLng(47.6677146,-122.3470447), new LatLng(47.6442757,-122.2814693))
        .addSpan(span));

      

Kotlin


val stampStyle =
    TextureStyle.newBuilder(BitmapDescriptorFactory.fromResource(R.drawable.walking_dot)).build()
val span = StyleSpan(StrokeStyle.colorBuilder(Color.RED).stamp(stampStyle).build())
map.addPolyline(
    PolylineOptions()
        .add(LatLng(47.6677146, -122.3470447), LatLng(47.6442757, -122.2814693))
        .addSpan(span)
)

      

Çoklu çizgi etkinlikleri

Çoklu çizgiler varsayılan olarak tıklanabilir değildir. Polyline.setClickable(boolean) yöntemini çağırarak tıklanabilirliği etkinleştirebilir ve devre dışı bırakabilirsiniz.

Tıklanabilir bir çizgi üzerindeki etkinlikleri tıklamak için OnPolylineClickListener kullanın. Bu dinleyiciyi haritada ayarlamak için GoogleMap.setOnPolylineClickListener(OnPolylineClickListener) numaralı telefonu arayın. Bir kullanıcı bir çoklu çizgiyi tıkladığında onPolylineClick(Polyline) geri çağırması alırsınız.

Poligonlar

Polygon nesneleri, sıralı bir dizideki bir dizi koordinattan oluşan Polyline nesnelerine benzer. Ancak, çokgenler açık uçlu olmak yerine, iç kısmı doldurulmuş bir kapalı döngü içindeki bölgeleri tanımlamak için tasarlanmıştır.

Polyline öğesine yaptığınız gibi haritaya Polygon öğesi de ekleyebilirsiniz. İlk olarak bir PolygonOptions nesnesi oluşturun ve nesneye birkaç nokta ekleyin. Bu noktalar, poligonun ana hatlarını oluşturur. Daha sonra, çokgeni haritaya eklemek için GoogleMap.addPolygon(PolygonOptions) çağırabilirsiniz. Bu durumda, Polygon nesnesi döndürülür.

Aşağıdaki kod snippet'i bir haritaya dikdörtgen ekler.

Java


// Instantiates a new Polygon object and adds points to define a rectangle
PolygonOptions polygonOptions = new PolygonOptions()
    .add(new LatLng(37.35, -122.0),
        new LatLng(37.45, -122.0),
        new LatLng(37.45, -122.2),
        new LatLng(37.35, -122.2),
        new LatLng(37.35, -122.0));

// Get back the mutable Polygon
Polygon polygon = map.addPolygon(polygonOptions);

      

Kotlin


// Instantiates a new Polygon object and adds points to define a rectangle
val rectOptions = PolygonOptions()
    .add(
        LatLng(37.35, -122.0),
        LatLng(37.45, -122.0),
        LatLng(37.45, -122.2),
        LatLng(37.35, -122.2),
        LatLng(37.35, -122.0)
    )

// Get back the mutable Polygon
val polygon = map.addPolygon(rectOptions)

      

Eklendikten sonra poligonun şeklini değiştirmek için Polygon.setPoints() çağırabilir ve poligonun ana hatları için yeni bir nokta listesi sağlayabilirsiniz.

Çokgenin görünümünü hem haritaya eklemeden önce hem de haritaya eklendikten sonra özelleştirebilirsiniz. Daha fazla bilgi için aşağıdaki görünümleri özelleştirme bölümüne bakın.

Poligon otomatik tamamlama

Yukarıdaki örnekte bulunan Poligon, beş koordinattan oluşur ancak ilk ve son koordinatların aynı konumu temsil ettiğine dikkat edin. Bu, döngüyü tanımlar. Ancak, poligonlar kapalı alanları tanımladığından, bu son koordinasyonu tanımlamanız gerekmez. Son koordinat ilkinden farklıysa API, ilk koordinatın koordinat dizisinin sonuna eklenmesiyle poligonu otomatik olarak "kapatır".

Aşağıdaki iki poligon eşdeğerdir ve her biri için polygon.getPoints() çağrıldığında 4 noktanın tamamı döndürülür.

Java


Polygon polygon1 = map.addPolygon(new PolygonOptions()
    .add(new LatLng(0, 0),
        new LatLng(0, 5),
        new LatLng(3, 5),
        new LatLng(0, 0))
    .strokeColor(Color.RED)
    .fillColor(Color.BLUE));

Polygon polygon2 = map.addPolygon(new PolygonOptions()
    .add(new LatLng(0, 0),
        new LatLng(0, 5),
        new LatLng(3, 5))
    .strokeColor(Color.RED)
    .fillColor(Color.BLUE));

      

Kotlin


val polygon1 = map.addPolygon(
    PolygonOptions()
        .add(
            LatLng(0.0, 0.0),
            LatLng(0.0, 5.0),
            LatLng(3.0, 5.0),
            LatLng(0.0, 0.0)
        )
        .strokeColor(Color.RED)
        .fillColor(Color.BLUE)
)
val polygon2 = map.addPolygon(
    PolygonOptions()
        .add(
            LatLng(0.0, 0.0),
            LatLng(0.0, 5.0),
            LatLng(3.0, 5.0)
        )
        .strokeColor(Color.RED)
        .fillColor(Color.BLUE)
)

      

Boş bir çokgen oluşturma

Birden çok yol, doldurulmuş halkalar veya "poğaçalar" (poligon alanları, poligonun içinde "adalar" olarak görünür) gibi karmaşık şekiller oluşturmak üzere tek bir Polygon nesnesinde birleştirilebilir. Karmaşık şekiller her zaman birden fazla daha basit yolun bileşimidir.

Aynı alanda iki yol tanımlanmalıdır. İki bölgeden büyük olanı dolgu alanını tanımlar ve ek seçenekleri olmayan basit bir poligondur. Ardından addHole() yöntemine ikinci bir yol girin. İkinci küçük yol daha büyük bir yol tarafından kaplanırsa poligonun bir parçası kaldırılmış gibi görünür. Delik, çokgenin ana hatlarıyla kesişiyorsa çokgen olmadan dolgu oluşturulur.

Aşağıdaki snippet, daha küçük bir dikdörtgen deliğe sahip tek bir dikdörtgen oluşturur.

Java


List<LatLng> hole = Arrays.asList(new LatLng(1, 1),
    new LatLng(1, 2),
    new LatLng(2, 2),
    new LatLng(2, 1),
    new LatLng(1, 1));
Polygon hollowPolygon = map.addPolygon(new PolygonOptions()
    .add(new LatLng(0, 0),
        new LatLng(0, 5),
        new LatLng(3, 5),
        new LatLng(3, 0),
        new LatLng(0, 0))
    .addHole(hole)
    .fillColor(Color.BLUE));

      

Kotlin


val hole = listOf(
    LatLng(1.0, 1.0),
    LatLng(1.0, 2.0),
    LatLng(2.0, 2.0),
    LatLng(2.0, 1.0),
    LatLng(1.0, 1.0)
)
val hollowPolygon = map.addPolygon(
    PolygonOptions()
        .add(
            LatLng(0.0, 0.0),
            LatLng(0.0, 5.0),
            LatLng(3.0, 5.0),
            LatLng(3.0, 0.0),
            LatLng(0.0, 0.0)
        )
        .addHole(hole)
        .fillColor(Color.BLUE)
)

      

İçi boş çokgen, haritada aşağıda gösterildiği gibi görünür:

Boş dikdörtgen dikdörtgen çizgili harita

Poligon etkinlikleri

Varsayılan olarak, çokgenler tıklanabilir değildir. Polygon.setClickable(boolean) yöntemini çağırarak tıklanabilirliği etkinleştirebilir ve devre dışı bırakabilirsiniz.

Tıklanabilir bir poligondaki etkinlikleri tıklamak için OnPolygonClickListener kullanın. Bu dinleyiciyi haritada ayarlamak için GoogleMap.setOnPolygonClickListener(OnPolygonClickListener) numaralı telefonu arayın. Kullanıcı bir poligonu tıkladığında onPolygonClick(Polygon) geri çağırması alırsınız.

Daireler

Daireli harita

Haritalar API'si, genel bir Polygon sınıfına ek olarak yapılarını basitleştirmek için Circle nesneleri için belirli sınıflar da içerir.

Daire oluşturmak için aşağıdaki iki özelliği belirtmeniz gerekir:

  • LatLng olarak center.
  • Metre cinsinden radius

Daha sonra daire, dünyanın yüzeyinde belirtilen belirli bir center öğesinden radius metre uzaklıktaki tüm noktalar olarak tanımlanır. Haritalar API'si tarafından kullanılan Mercator projeksiyonu düz bir yüzeyde nasıl oluşturulur? Bu durum, ekvatorun yakınındayken haritada neredeyse mükemmel bir daire olarak ve daire ekvatordan uzaklaştıkça dairesel olarak gittikçe daha fazla görünür (ekranda).

Eklendikten sonra dairenin şeklini değiştirmek için Circle.setRadius() veya Circle.setCenter() değerlerini çağırıp yeni değerler girebilirsiniz.

Dairenin görünümünü hem haritaya eklemeden önce hem de haritaya eklendikten sonra özelleştirebilirsiniz. Daha fazla bilgi için aşağıdaki görünümleri özelleştirme bölümüne bakın.

Aşağıdaki kod snippet'i, bir CircleOptions nesnesi oluşturup GoogleMap.addCircle(CircleOptions) çağırarak haritaya bir daire ekler:

Java


// Instantiates a new CircleOptions object and defines the center and radius
CircleOptions circleOptions = new CircleOptions()
    .center(new LatLng(37.4, -122.1))
    .radius(1000); // In meters

// Get back the mutable Circle
Circle circle = map.addCircle(circleOptions);

      

Kotlin


// Instantiates a new CircleOptions object and defines the center and radius
val circleOptions = CircleOptions()
    .center(LatLng(37.4, -122.1))
    .radius(1000.0) // In meters

// Get back the mutable Circle
val circle = map.addCircle(circleOptions)

      

Daire etkinlikleri

Varsayılan olarak, daireler tıklanabilir değildir. GoogleMap.addCircle() öğesini CircleOptions.clickable(boolean) ile veya Circle.setClickable(boolean) numarasını arayarak tıklanabilirliği etkinleştirebilir ve devre dışı bırakabilirsiniz.

Tıklanabilir bir çevredeki etkinlikleri tıklamak için OnCircleClickListener kullanın. Bu dinleyiciyi haritada ayarlamak için GoogleMap.setOnCircleClickListener(OnCircleClickListener) numaralı telefonu arayın.

Kullanıcı bir daireyi tıkladığında aşağıdaki kod örneğinde gösterildiği gibi onCircleClick(Circle) geri çağırması alırsınız:

Java


Circle circle = map.addCircle(new CircleOptions()
    .center(new LatLng(37.4, -122.1))
    .radius(1000)
    .strokeWidth(10)
    .strokeColor(Color.GREEN)
    .fillColor(Color.argb(128, 255, 0, 0))
    .clickable(true));

map.setOnCircleClickListener(new GoogleMap.OnCircleClickListener() {
    @Override
    public void onCircleClick(Circle circle) {
        // Flip the r, g and b components of the circle's stroke color.
        int strokeColor = circle.getStrokeColor() ^ 0x00ffffff;
        circle.setStrokeColor(strokeColor);
    }
});

      

Kotlin


val circle = map.addCircle(
    CircleOptions()
        .center(LatLng(37.4, -122.1))
        .radius(1000.0)
        .strokeWidth(10f)
        .strokeColor(Color.GREEN)
        .fillColor(Color.argb(128, 255, 0, 0))
        .clickable(true)
)
map.setOnCircleClickListener {
    // Flip the r, g and b components of the circle's stroke color.
    val strokeColor = it.strokeColor xor 0x00ffffff
    it.strokeColor = strokeColor
}

      

Görünümleri özelleştirme

Bir şeklin görünümünü, hem haritaya eklenmeden önce (seçenekler nesnesinde istenen özelliği belirterek) hem de haritaya eklendikten sonra değiştirebilirsiniz. Alıcılar, şeklin mevcut durumuna kolayca erişebilmeniz için tüm mülklerde de görünür.

Aşağıdaki snippet'te, Melbourne'dan Perth'e kadar jeodezik segmentler içeren kalın mavi bir kalın çizgi eklenmiştir. Aşağıdaki bölümlerde bu özellikler daha ayrıntılı olarak açıklanmaktadır.

Java


Polyline polyline = map.addPolyline(new PolylineOptions()
    .add(new LatLng(-37.81319, 144.96298), new LatLng(-31.95285, 115.85734))
    .width(25)
    .color(Color.BLUE)
    .geodesic(true));

      

Kotlin


val polyline = map.addPolyline(
    PolylineOptions()
        .add(LatLng(-37.81319, 144.96298), LatLng(-31.95285, 115.85734))
        .width(25f)
        .color(Color.BLUE)
        .geodesic(true)
)

      

Harita aşağıda gösterildiği gibi görüntülenir:

Melbourne&#39;dan Perth&#39;e birden fazla çizgi içeren harita

Not: Bunların çoğu açıklanan şekillerin herhangi birine uygulanabilir olsa da, bazı özellikler belirli şekiller için anlamlı olmayabilir (ör. Polyline'ın içi olmadığı için dolgu rengi olamaz).

Çizgi rengi

Fırça rengi, fırçanın opaklığını ve rengini belirten 32 bitlik alfa kırmızı-yeşil (ARGB) bir tam sayıdır. Bu özelliği, şeklin seçenekler nesnesinde *Options.strokeColor() (veya çoklu çizgi durumunda PolylineOptions.color()) çağırarak ayarlayın. Belirtilmezse varsayılan fırça rengi siyahtır (Color.BLACK).

Şekil haritaya eklendikten sonra fırça rengine getStrokeColor() (veya çoklu çizgi için getColor()) ulaşılarak erişilebilir ve setStrokeColor() (setColor() for a polyline) aranarak değiştirilebilir.

Dolgu rengi

Dolgu rengi yalnızca çokgenler ve daireler için geçerlidir. İç mekânları tanımlı olmadığından çoklu çizgiler için geçerli değildir. Bir poligonda, deliklerin içindeki bölgeler çokgenin iç kısmında bulunmaz ve bir dolgu rengi ayarlanırsa renklendirilmez.

Dolgu rengi, şeklin iç kısmının opaklığını ve rengini belirten 32 bitlik alfa-kırmızı-mavi (ARGB) bir tam sayıdır. *Options.fillColor() çağırarak bu seçeneği şeklin seçenekler nesnesinde ayarlayın. Belirtilmezse varsayılan fırça rengi şeffaf olur (Color.TRANSPARENT).

Şekil haritaya eklendikten sonra, dolgu rengine getFillColor() aranarak erişilebilir ve setFillColor() rengi değiştirilebilir.

Fırça genişliği

Çizgi darbesinin piksel cinsinden (piksel) kayan genişliği. Harita yakınlaştırıldığında genişlik ölçeklendirilmez (yani bir şekil tüm yakınlaştırma düzeylerinde aynı fırça genişliğine sahip olur). Bu özelliği, şeklin seçenek nesnesinde *Options.strokeWidth() (veya bir çoklu çizgi için PolylineOptions.width()) çağırarak ayarlayın. Bir değer belirtilmezse varsayılan fırça 10 piksel olur.

Şekil haritaya eklendikten sonra fırça genişliğine getStrokeWidth() (veya çoklu çizgi için getWidth()) çağrılarak erişilebilir ve setStrokeWidth() (setWidth() for a polyline) aranarak değiştirilebilir.

Fırça deseni

Varsayılan fırça deseni, çoklu çizgiler ve çokgenler ile dairelerin ana hatları için düz bir çizgidir. PatternItem nesnelerinin özel bir darbe kalıbı belirtebilirsiniz. Burada her öğe bir tire, nokta veya boşluk olur.

Aşağıdaki örnekte, bir çoklu çizginin kalıbı bir dizi noktanın ardından sırasıyla 20 piksel uzunluğunda bir boşluk, 30 piksellik bir tire ve 20 piksellik başka bir boşluk olarak ayarlanmaktadır.

Java


List<PatternItem> pattern = Arrays.asList(
    new Dot(), new Gap(20), new Dash(30), new Gap(20));
polyline.setPattern(pattern);

      

Kotlin


val pattern = listOf(
    Dot(), Gap(20F), Dash(30F), Gap(20F)
)
polyline.pattern = pattern

      

Kalıp, şekil için belirtilen ilk köşedeki ilk desen öğesiyle başlayarak çizgi boyunca tekrar eder.

Eklem türleri

Çoklu çizgiler ve poligon ana hatları için eğimli veya yuvarlak bir JointType belirtebilirsiniz. Varsayılan sabit göbek.

Aşağıdaki örnekte, bir polyline yuvarlak eklem türü kullanılmaktadır:

Java


polyline.setJointType(JointType.ROUND);

      

Kotlin


polyline.jointType = JointType.ROUND

      

Ortak tür, çizgideki dahili kıvrımları etkiler. Çizginin, çizgi içeren bir fırça deseni varsa çizgi türü bir eklemi bağdaştırırken de ortak türü geçerli olur. Eklem türleri, her zaman dairesel oldukları için noktaları etkilemez.

Satır sınırları

Çoklu çizginin her ucu için bir Cap stili belirtebilirsiniz. Seçenekler popt (varsayılan), kare, yuvarlak veya özel bit eşlemdir. Stili PolylineOptions.startCap ve PolylineOptions.endCap olarak ayarlayın veya uygun alıcı ve set kullanma yöntemlerini kullanın.

Aşağıdaki snippet'te, bir çoklu çizginin başında yuvarlak bir sınır belirtilmektedir.

Java


polyline.setStartCap(new RoundCap());

      

Kotlin


polyline.startCap = RoundCap()

      

Aşağıdaki snippet, bitiş sınırı için özel bir bit eşleme belirtir:

Java


polyline.setEndCap(
    new CustomCap(BitmapDescriptorFactory.fromResource(R.drawable.arrow), 16));

      

Kotlin


polyline.endCap = CustomCap(BitmapDescriptorFactory.fromResource(R.drawable.arrow), 16F)

      

Özel bir bit eşlem kullandığınızda piksel cinsinden bir referans fırça genişliği belirtmelisiniz. API, bit eşlemi uygun şekilde ölçeklendirir. Referans fırça genişliği, resmin orijinal boyutunda, sınır için bit eşlem resmi tasarladığınız çizgi genişliğidir. Varsayılan referans kontur genişliği 10 pikseldir. İpucu: Referans fırça genişliğini belirlemek için bit eşlem resminizi bir resim düzenleyicide% 100 yakınlaştırma düzeyinde açın ve çizgiyle ilgili istenen genişliğin resme göre genişliğini belirleyin.

Bit eşlem oluşturmak için BitmapDescriptorFactory.fromResource() kullanıyorsanız yoğunluktan bağımsız bir kaynak (nodpi) kullandığınızdan emin olun.

Jeodezik segmentler

Jeodezik ayar yalnızca poligonlar ve poligonlar için geçerlidir. Segment koleksiyonu olarak tanımlanmadıkları için bu özellik daireler için geçerli değildir.

Jeodezik ayar, çokgen/çokgenin ardışık köşeleri arasındaki çizgi segmentlerinin nasıl çizileceğini belirler. Jeodezik segmentler, Dünya yüzeyindeki en kısa yolu (küre) takip eden ve genellikle bir Merkatör projeksiyonu bulunan bir haritada kavisli çizgiler olarak görünen segmentlerdir. Jeojetik olmayan segmentler haritada düz çizgiler olarak çizilir.

*Options.geodesic() özelliğini çağırarak bu özelliği şeklin seçenek nesnesine ayarlayın. Burada true, segmentlerin jeojetik olarak, false ise segmentlerin düz çizgiler olarak çizilmesi gerektiğini belirtir. Belirtilmemesi durumunda varsayılan, coğrafi olmayan segmentlerdir (false).

Şekil haritaya eklendikten sonra, isGeodesic() aranarak coğrafi ayar ayarına erişilebilir ve setGeodesic() aranarak değiştirilebilir.

Z-endeksi

Z-endeksi, haritadaki diğer yer paylaşımlarına (diğer şekiller, zemin döşemeleri ve karo bindirmelere) göre bu şeklin yığın sırasını belirtir. Yüksek z-endeksine sahip bir bindirme, daha düşük z-endeksine sahip yer paylaşımlarının üzerine çizilir. Aynı z-endeksine sahip iki yer paylaşımı rastgele bir sırayla çizilir.

İşaretçilerin, diğer yer paylaşımlarının z-endeksinden bağımsız olarak her zaman diğer yer paylaşımlarının üzerine çizildiğini unutmayın.

*Options.zIndex() çağırarak şeklin seçenekler nesnesinde bu özelliği ayarlayın. Belirtilmemesi halinde varsayılan Z-endeksi 0 olur. Şekil haritaya eklendikten sonra getZIndex() çağrısı yapılarak z-endeksine erişilebilir ve bu numara, setZIndex() aranarak değiştirilebilir.

Görünürlük

Görünürlük, şeklin haritada çizilmesi gerekip gerekmediğini belirtir. true, çizilmesi gerektiğini ve false çizilmemesi gerektiğini gösterir. Harita üzerinde geçici olarak bir şekil göstermemenizi sağlar. Şekli haritadan kalıcı olarak kaldırmak için ilgili şekil üzerinde remove() numarasını arayın.

*Options.visible() yöntemini çağırarak şeklin seçenekler nesnesinde bu özelliği ayarlayın. Belirtilmemesi durumunda varsayılan görünürlük true değerine ayarlanır. Şekil haritaya eklendikten sonra, isVisible() aranarak görünüme erişilebilir ve setVisible() çağrılabilir.

Verileri bir şekille ilişkilendirme

Şeklin setTag() yöntemini kullanarak rastgele veri nesnesini çoklu çizgi, poligon veya daireyle depolayabilir ve getTag() özelliğini kullanarak nesneyi alabilirsiniz. Örneğin, bir veri nesnesini çoklu çizgiyle depolamak için Polyline.setTag() yöntemini ve veri nesnesini almak için Polyline.getTag() yöntemini çağırın.

Aşağıdaki kod, belirtilen çoklu çizgi için rastgele bir etiket (A) tanımlar:

Java


Polyline polyline = map.addPolyline((new PolylineOptions())
    .clickable(true)
    .add(new LatLng(-35.016, 143.321),
        new LatLng(-34.747, 145.592),
        new LatLng(-34.364, 147.891),
        new LatLng(-33.501, 150.217),
        new LatLng(-32.306, 149.248),
        new LatLng(-32.491, 147.309)));

polyline.setTag("A");

      

Kotlin


val polyline = map.addPolyline(
    PolylineOptions()
        .clickable(true)
        .add(
            LatLng(-35.016, 143.321),
            LatLng(-34.747, 145.592),
            LatLng(-34.364, 147.891),
            LatLng(-33.501, 150.217),
            LatLng(-32.306, 149.248),
            LatLng(-32.491, 147.309)
        )
)
polyline.tag = "A"

      

Verileri şekillerle depolayıp almanın faydalı olacağı senaryolara bazı örnekler aşağıda verilmiştir:

  • Uygulamanız farklı şekil türlerine hitap edebilir ve kullanıcı bunları tıkladığında bunları farklı bir şekilde ele almak istersiniz.
  • Benzersiz kayıt tanımlayıcılarına sahip bir sistemle karşılaşıyor olabilirsiniz. Burada, şekillerin söz konusu sistemdeki belirli kayıtları temsil etmesi gerekir.
  • Şekil verileri, şekil için z-endeksini belirlemeye öncelik verebilir.