Android için Google Maps API, şekil eklemeniz için bazı basit yollar sunmaktadır haritalarınıza eklemeniz gerekebilir.
Polyline
, birbirine bağlı çizgi segmentleri serisidir. oluşturabilir ve haritada yolları ve rotaları işaretlemek için kullanılabilir.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ümlerini değiştirmek için sayısı.
Kod örnekleri
Proje bilgilerini alanları ve rotaları göstermek için poligonlar ve çoklu çizgiler Basit bir Android uygulamasına ait tüm kodu 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ı, bir bağlı hat grubunu tanımlar
ve segmentleri görebilirsiniz. Polyline
nesnesi,
LatLng
konuma sahip olur ve toplamda,
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ünyanın 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ığı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)
. İ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, bir 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:
Çoklu çizgi eklendikten sonra şeklin şeklini değiştirmek için şunları yapabilirsiniz:
Polyline.setPoints()
ve çoklu çizgi için yeni noktaların listesini sağlayın.
Çoklu çizgiyi eklemeden önce hem çoklu çizginin görünümünü özelleştirebilirsiniz hem de eklenip eklenmediğini gösterir. Bu bölümde, görünümleri özelleştirme bölümüne göz atabilirsiniz.
Ç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.
- 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
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.
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 çoklu çizginin görünümünü, tekrarlanan bir bit eşlem dokusuna 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 işleyiciyi haritaya ayarlamak için:
GoogleMap.setOnPolylineClickListener(OnPolylineClickListener)
numaralı telefonu arayın.
Kullanıcı bir çoklu çizgiyi tıkladığında
onPolylineClick(Polyline)
geri arama.
Poligonlar
Polygon
nesne, Polyline
ile benzer
sıralı olarak bir dizi koordinattan oluşan nesneler
tıklayın. Ancak çokgenler, açık uçlu olmak yerine
kapalı bir döngü içinde iç kısmı doldurulmuş şekilde bölgeleri tanımlamak
Aynı şekilde haritaya Polygon
ekleyebilirsiniz
Polyline
. Önce bir PolygonOptions
nesnesi oluşturun
birkaç nokta ekleyin. Bu noktalar çokgenin ana hatlarını oluşturur.
Daha sonra, çağırarak çokgeni haritaya ekleyebilirsiniz
GoogleMap.addPolygon(PolygonOptions)
Polygon
nesnesi döndürür.
Aşağıdaki kod snippet'i haritaya bir dikdörtgen ekler.
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);
Çokgenin şeklini ekledikten sonra değiştirmek için şunu çağırabilirsiniz:
Polygon.setPoints()
ve ana hat için yeni bir nokta listesi sağlayın
bir çizgi grafiğidir.
Çokgeni eklemeden önce çokgenin 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.
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ımlayın. Son koordinat ilk koordinattan farklıysa API otomatik olarak "kapatılır" ilk koordinatı ekleyerek çokgene koordinat dizisinin sonu.
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, 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 yolun tanımlanması gerekir. İ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 çokgenin dış çizgisiyle kesişiyorsa
çokgen dolgu olmadan oluşturulur.
Aşağıdaki snippet, daha küçük bir dikdörtgen ile tek bir dikdörtgen oluşturur delik.
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
ListL<atLng >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
Varsayılan olarak, çokgenler tıklanamaz. Ş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 işleyiciyi haritaya ayarlamak için:
GoogleMap.setOnPolygonClickListener(OnPolygonClickListener)
numaralı telefonu arayın.
Kullanıcı bir çokgeni tıkladığında,
onPolygonClick(Polygon)
geri arama.
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.
Daire oluşturmak için aşağıdaki iki özelliği belirtmelisiniz:
LatLng
olarakcenter
.- Metre cinsinden
radius
.
Ç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.
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
Varsayılan olarak, daireler tıklanamaz. Şunu etkinleştirebilir ve devre dışı bırakabilirsiniz:
GoogleMap.addCircle()
öğesini çağırarak tıklanabilirlik
CircleOptions.clickable(boolean)
veya şu numarayı arayın:
Circle.setClickable(boolean)
.
Ş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 circles '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 circles' stroke color. int strokeColor = circle.getStrokeColor() ^ 0x00ffffff; circle.setStrokeColor(strokeColor); } });
Görünümleri ö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. 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ı şekilde bolca fırsat sunuyor.
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ğıda gösterildiği 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. 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 çoklu çizgi için getColor()
) çağrılıyor ve değiştirilebilir
setStrokeColor()
(setColor() for a polyline
) numaralı telefonu arayarak.
Dolgu rengi
Dolgu rengi yalnızca çokgenler ve daireler için geçerlidir. Şunlar için geçerli değildir: iç alanları tanımlamadıkları için çoklu çizgileri. Bir poligon için, bölgeler çokgenin iç kısmının bir parçası değildir ve her bir kareyi bir dolgu rengi ayarlanmışsa renklendirilir.
Dolgu rengi,
opaklığı ve rengi gösterir. Bu özelliği
şeklin seçenekler nesnesini *Options.fillColor()
çağırarak oluşturun. Belirtilmemişse
varsayılan fırça rengi şeffaf (Color.TRANSPARENT
).
Şekil haritaya eklendikten sonra, dolgu rengine
getFillColor()
aranıyor ve setFillColor()
aranarak 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
ListP<atternItem >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);
Birleşim türü, çizgideki iç kıvrımları etkiler. Çizgide bir çizgi varsa bir çizgi içeren desen içeriyorsa bir tire işareti aynı olduğunda da elde etti. 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
pop-up (varsayılan), kare, yuvarlak veya özel bit eşlemdir.
PolylineOptions.startCap
bölümünde stili ayarlayın ve
PolylineOptions.endCap
veya
almanın ve ayarlamanın
yöntemlerini kastediyoruz.
Aşağıdaki snippet, bir çoklu çizginin başında yuvarlak bir sınır 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 çizgisi genişliği: bit eşlem resmini tasarlarken kullandığınız fırça genişliğine göre resmin orijinal boyutunu değiştirebilirsiniz. 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).
Jeodezik segmentler
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.
Jeodezik ayar, ç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 yığın sıralamasını diğerlere göre yer paylaşımlarını (diğer şekiller, zemin bindirmeleri ve karo bindirmeleri) görebilirsiniz. Yüksek Z-endeksine sahip bir bindirme, 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 z endeksi
*Options.zIndex()
yöntemini çağırarak şeklin seçenekler nesnesinde bu özelliği ayarlayın.
Belirtilmemişse varsayılan Z-endeksi 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 (ör.
true
, çizilmesi gerektiğini, false
ise çizilmemesi gerektiğini belirtir. 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 çalışıyor olabilirsiniz. Burada şekiller sistemdeki belirli kayıtları temsil eder.
- Şekil verileri, şekli.