Şekiller

Platform seçin: Android iOS JavaScript

Kesintisiz kırmızı bir çoklu çizginin olduğu harita

Android için Google Haritalar API'si, haritalarınızı uygulamanız için özelleştirmek amacıyla haritalara şekil eklemenize olanak tanıyan bazı basit yöntemler sunar.

  • Polyline, birbirine bağlı çizgi segmentleri serisidir. oluşturabilir ve harita üzerinde yolları ve rotaları işaretlemek için kullanılabilir.
  • Polygon, bir yeri işaretlemek için kullanılabilecek kapalı bir şekildir alanları görebilirsiniz.
  • Circle, bir dairenin coğrafi olarak doğru bir projeksiyonudur Google Earth'ün yüzeyinde gösterilir.

Tüm bu şekillerin görünümünü, bazı özellikleri değiştirerek özelleştirebilirsiniz.

Kod örnekleri

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

Ayrıca GitHub'daki ApiDemos deposu, şekillerin kullanımını ve özelliklerini gösteren örnekler:

Çoklu çizgiler

Polyline sınıfı, bir bağlı hat grubunu tanımlar ve segmentleri görebilirsiniz. Polyline nesnesi, LatLng konuma sahip konumlara ve sıralı bir şekilde birbirine bağlayabilirsiniz.

Bu video, kullanıcılarınızın gidecekleri yere ulaşmak için kullanabilecekleri yol çizmek için çoklu çizgileri kullanma.

Çoklu çizgi oluşturmak için önce bir PolylineOptions oluşturun. ve nokta ekleyin. Noktalar, dünya yüzeyindeki bir noktayı temsil eder ve LatLng nesnesi olarak ifade edilir. Çizgi segmentleri çizilir noktaları, onları eklemek istediğiniz sıraya göre PolylineOptions nesnesini tanımlayın.

Bir PolylineOptions nesnesine nokta eklemek için PolylineOptions.add() işlevini çağırın. Bu yöntemin değişken sayıda parametre aldığını unutmayın. Böylece tek seferde birden fazla nokta ekleyebilirsiniz (noktalar zaten bir listedeyse PolylineOptions.addAll(Iterable<LatLng>) işlevini de çağırabilirsiniz).

Ardından GoogleMap.addPolyline(PolylineOptions) işlevini çağırarak çoklu çizgiyi bir haritaya ekleyebilirsiniz. İlgili içeriği oluşturmak için kullanılan yöntemi, çoklu çizgiyi belirli bir düzeyde değiştirebileceğiniz bir Polyline nesnesi döndürür daha sonra tekrar deneyin.

Aşağıdaki kod snippet'inde, haritaya nasıl dikdörtgen ekleneceği gösterilmektedir:

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)

      

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);

      

Dikdörtgen, haritada aşağıdaki gibi görünür:

Dikdörtgen çoklu çizgisiyle harita

Çoklu çizginin şekli eklendikten sonra şeklini değiştirmek için şunları çağırabilirsiniz: Polyline.setPoints() ve çoklu çizgi için yeni noktaların listesini sağlayın.

Çoklu çizginin görünümünü hem haritaya eklemeden önce hem de ekledikten sonra özelleştirebilirsiniz. Bu bölümde, görünümleri özelleştirme bölümüne göz atabilirsiniz.

Ç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.
  • Gradyan çoklu çizgileri, iki renk gradyanı kullanarak bir çoklu çizgiyi renklendirir.
  • Dolgulu çoklu çizgiler, yinelenen bit eşlemleri kullanarak bir çoklu çizgiyi biçimlendirir.

Çoklu Çizgi Özelleştirmelerini kullanmak istiyorsanız Android ve Android için Haritalar SDK'sının 18.1.0 veya daha yeni bir sürümünü kullanıyor olmanız gerekir. Android oluşturucu için en yeni Haritalar SDK'sını kullanın.

Çok renkli çoklu çizgi oluşturma

Çok renkli bir çoklu çizginin yer aldığı harita

Bir çoklu çizginin bölümlerini ayrı ayrı renklendirmek için kapsamları kullanarak StyleSpan nesne oluşturup addSpan() kullanarak bu nesneleri PolylineOptions hedefine ekliyorum veya addSpans() yöntem. Varsayılan olarak, dizideki her öğe rengi belirler kaldırmanızı sağlar. Aşağıdaki örnekte ayar segmenti gösterilmektedir renklerini kullanarak kırmızı ve yeşil kesitlerden oluşan bir çoklu çizgi oluşturun:

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))
)

      

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)));

      

Renk geçişli poli çizgisi oluşturma

Gradyan poli çizgisi içeren harita

Renk geçişi tanımlamak için iki tane 32 bit alfa-kırmızı-yeşil-mavi (ARGB) fırçanın başlangıç ve bitiş renklerini belirtmek için tamsayılar. Bunu ayarla özelliğini PolylineOptions.addSpan() çağırarak şeklin seçenekler nesnesine ekleyin. Aşağıdaki örnekte, Woodland Park Hayvanat Bahçesi'nden Kirkland, Washington'a kadar kırmızıdan sarıya doğru degrade bir çoklu çizginin oluşturulması gösterilmektedir.

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()
            )
        )
)

      

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())));

      

Damgalı çoklu çizgi oluşturma

Damgalı çoklu çizgi bulunan harita

Bir çok çizginin görünümünü tekrarlanan bir bitmap dokusu olarak ayarlayabilirsiniz. Yapılacaklar TextureStyle için bir StampStyle oluşturun, ardından bu özelliği şeklin seçenekler nesnesini, burada gösterildiği gibi PolylineOptions.addSpan() yöntemini çağırarak değiştirin:

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)
)

      

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));

      

Çoklu çizgi etkinlikleri

Varsayılan olarak, çoklu çizgiler tıklanamaz. Şunu etkinleştirebilir ve devre dışı bırakabilirsiniz: tıklanabilirlik için Polyline.setClickable(boolean) çağırın.

Şu işlemleri gerçekleştirmek için OnPolylineClickListener kullanın: tıklanabilir bir çoklu çizgide tıklama etkinliklerini dinleyebilir. Bu dinleyiciyi haritada ayarlamak için GoogleMap.setOnPolylineClickListener(OnPolylineClickListener) numaralı telefonu arayın. Kullanıcı bir çok çizgiyi tıkladığında onPolylineClick(Polyline) geri çağırma alırsınız.

Poligonlar

Polygon nesneleri, sıralı bir sırada bir dizi koordinattan oluşmaları bakımından Polyline nesnelerine benzer. Ancak çokgenler, açık uçlu olmak yerine kapalı bir döngü içinde iç kısmı doldurulmuş şekilde bölgeleri tanımlamak

Haritaya Polyline eklediğiniz şekilde Polygon ekleyebilirsiniz. Önce bir PolygonOptions nesnesi oluşturun birkaç nokta ekleyin. Bu noktalar, poligonun ana hatlarını oluşturur. Ardından, Polygon nesnesi döndüren GoogleMap.addPolygon(PolygonOptions) işlevini çağırarak poligonu haritaya ekleyin.

Aşağıdaki kod snippet'inde haritaya bir dikdörtgen eklenmektedir.

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)

      

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);

      

Poligon eklendikten sonra şeklini değiştirmek için Polygon.setPoints() işlevini çağırabilir ve poligonun dış çizgisi için yeni bir nokta listesi sağlayabilirsiniz.

Çokgeni eklemeden önce çokgenin görünümünü özelleştirebilirsiniz. eklenip eklenmediğini gösterir. Daha fazla bilgi için aşağıdaki görünümü özelleştirme bölümüne bakın.

Poligon otomatik tamamlama

Yukarıdaki örnekteki poligon beş koordinattan oluşur ancak ilk ve son koordinatların aynı konumda olduğu ve bu durumun döngüyü tanımladığına dikkat edin. Ancak pratikte, çokgenler kapalı alanları tanımladığından bu son koordinatı tanımlamanız gerekmez. Son koordinat ilk koordinattan farklıysa API, koordinat dizisinin sonuna ilk koordinatı ekleyerek poligonu otomatik olarak "kapatır".

Aşağıdaki iki çokgen eşdeğerdir ve Her biri için polygon.getPoints(), 4 puanın tamamını döndürür.

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)
)

      

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));

      

İçi boş poligon oluşturma

Birden fazla yol, doldurulmuş halkalar veya "halka çörekler" (poligon alanlarının poligon içinde "adalar" olarak göründüğü) gibi karmaşık şekiller oluşturmak için tek bir Polygon nesnesinde birleştirilebilir. Karmaşık şekiller her zaman birden fazla basit yolun birleşiminden oluşur.

Aynı alanda iki yolun tanımlanması gerekir. İki bölgeden daha büyük olan, doldurma alanını tanımlar ve ek seçenekleri olmayan basit bir poligondur. Ardından, addHole() yöntemine ikinci bir yol iletin. İkinci, daha küçük yol daha büyük yol tarafından tamamen çevrelendiğinde, poligonun bir parçası kaldırılmış gibi görünür. Delik, poligonun ana hatlarıyla kesişiyorsa poligon doldurulmadan oluşturulur.

Aşağıdaki snippet, daha küçük dikdörtgen bir delik içeren tek bir dikdörtgen oluşturur.

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)
)

      

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));

      

Boş poligon, haritada aşağıdaki gibi görünür:

İçi boş dikdörtgen çoklu çizgili harita

Poligon etkinlikleri

Varsayılan olarak, çokgenler tıklanamaz. Polygon.setClickable(boolean) işlevini çağırarak tıklanabilirliği etkinleştirebilir ve devre dışı bırakabilirsiniz.

Tıklanabilir bir poligondaki tıklama etkinliklerini dinlemek 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ğırma alırsınız.

Daireler

Daire içeren harita

Maps API, genel bir Polygon sınıfına ek olarak, aynı zamanda Circle nesne için sınıfları kullanarak oluşturma işlemini basitleştirdi.

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

  • LatLng olarak center.
  • radius metre.

Çember, Dünya yüzeyindeki tüm noktaların kümesi olarak tanımlanır ve belirtilen center hattından radius metre uzakta. Maps API tarafından kullanılan Mercator projeksiyonu, düz bir yüzeyde bir küreyi işlediği için küre, ekvatora yakın bir yerdeyken haritada neredeyse mükemmel bir daire olarak görünür ve daire ekvatorun uzağına gittikçe (ekranda) giderek daha az dairesel görünür.

Daire eklendikten sonra şeklini değiştirmek için şunu arayabilirsiniz: Circle.setRadius() veya Circle.setCenter() oluşturup yeni değerler girin.

Daireyi eklemeden önce, dairenin görünümünü özelleştirebilirsiniz eklenip eklenmediğini gösterir. Bu bölümde, görünümleri özelleştirme bölümüne göz atabilirsiniz.

Aşağıdaki kod snippet'i CircleOptions nesnesi ve çağrısı GoogleMap.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)

      

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);

      

Çevre etkinlikleri

Daireler varsayılan olarak tıklanabilir değildir. CircleOptions.clickable(boolean) ile GoogleMap.addCircle()'ü çağırarak veya Circle.setClickable(boolean)'yi çağırarak tıklanabilirliği etkinleştirebilir ve devre dışı bırakabilirsiniz.

Şu işlemleri gerçekleştirmek için OnCircleClickListener kullanın: tıklanabilir bir daire üzerindeki tıklama etkinliklerini dinleme. Bu işleyiciyi haritaya ayarlamak için: GoogleMap.setOnCircleClickListener(OnCircleClickListener) numaralı telefonu arayın.

Bir kullanıcı bir çevreyi tıkladığında, Aşağıdaki kod örneğinde gösterildiği gibi, onCircleClick(Circle) geri çağırması:

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
}

      

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);
    }
});

      

Görünümü özelleştirme

Bir şeklin görünümünü hem haritaya eklenmeden önce (options nesnesinde istenen özelliği belirterek) hem de haritaya eklendikten sonra değiştirebilirsiniz. Kazananlar Böylece mevcut mülklere kolayca erişebilmeniz için şeklin durumu.

Aşağıdaki snippet, Melbourne'dan Perth'e. Aşağıdaki bölümlerde bu özellikler daha ayrıntılı olarak açıklanmaktadır.

Kotlin



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

      

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));

      

Harita aşağıdaki gibi görünür:

Melbourne&#39;dan Perth&#39;e çoklu çizgiyle harita

Not: Bunların çoğu açıklanan şekillerin herhangi birine uygulanabilir olsa da bazı özellikler belirli şekiller için anlamlı olmayabilir (ör. bir çok çizginin içi boş olduğundan dolgu rengi olamaz).

Fırça rengi

Çizgi rengi, opaklığı ve rengi. Bu özelliği şeklin options nesnesini çağırarak *Options.strokeColor() (veya Çoklu çizgi durumunda PolylineOptions.color()). Belirtilmemişse varsayılan fırça rengi siyah (Color.BLACK).

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

Dolgu rengi

Dolgu rengi yalnızca poligonlar ve daireler için geçerlidir. Şunlar için geçerli değildir: iç alanları tanımlamadıkları için çoklu çizgileri. Bir poligonun boşluklarındaki bölgeler, poligonun iç kısmının bir parçası değildir ve doldurma rengi ayarlanmışsa boyanmaz.

Dolgu rengi, şeklin iç kısmının opaklığını ve rengini belirten 32 bitlik bir alfa-kırmızı-yeşil-mavi (ARGB) tam sayıdır. *Options.fillColor() işlevini çağırarak bu özelliği şeklin seçenekler nesnesinde ayarlayın. Belirtilmemişse varsayılan çizgi rengi şeffaftır (Color.TRANSPARENT).

Şekil haritaya eklendikten sonra getFillColor() çağrısı yapılarak dolgu rengine erişilebilir ve setFillColor() çağrısı yapılarak dolgu rengi değiştirilebilir.

Çizgi genişliği

Satır çizgisinin genişliği, piksel (px) cinsinden kayan nokta olarak. Harita yakınlaştırıldığında genişlik ölçeklenmez (yani bir şekil tüm yakınlaştırma düzeylerinde aynı çizgi genişliğinde olmalıdır). *Options.strokeWidth() (veya çoklu çizgi için PolylineOptions.width()) işlevini çağırarak bu özelliği şeklin seçenek nesnesinde ayarlayın. Belirtilmemişse varsayılan çizgi kalınlığı 10 pikseldir.

Şekil haritaya eklendikten sonra getStrokeWidth() (veya poli çizgi için getWidth()) çağrılarak çizgi kalınlığına erişilebilir ve setStrokeWidth() (setWidth() for a polyline) çağrılarak değiştirilebilir.

Çizgi deseni

Varsayılan çizgi deseni, çok çizgiler ve poligonların ve dairelerin ana hatları için düz bir çizgidir. Şu kadar özel bir çizgi deseni belirtebilirsiniz: PatternItem nesne (her öğe bir tire, nokta veya nokta) fark edebilirsiniz.

Aşağıdaki örnek, bir çoklu çizginin kalıbını tekrarlanan bir bir nokta dizisi ve ardından 20 piksel uzunluğunda bir boşluk, bir kısa çizgi 30 piksel ve başka bir 20 piksel boşluk.

Kotlin



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

      

Java


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

      

Kalıp, şekil için belirtilen ilk köşedeki ilk desen öğesinden başlayarak çizgi boyunca tekrarlanır.

Eklem türleri

Çoklu çizgiler ve poligonların dış çizgileri için bir eğim veya yuvarlak belirleyebilirsiniz Varsayılan sabit gönye bağlantı türünü değiştirmek için JointType.

Aşağıdaki örnekte, bir çok çizgiye yuvarlak bir eklem türü uygulanmaktadır:

Kotlin



polyline.jointType = JointType.ROUND

      

Java


polyline.setJointType(JointType.ROUND);

      

Birleşim türü, çizgideki iç kıvrımları etkiler. Satırda kısa çizgi içeren bir çizgi rengi deseni varsa kısa çizgi bir eklemin üzerine geldiğinde de eklem türü geçerli olur. Eklem türleri, her zaman dairesel olduğundan noktaları etkilemez.

Satır sınırları

Çoklu çizginin her ucu için bir Cap stili belirtebilirsiniz. Seçenekler; kenarlı (varsayılan), kare, yuvarlak veya özel bitmap'tir. Stili PolylineOptions.startCap ve PolylineOptions.endCap içinde ayarlayın veya uygun alıcı ve ayarlayıcı yöntemlerini kullanın.

Aşağıdaki snippet, bir çok çizginin başlangıcında yuvarlak bir kapak belirtir.

Kotlin



polyline.startCap = RoundCap()

      

Java


polyline.setStartCap(new RoundCap());

      

Aşağıdaki snippet, bitiş resmi için özel bir bit eşlem belirtir:

Kotlin



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

      

Java


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

      

Özel bir bit eşlem kullandığınızda, piksel. API bit eşlemi uygun şekilde ölçeklendirir. Referans çizgi genişliği, kapak için bitmap resmini tasarlarken resmin orijinal boyutunda kullandığınız çizgi genişliğidir. Varsayılan referans çizgisi genişliği 10'dur piksel. İpucu: Referans çizgisi genişliğini belirlemek için şu adresten bit eşlem resminizi açın: Resim düzenleyicide% 100 yakınlaştırma yapın ve istediğiniz çizgi kalınlığını çizin bir değere sahip.

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

Geodez segmentleri

Jeodezik ayar yalnızca çoklu çizgiler ve poligonlar için geçerlidir. Geçerli değil çevrelerine ekleyebilir, çünkü bunlar bir segment koleksiyonu olarak tanımlanmaz.

Geodezikler ayarı, çok çizginin/çokgenin art arda gelen köşeleri arasındaki çizgi segmentlerinin nasıl çizileceğini belirler. Jeodezik segmentler, Dünya'nın yüzeyindeki (küre) en kısa yolu izler ve genellikle Merkatör projeksiyonu olan haritada eğri çizgiler olarak görünür. Geodeziden olmayan segmentler haritada düz çizgiler olarak çizilir.

Bu özelliği, şeklin seçenek nesnesinde şunu çağırarak ayarlayın: *Options.geodesic(); burada true, segmentlerin jeodezik ve false, segmentlerin düz çizgiler olarak çizilmesi gerektiğini belirtir. Belirtilmemişse varsayılan olarak jeodezik olmayan segmentler (false) kullanılır.

Şekil haritaya eklendikten sonra isGeodesic() çağrısı yapılarak jeodezik ayarına erişilebilir ve setGeodesic() çağrısı yapılarak ayar değiştirilebilir.

Z-endeksi

Z-endeksi, bu şeklin yığın sıralamasını diğerlere göre (diğer şekiller, zemin bindirmeleri ve karo yer paylaşımları) görebilirsiniz. Yüksek Z-endeksine sahip bir yer paylaşımı, daha düşük Z-endeksine sahip yer paylaşımlarının üzerinde çizilir. Aynı Z-endeksine sahip iki bindirme, rastgele bir sırada çizilir.

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

*Options.zIndex() yöntemini çağırarak şeklin seçenekler nesnesinde bu özelliği ayarlayın. Belirtilmemişse varsayılan Z-endeksi 0 olur. Şekil haritaya eklendikten sonra getZIndex() çağrılarak z-dizin erişilebilir ve setZIndex() çağrılarak değiştirilebilir.

Görünürlük

Görünürlük, şeklin haritada çizilip çizilmeyeceğini belirtir. true, şeklin çizileceğini, false ise çizilmeyeceğini gösterir. Google haritada bir şekli geçici olarak görüntülememenize olanak tanır. Bir şekli haritadan kalıcı olarak kaldırmak için ilgili şekli remove() tuşuyla arayın.

Bu özelliği, şeklin seçenekler nesnesinde şunu çağırarak ayarlayın: *Options.visible() Belirtilmemişse varsayılan görünürlük true olur. Şekil haritaya eklendikten sonra isVisible() çağrılarak görünürlük durumuna erişilebilir ve setVisible() çağrılarak görünürlük durumu değiştirilebilir.

Verileri bir şekille ilişkilendirme

Şeklin setTag() yöntemini kullanarak bir poli çizgi, poligon veya daireyle rastgele bir veri nesnesini saklayabilir ve getTag() yöntemini kullanarak nesneyi alabilirsiniz. Örneğin, bir veri nesnesini çok çizgili çizgiyle depolamak için Polyline.setTag(), veri nesnesini almak için Polyline.getTag() çağrısını yapın.

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

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"

      

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");

      

Şekillerle veri depolamak ve almak yararlı olduğu bazı senaryo örneklerini aşağıda bulabilirsiniz:

  • Uygulamanızda farklı şekil türleri olabilir ve kullanıcı bunları tıkladığında farklı şekilde işlem yapmak isteyebilirsiniz.
  • Benzersiz kayıt tanımlayıcıları olan bir sistemle arayüz oluşturabilirsiniz. Bu sistemde şekiller, sistemdeki belirli kayıtları temsil eder.
  • Şekil verileri, şekli.