Wielokąt na powierzchni Ziemi. Wielokąt może być wypukły lub wklęsły oraz może obejmować południk 180 południków i może mieć niewypełnione otwory. Ma następujące właściwości:
- Konspekt
- Kontur jest określany za pomocą listy wierzchołków w prawo lub w lewo. Punkty początkowe i końcowe nie muszą się pokrywać. W przeciwnym razie wielokąt zostanie automatycznie zamknięty. Odcinki linii są rysowane między kolejnymi punktami na krótszym z dwóch kierunków (wschód lub zachód).
- Otwory
- Otwór to obszar wewnątrz wielokąta, który nie jest wypełniony. Otwór jest określany dokładnie w taki sam sposób jak kontur. Otwór musi być całkowicie zamknięty wewnątrz obrysu. Można określić wiele otworów, ale nakładające się otwory nie są obsługiwane.
- Szerokość kreski
- Szerokość segmentu linii w pikselach ekranu. Szerokość jest stała i niezależna od poziomu powiększenia. Wartością domyślną jest 10.
- Kolor kreski
- Kolor segmentu linii w formacie ARGB, taki sam jak format używany przez aplikację
Color
. Wartością domyślną jest czarny (0xff000000
). - Rodzaj stawu
- Typ połączenia określa kształt, który ma zostać użyty podczas łączenia sąsiadujących fragmentów linii we wszystkich wierzchołkach konturu wielokąta. Obsługiwane typy połączeń znajdziesz na stronie
JointType
. Wartością domyślną jestDEFAULT
. - Styl kreski
- Ciągła (domyślnie, reprezentowana przez
null
) lub sekwencjaPatternItem
obiektów do powtórzenia na obrysie wielokąta. Dostępne typyPatternItem
:Gap
(zdefiniowana za pomocą długości przerwy w pikselach),Dash
(zdefiniowana przez szerokość kreski i długość kreski w pikselach) iDot
(okrągły, wyśrodkowany na obrysie wielokąta, średnica określona przez szerokość kreski w pikselach). - Kolor wypełnienia
- Kolor wypełnienia w formacie ARGB, taki sam jak format używany przez usługę
Color
. Domyślną wartością jest przezroczystość (0x00000000
). Jeśli geometria wielokąta nie jest poprawnie określona (patrz wyżej w przypadku konturu i otworów), wypełnienie nie zostanie narysowane. - Kolejność nakładania elementów
- Kolejność, w jakiej ten wielokąt został narysowany względem innych nakładek, w tym
Polyline
,Circle
s,GroundOverlay
s iTileOverlay
, ale nieMarker
. Nakładka o większej kolejności nakładania elementów jest rysowana na nakładkach o mniejszych indeksach Z. Kolejność nakładek o tej samej wartości kolejności nakładania elementów jest dowolna. Wartością domyślną jest 0. - Widoczność
- Wskazuje, czy wielokąt jest widoczny czy niewidoczny (tzn. czy jest on narysowany na mapie). Niewidoczny wielokąt nie zostanie narysowany, ale zachowa wszystkie swoje pozostałe właściwości. Wartość domyślna to
true
, czyli widoczna. - Stan geodezyjny
- Wskazuje, czy odcinki wielokąta mają być narysowane jako obiekty geodezyjne, a nie proste na odwzorowaniu Merkatora. Geodezja to najkrótsza ścieżka między dwoma punktami na powierzchni Ziemi. Przy założeniu, że Ziemia jest sferą, można utworzyć krzywą geodezyjną.
- Klikalność
- Jeśli chcesz obsługiwać zdarzenia wywoływane po kliknięciu wielokąta przez użytkownika, ustaw tę właściwość na
true
. W każdej chwili możesz ją zmienić. Wartość domyślna tofalse
. Jeśli ta właściwość ma wartośćtrue
, Twoja aplikacja będzie otrzymywać powiadomienia doGoogleMap.OnPolygonClickListener
zarejestrowanego dosetOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
. - Oznacz
Object
powiązany z wielokątem. Na przykład obiektObject
może zawierać informacje o tym, co reprezentuje wielokąt. To łatwiejsze niż przechowywanie osobnego elementuMap<Polygon, Object>
. Inny przykład możesz powiązać z identyfikatoremString
odpowiadającym identyfikatorowi ze zbioru danych. Pakiet SDK Map Google na Androida nie odczytuje ani nie zapisuje tej właściwości.
Metody w tej klasie muszą być wywoływane w wątku interfejsu Androida. Jeśli nie, w czasie działania wywoływany jest kod IllegalStateException
.
Przykład
GoogleMap map;
// ... get a map.
// Add a triangle in the Gulf of Guinea
Polygon polygon = 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));
Przewodnik dla programistów
Więcej informacji znajdziesz w przewodniku dla programistów dotyczącym kształtów.
Podsumowanie metod publicznych
boolean | |
int |
getFillColor()
Pobiera kolor wypełnienia tego wielokąta.
|
List<List<LatLng>> |
getHoles()
Zwraca w chwili obecnej migawkę otworów w tym wielokątie .
|
Ciąg znaków |
getId()
Pobiera identyfikator tego wielokąta.
|
List<LatLng> |
getPoints()
Zwraca w tej chwili migawkę wierzchołków tego wielokąta .
|
int |
getStrokeColor()
Pobiera kolor linii tego wielokąta.
|
int |
getStrokeJointType(),
Pobiera typ połączenia używanego we wszystkich wierzchołkach konturu wielokąta.
|
List<PatternItem> |
getStrokePattern()
Pobiera wzór kreski jego konturu.
|
float |
getStrokeWidth(),
Pobiera szerokość kreski tego wielokąta.
|
Obiekt |
getTag()
Pobiera tag wielokąta.
|
float |
getZIndex(),
Pobiera wartość zIndex tego wielokąta.
|
int |
hashCode()
|
boolean |
isClickable()
Pobiera klikalność wielokąta.
|
boolean |
isGeodesic()
Określa, czy każdy odcinek linii jest narysowany jako geodezyjny.
|
boolean |
isVisible(),
Pobiera widoczność tego wielokąta.
|
void |
remove()
Usuwa wielokąt z mapy.
|
void |
setClickable(wartość logiczna)
Ustawia klikalność wielokąta.
|
void |
setFillColor(kolor wewnętrzny)
Ustawia kolor wypełnienia tego wielokąta.
|
void |
setGeodesic(wartość logiczna geodezyjna)
Określa, czy każdy odcinek linii ma być rysowany jako geodezyjny.
|
void | |
void | |
void |
setStrokeColor(kolor wewnętrzny)
Ustawia kolor linii tego wielokąta.
|
void |
setStrokeJointType(int jointType)
Ustawia typ złączenia wszystkich wierzchołków konturu wielokąta.
|
void | |
void |
setStrokeWidth(szerokość zmiennoprzecinkowa)
Ustawia szerokość kreski tego wielokąta.
|
void |
setTag(tag obiektu)
Ustawia tag wielokąta.
|
void |
setVisible(widoczna wartość logiczna)
Ustawia widoczność tego wielokąta.
|
void |
setZIndex(zIndex z wykorzystaniem liczby zmiennoprzecinkowej)
Ustawia wartość zIndex tego wielokąta.
|
Podsumowanie metod dziedziczonych
Metody publiczne
publiczna wartość logiczna równa się (Inny obiekt)
public int getFillColor ()
Pobiera kolor wypełnienia tego wielokąta.
Akcje powrotne
- kolor w formacie ARGB.
public List<List<LatLng>> getHoles ()
Zwraca w chwili obecnej migawkę otworów w tym wielokątie . Zwracana lista jest kopią listy otworów, więc zmiany w otworach w wielokątach nie są odzwierciedlane na tej liście, a zmiany wprowadzone na liście nie są odzwierciedlane przez wielokąt.
public String getId ()
Pobiera identyfikator tego wielokąta. Ten identyfikator będzie unikalny wśród wszystkich wielokątów na mapie.
public List<LatLng> getPoints ()
Zwraca w tej chwili migawkę wierzchołków tego wielokąta . Zwracana lista jest kopią listy wierzchołków, więc zmiany wierzchołków wielokąta nie są odzwierciedlane na tej liście, a zmiany wprowadzone na liście nie są odzwierciedlane przez wielokąt. Aby zmienić wierzchołki wielokąta, wywołaj setPoints(List)
.
public int getStrokeColor ()
Pobiera kolor linii tego wielokąta.
Akcje powrotne
- kolor w formacie ARGB.
public int getStrokeJointType ()
Pobiera typ połączenia używanego we wszystkich wierzchołkach konturu wielokąta. Możliwe wartości znajdziesz na stronie JointType
.
Akcje powrotne
- typ połączenia.
public List<PatternItem> getStrokePattern ()
Pobiera wzór kreski jego konturu.
Akcje powrotne
- na wzór kreski.
public float getStrokeWidth ()
Pobiera szerokość kreski tego wielokąta.
Akcje powrotne
- szerokości w pikselach ekranu.
public Object getTag ()
Pobiera tag wielokąta.
Akcje powrotne
- jeśli tag został ustawiony o wartości
setTag
lubnull
, jeśli nie ustawiono żadnego tagu.
public float getZIndex ()
Pobiera wartość zIndex tego wielokąta.
Akcje powrotne
- wartość zIndex wielokąta.
public int hashCode ()
public boolean isClickable ()
Pobiera klikalność wielokąta. Jeśli wielokąt można kliknąć, po jego kliknięciu przez użytkownika aplikacja otrzyma
powiadomienie na GoogleMap.OnPolygonClickListener
.
Detektor zdarzeń jest zarejestrowany przez setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
.
Akcje powrotne
true
, jeśli wielokąt można kliknąć. W przeciwnym razie zwracafalse
.
public boolean isGeodesic ()
Określa, czy każdy odcinek linii jest narysowany jako geodezyjny.
Akcje powrotne
true
, jeśli każdy fragment jest narysowany jako geodezja lubfalse
, jeśli każdy odcinek jest narysowany jako linia prosta na odwzorowaniu Merkatora.
public boolean isVisible ()
Pobiera widoczność tego wielokąta.
Akcje powrotne
- widoczność wielokąta.
public void remove ()
Usuwa wielokąt z mapy. Po usunięciu wielokąta zachowanie wszystkich jego metod staje się nieokreślone.
public void setClickable (wartość logiczna)
Ustawia klikalność wielokąta. Jeśli wielokąt można kliknąć, po jego kliknięciu przez użytkownika aplikacja otrzyma
powiadomienie na GoogleMap.OnPolygonClickListener
.
Detektor zdarzeń jest zarejestrowany przez setOnPolygonClickListener(GoogleMap.OnPolygonClickListener)
.
Parametry
możliwe kliknięcie | Nowe ustawienie klikalności wielokąta. |
---|
public void setFillColor (int color)
Ustawia kolor wypełnienia tego wielokąta.
Parametry
kolor | kolor w formacie ARGB, |
---|
public void setGeodesic (boolean geodesic)
Określa, czy każdy odcinek linii ma być rysowany jako geodezyjny.
Parametry
geodezyjne | jeśli true , każdy fragment zostanie narysowany jako geodezja. Jeśli false , każdy fragment zostanie narysowany jako linia prosta w rzutowaniu Merkatora.
|
---|
public void setHoles (List<? extends List<LatLng>> dziury)
Ustawia otwory w tym wielokątie. Ta metoda spowoduje skopiowanie otworów, więc kolejne mutacje do holes
nie będą miały wpływu na ten wielokąt.
Parametry
otwory | lista otworów. Otwór to lista otworów LatLng .
|
---|
public void setPoints (List<LatLng> pkt)
Ustawia punkty tego wielokąta. Ta metoda pobierze kopię punktów, więc kolejne mutacje funkcji points
nie będą miały na niego wpływu.
Parametry
pkt | lista wierzchołków wielokąta (LatLng ).
|
---|
public void setStrokeColor (int color)
Ustawia kolor linii tego wielokąta.
Parametry
kolor | kolor w formacie ARGB, |
---|
public void setStrokeJointType (int jointType)
public void setStrokePattern (List<PatternItem> wzór)
Ustawia wzór linii obrysu wielokąta. Domyślny wzór kreski jest ciągły i reprezentowany przez null
.
Parametry
wzór | na wzór kreski. |
---|
public void setStrokeWidth (szerokości zmiennoprzecinkowe)
Ustawia szerokość kreski tego wielokąta.
Parametry
szerokość | szerokości w pikselach wyświetlanych. |
---|
public void setTag (tag obiektu)
Ustawia tag wielokąta.
Dzięki tej właściwości możesz powiązać dowolny obiekt Object
z tym wielokątem. Na przykład obiekt Object
może zawierać informacje o tym, co reprezentuje wielokąt. Jest to łatwiejsze niż przechowywanie osobnego elementu Map<Polygon, Object>
. Możesz też powiązać identyfikator String
odpowiadający identyfikatorowi ze zbioru danych. Pakiet SDK Map Google na Androida nie odczytuje ani nie zapisuje tej właściwości. Twoim obowiązkiem jest wywołanie metody setTag(null)
w celu usunięcia tagu, gdy nie będzie już potrzebny. Zapobiegnie to wyciekom pamięci w aplikacji.
Parametry
tag | Jeśli wartość to null, tag jest usuwany. |
---|
public void setVisible (boolean visible)
Ustawia widoczność tego wielokąta. Kiedy wielokąt jest niewidoczny, nie jest on rysowany, ale zachowuje wszystkie pozostałe właściwości.
Parametry
widoczna | jeśli true , wielokąt jest widoczny. Jeśli false , nie jest.
|
---|
public void setZIndex (float zIndex)
Ustawia wartość zIndex tego wielokąta. Wielokąty o większych wartościach zInddi są rysowane wyżej niż te z niższymi indeksami.
Parametry
zIndex | wartości zIndex tego wielokąta. |
---|