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
, istediğiniz şekli oluşturabilen ve haritadaki yolları ve rotaları işaretlemek için kullanılabilen bağlı bir dizi çizgi segmentidir.Polygon
, işaretlemek için kullanılabilecek kapalı bir şekildir 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ü, çeşitli ö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:
- CircleDemoActivity (Java / Kotlin): Daire
- PolygonDemoActivity (Java / Kotlin): Poligon
- PolylineDemoActivity (Java / Kotlin): Çoklu çizgi
Çoklu çizgiler
Polyline
sınıfı, haritada bağlı bir dizi çizgi segmentini tanımlar. Polyline
nesnesi,
LatLng
konuma sahip konumlara ve
sıralı bir şekilde birbirine bağlayabilirsiniz.
Bu videoda, harita üzerinde yol çizmek için poli çizgileri kullanarak kullanıcılarınızın istedikleri yere ulaşmalarına nasıl yardımcı olabileceğinizle ilgili fikirler verilmektedir.
Çoklu çizgi oluşturmak için önce bir PolylineOptions
oluşturun.
ve nokta ekleyin. Noktalar dünyanın yüzeyindeki bir noktayı temsil eder.
ve LatLng
nesnesi olarak ifade edilir. Çizgi segmentleri, PolylineOptions
nesnesine ekleme sırasına göre noktalar arasında ç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. Bu sayede
aynı anda birden çok nokta ekleyin (ayrıca PolylineOptions.addAll(Iterable<LatLng>)
numaralı telefonu da arayabilirsiniz
(puanlar zaten bir listede varsa).
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:
Poli çizgisi eklendikten sonra şeklini değiştirmek için Polyline.setPoints()
işlevini çağırabilir ve poli çizgisi için yeni bir nokta listesi sağlayabilirsiniz.
Çoklu çizgiyi eklemeden önce hem çoklu çizginin görünümünü özelleştirebilirsiniz hem de 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.
Çoklu çizgi özelleştirmesi
Çoklu çizgilerin görünümünü özelleştirmenin birkaç yolu vardır:
- Çok renkli çoklu çizgiler, çoklu çizgi segmentlerini farklı renklere ayarlar.
- Renk geçişli çoklu çizgiler, bir çoklu çizgiyi iki renkten oluşan bir renk geçişi kullanarak renklendirir.
- Dolgulu çoklu çizgiler, yinelenen bit eşlemleri kullanarak bir çoklu çizgiyi biçimlendirir.
Çoklu çizgi özelleştirmelerini kullanmak için Android için Haritalar SDK'sının 18.1.0 veya sonraki bir sürümünü kullanmanız ve Android için Haritalar SDK'sının en son oluşturma aracını kullanmanız gerekir.
Çok renkli çoklu çizgi oluşturma
Bir çoklu çizginin bölümlerini ayrı ayrı renklendirmek için kapsamları kullanarak
StyleSpan
nesne oluşturup addSpan()
kullanarak bunları PolylineOptions
içine ekleme
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)));
Gradyan çoklu çizgi oluşturma
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
Bir çok çizginin görünümünü tekrarlanan bir bitmap dokusu olarak ayarlayabilirsiniz. Bunu yapmak için TextureStyle
türünde bir StampStyle
oluşturun, ardından burada gösterildiği gibi PolylineOptions.addSpan()
'yi çağırarak bu özelliği şeklin seçenekler nesnesinde ayarlayın:
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
Poli çizgiler varsayılan olarak tıklanabilir değildir. Ş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 çoklu çizgiyi tıkladığında
onPolylineClick(Polyline)
geri arama.
Poligonlar
Polygon
nesneleri, sıralı bir sırada bir dizi koordinattan oluşmaları nedeniyle Polyline
nesnelerine benzer. Ancak poligonlar açık uçlu olmak yerine, iç kısmı doldurulmuş kapalı bir döngü içindeki bölgeleri tanımlayacak şekilde tasarlanmıştır.
Aynı şekilde haritaya Polygon
ekleyebilirsiniz
Polyline
. Öncelikle bir PolygonOptions
nesnesi oluşturun ve bu nesneye bazı noktalar 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 ana hatları için yeni bir nokta listesi sağlayabilirsiniz.
Poligonun 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.
Poligon otomatik tamamlama
Yukarıdaki örnekte verilen Poligon beş koordinattan oluşur, ancak bu koordinatın ilk ve son koordinatlar, döngüyü tanımlayan aynı konumdadır. 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 poligon eşdeğerdir ve her biri için polygon.getPoints()
çağrısı yapıldığında 4 noktanın tümü döndürülü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, tek bir Polygon
nesnesinde birleştirilebilir:
doldurulmuş halkalar veya "çörekler" gibi karmaşık şekiller oluşturabilirsiniz. (burada poligonal
alanları, çokgen içinde "adalar" olarak görünür). Karmaşık şekiller her zaman
birleşimini ortaya çıkarıyor.
Aynı alanda iki yol tanımlanmalıdır. İki bölgeden daha büyük olanı
dolgu alanını tanımlar ve hiçbir ek seçenek içermeyen basit bir poligondur.
Ardından, addHole()
yöntemine ikinci bir yol iletin. İkincisi, daha küçük
yolu, daha büyük yolun bir kısmıyla çevrilidir;
poligon kaldırıldı. Delik, poligonun ana hatlarıyla kesişiyorsa poligon doldurulmadan oluşturulur.
Aşağıdaki snippet, daha küçük bir dikdörtgen ile tek bir dikdörtgen oluşturur kullanabilirsiniz.
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ğıda gösterildiği gibi görünür:
Poligon etkinlikleri
Poligonlar varsayılan olarak tıklanabilir değildir. Şunu etkinleştirebilir ve devre dışı bırakabilirsiniz:
tıklanabilirlik için Polygon.setClickable(boolean)
çağırın.
Şu işlemleri gerçekleştirmek için OnPolygonClickListener
kullanın:
tıklanabilir bir poligon üzerinde tıklama etkinliklerini dinleme 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
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
olarakcenter
.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. Google Alışveriş'in
Maps API tarafından kullanılan Merkatör projeksiyonu, düz bir yüzey üzerinde bir küre oluşturur,
bu,
şeklinde görünür ve dairesel olmayan biçimde (ekranda) gittikçe daha fazla
ekvatordan uzaklaşıyor.
Ekledikten sonra dairenin şeklini değiştirmek için Circle.setRadius()
veya Circle.setCenter()
işlevini çağırıp yeni değerler sağlayabilirsiniz.
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, bir CircleOptions
nesnesi oluşturarak ve GoogleMap.addCircle(CircleOptions)
'i çağırarak haritaya bir daire ekler:
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);
Etkinlikleri daire içine alma
Varsayılan olarak, daireler tıklanamaz. CircleOptions.clickable(boolean)
ile GoogleMap.addCircle()
'ü veya Circle.setClickable(boolean)
'yi arayarak tıklanabilirliği etkinleştirebilir ve devre dışı bırakabilirsiniz.
Tıklanabilir bir dairedeki tıklama etkinliklerini dinlemek için OnCircleClickListener
simgesini kullanın. Bu dinleyiciyi haritada 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
Şeklin görünümünü değiştirebilirsiniz her ikisi de haritaya eklenmeden önce (istenen özelliği belirterek) seçenek nesnesine) veya haritaya eklendikten sonra. Şekilin mevcut durumuna kolayca erişebilmeniz için tüm mülkler için alıcılara da yer verilir.
Aşağıdaki snippet, Melbourne'dan Perth'e uzanan jeodezik segmentler içeren kalın bir mavi poli çizgi ekler. 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:
Not: Bunların çoğu, şekillerden herhangi biri, her sayfada farklı anlam ifade eder (ör. Çoklu çizginin dolgu rengi olamaz çünkü iç tasarımı yok).
Fırça rengi
Çizgi rengi,
opaklığı ve rengi. *Options.strokeColor()
(veya çoklu çizgi durumunda PolylineOptions.color()
) çağrısını yaparak bu özelliği şeklin seçenekler nesnesinde ayarlayın. 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. Tanımlanmış iç alanları olmadığı için çoklu çizgiler için geçerli değildir. Bir poligonun boşluklarındaki bölgeler, poligonun iç kısmının bir parçası değildir ve doldurma rengi ayarlanırsa 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 fırça rengi şeffaf (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
Çizginin genişliği (piksel cinsinden)
(piksel). 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). Bu özelliği şeklin
*Options.strokeWidth()
(veya PolylineOptions.width()
) çağrısı yaparak seçenek nesnesini
bir çoklu çizgi için). Belirtilmemişse varsayılan fırça 10 pikseldir.
Şekil haritaya eklendikten sonra,
getStrokeWidth()
(veya çoklu çizgi için getWidth()
) çağrılıyor ve değiştirilebilir
setStrokeWidth()
(setWidth() for a polyline
) numaralı telefonu arayarak.
Çizgi deseni
Varsayılan çizgi deseni, çoklu çizgiler için ve dış çizgileri için düz bir çizgidir
çokgenler ve daireler. Ş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);
Desen, satır boyunca tekrarlanır ve Şekil için belirtilen ilk köşe.
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 örnek, yuvarlak bir birleştirme türünü çoklu çizgiye uygulamaktadır:
Kotlin
polyline.jointType = JointType.ROUND
Java
polyline.setJointType(JointType.ROUND);
Bağlantı türü, hattaki 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 başlıkları
Bir çok çizginin her ucu için bir Cap
stili belirtebilirsiniz. Seçenekler
pop-up (varsayılan), kare, yuvarlak veya özel bit eşlemdir.
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 çizgi genişliği 10 pikseldir. İpucu: Referans çizgi kalınlığını belirlemek için bitmap resminizi bir resim düzenleyicide %100 yakınlaştırmada açın ve çizgi kalınlığının resmin göreli genişliğini belirleyin.
Bit eşlemeyi 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 çoklu çizgiler ve poligonlar için geçerlidir. Geçerli değil segmentler olarak tanımlanmadığından bunları çevrelere eklemek de mümkündür.
Jeodezik ayar, doğru çizginin ardışık ikile çoklu çizginin/poligonun köşeleri çizilir. 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. Jeodezik 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 jeodezik ayara erişilebilir
isGeodesic()
numaralı telefonu arayarak ve setGeodesic()
aranarak değiştirilebilir.
Z-endeksi
Z-endeksi, bu şeklin haritadaki diğer yer paylaşımlarına (diğer şekiller, zemin yer paylaşımları ve karo yer paylaşımları) göre yığın sırasını belirtir. 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 yer paylaşımı, rastgele bir sırada çizilir.
İşaretçilerin Z-endeksi
*Options.zIndex()
işlevini çağırarak bu özelliği şeklin seçenekler nesnesinde ayarlayın.
Belirtilmemişse varsayılan z-dizin değeri 0
olur. Şekil
Z-endeksine,
getZIndex()
aranıyor ve setZIndex()
aranarak 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. Kalıcı olarak
şekli haritadan kaldırmak için, söz konusu şekilde remove()
yöntemini çağırı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()
aranıyor ve setVisible()
aranarak değiştirilebilir.
Verileri bir şekille ilişkilendirme
Çoklu çizgi, poligon veya daire içeren rastgele bir veri nesnesini depolayabilirsiniz
şeklin setTag()
yöntemini kullanarak, getTag()
kullanarak da nesneyi alın.
Örneğin, veri depolamak için Polyline.setTag()
numaralı telefonu arayın
bir çoklu çizgiyle nesne ve Polyline.getTag()
çağrısı ile
veri nesnesini getirir.
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");
Aşağıda, verileri depolamanın ve almanın yararlı olduğu senaryolarla ilgili bazı örnekler verilmiştir şu şekillerle:
- Uygulamanız farklı şekillere hitap ediyor olabilir ve bunları kullanmak istiyorsunuz farklı şekilde ele alacağız.
- 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.