【AndroidでSkobblerを使う】地図上に線を表示する

このエントリーを Google ブックマーク に追加
Pocket
[`yahoo` not found]

地図上に線を描くときはクラス[SKPolyline]を使用します。
SKMapSurfaceView#addPolylineを使うことで画面上に表示できるようになります。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@Override
public void onSingleTap(SKScreenPoint skScreenPoint) {
    SKPolyline skPolyline = getSKPolyline(skScreenPoint);
    skMapSurfaceView.addPolyline(skPolyline);
}
private SKPolyline getSKPolyline(SKScreenPoint skScreenPoint) {
    SKPolyline skPolyline = new SKPolyline();
    //IDを設定する
    skPolyline.setIdentifier(1);
    //線の色を設定する
    skPolyline.setOutlineColor(new float[]{1f, 0f, 0f, 1f});
    //線の色を設定する
    skPolyline.setColor(new float[]{1f, 1f, 1f, 1f});
    //線を破線表示にし、間隔の長さを指定する。
    skPolyline.setOutlineDottedPixelsSkip(100);
    //線を破線表示にし、線の長さを指定する。
    skPolyline.setOutlineDottedPixelsSolid(100);
    //線の幅を設定する
    skPolyline.setLineSize(2);
    //枠線の幅を設定する
    skPolyline.setOutlineSize(5);
    //線の経路を設定する。複数設定することで折れ線等を表現できる。
    List<skcoordinate> linList = new ArrayList<>();
    SKCoordinate startPoint = skMapSurfaceView.pointToCoordinate(skScreenPoint);
    SKCoordinate middlePoint = new SKCoordinate(startPoint.getLongitude(), startPoint.getLatitude() + 0.001f);
    SKCoordinate endPoint = new SKCoordinate(startPoint.getLongitude() + 0.001f, startPoint.getLatitude() + 0.001f);
    linList.add(startPoint);
    linList.add(middlePoint);
    linList.add(endPoint);
    skPolyline.setNodes(linList);
    return skPolyline;
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)