Google Maps Android Polyline에 윤곽선을 그립니다.
따라서 Maps 애플리케이션의 Direction 같은 것을 Polyline으로 표현하고 싶다면이렇게 하면 보기에 매우 아름답다.
이런 느낌으로 하면 안 되나?잠깐만요.
이것을 간단하게 실현하는 방법이 있다.
아래처럼 스트로크 컬러로 바른 폴리라인, 위에는 필립 컬러로 살짝 가늘게 바른 폴리라인이 겹쳐 스트로크가 그려진 것처럼 보인다.
void drawPolyline(GoogleMap googleMap, List<LatLng> positions) {
int fillColor = ContextCompat.getColor(this, R.color.polylineFillColor);
int strokeColor = ContextCompat.getColor(this, R.color.polylineStrokeColor);
// strokeに見せかけるpolylineを描画する
PolylineOptions strokeOptions = new PolylineOptions()
.width(POLYLINE_WIDTH_IN_PIXELS)
.color(strokeColor)
.addAll(positions);
googleMap.addPolyline(strokeOptions);
// fillに見せかけるpolylineを描画する
PolylineOptions fillOptions = new PolylineOptions()
// strokeのwidth分細らせて、strokeに見せかけるpolylineが見えるようにする
.width(POLYLINE_WIDTH_IN_PIXELS - POLYLINE_STROKE_WIDTH_IN_PIXELS * 2)
.color(fillColor)
.addAll(positions);
googleMap.addPolyline(fillOptions);
}
매번 이런 글을 쓸 때마다 맛이 납니다. 다음strike를 지지하는polyline반을 하는 것이 좋습니다.이렇게 되면 stroke를 정식으로 지원할 때의 이전도 쉽다.
public class StrokedPolylineOptions implements Parcelable {
private final PolylineOptions fill;
private final PolylineOptions stroke;
public StrokedPolylineOptions() {
fill = new PolylineOptions();
stroke = new PolylineOptions();
}
public StrokedPolylineOptions add(LatLng point) {
fill.add(point);
stroke.add(point);
return this;
}
public StrokedPolylineOptions width(float width) {
float strokeWidth = getStrokeWidth();
fill.width(width - strokeWidth * 2);
stroke.width(width);
return this;
}
public StrokedPolylineOptions fillColor(int color) {
fill.color(color);
return this;
}
... 省略
public StrokedPolyline addPolylineTo(GoogleMap googleMap) {
Polyline strokePolyline = googleMap.addPolyline(stroke);
Polyline fillPolyline = googleMap.addPolyline(fill);
return new StrokedPolyline(fillPolyline, strokePolyline);
}
}
Stroked Polyline과 같은 반을 만들면 상술한 draw Polyline은 직관적으로 변한다.void drawPolyline(GoogleMap googleMap, List<LatLng> positions) {
int fillColor = ContextCompat.getColor(this, R.color.polylineFillColor);
int strokeColor = ContextCompat.getColor(this, R.color.polylineStrokeColor);
StrokedPolylineOptions options = new StrokedPolylineOptions()
.width(POLYLINE_WIDTH_IN_PIXELS)
.strokeColor(strokeColor)
.strokeWidth(POLYLINE_STROKE_WIDTH_IN_PIXELS)
.fillColor(fillColor)
.width(POLYLINE_WIDTH_IN_PIXELS)
.addAll(positions);
options.addPolylineTo(googleMap);
}
이상.샘플 코드는 아래 Giithub 창고를 참조하세요.
Reference
이 문제에 관하여(Google Maps Android Polyline에 윤곽선을 그립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/esmasui/items/d7b31e73f5928ac9e335텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)