Android SDK

안드로이드 어플리케이션에서 routo 지도를 활용할 수 있도록 제공되는 소프트웨어 개발 도구 입니다.

Android SDK Examples

컨트롤 위치 변경

로고 표시 위치를 설정합니다.

예제코드

mapView.setLogoPosition(10, 10, 2)

Android SDK 사용자 메뉴얼

void setLogoPosition (int horizontalMargin, int veriticalMargin, int nPosition)

• horizontalMargin – 로고 외부와의 수평 간격
• veriticalMargin – 로고 외부와의 수직 간격
• nPosition – 위치 (nPosition - 0: delete,
                                1: LeftTop, 
                                2: RightTop, 
                                3: RightBottom, 
                                4: LeftBottom)

예제 실행 결과 화면

화면이동

설정한 줌레벨 및 위치로 지도 화면을 이동합니다.

예제코드

PlayMapPoint hp = new PlayMapPoint(37.56640, 126.97851);
mapView.setMapCenterPoint(hp, 1000);

Android SDK 사용자 메뉴얼

void setMapCenterPoint (PlayMapPoint playMapPoint, int durationMs)

• playMapPoint – 지도의 중심좌표
• durationMs – 이동시 속도  

예제 실행 결과 화면

줌 레벨 및 화면 이동

해당 위치로 지도 화면을 이동합니다.

예제코드

PlayMapPoint hp = new PlayMapPoint(37.56640, 126.97851);
    mapView.setMapCenterPoint(hp, 17, 1000)

Android SDK 사용자 메뉴얼

void setMapCenterPoint (PlayMapPoint playMapPoint, int durationMs)

•	playMapPoint – 지도의 중심좌표
•	durationMs – 이동시 속도    

예제 실행 결과 화면

레벨 선택

지도 줌레벨을 11레벨로 설정합니다.

예제코드

mapView.setZoom(11)

Android SDK 사용자 메뉴얼

boolean setZoom (int zoom)

•	zoom – 축적 레벨

예제 실행 결과 화면

확대

지도 줌레벨을 1증가하여 화면을 확대합니다.

예제코드

mapView.zoomIn()

Android SDK 사용자 메뉴얼

boolean zoomIn ()

예제 실행 결과 화면

축소

지도 줌레벨을 1감소하여 화면을 축소합니다.

예제코드

mapView.zoomOut()

Android SDK 사용자 메뉴얼

boolean zoomOut ()

예제 실행 결과 화면

확대/축소 설정 on/off

지도 화면 확대/축소 기능을 on/off 합니다.

예제코드

if (m_bZoom)
    m_bZoom = false;
else
    m_bZoom = true;

mapView.setZoomEnabled(m_bZoom)

Android SDK 사용자 메뉴얼

void setZoomEnabled (boolean enabled)

•	enabled – 확대/축소 가능 여부

예제 실행 결과 화면

반경설정

해당 반경의 지도가 화면에 맞춰 표시되도록 합니다.

예제코드

PlayMapPoint hp = new PlayMapPoint(37.56640, 126.97851);
mapView.setMapCenterPointByMeter(hp, 500, 500)

Android SDK 사용자 메뉴얼

void setMapCenterPointByMeter (PlayMapPoint playMapPoint, int meter, int durationMs)

•	playMapPoint– 지도의 중심좌표
•	meter – 직경(meter)
•	durationMs – 이동시 속도

예제 실행 결과 화면

지도회전 설정 on/off

지도 회전 기능을 on/off 합니다.

예제코드

mapView.setMapRotate(m_bAngle)

Android SDK 사용자 메뉴얼

void setMapRotate(boolean enabled) 

•	enabled – 회전 가능 여부

예제 실행 결과 화면

지도방향 설정

설정한 각도로 지도 방향을 설정합니다.

예제코드

mapView.setMapRotate(true);
mapView.setMapRotateAngle(180);

Android SDK 사용자 메뉴얼

void setMapRotate(boolean enabled)        

•	enabled – 회전 상태 변경.

void setMapRotateAngle(double degree)

•	degree – 각도

예제 실행 결과 화면

패닝 설정 on/off

지도 화면 이동 기능을 on/off합니다.

예제코드

if (m_bMove)
    m_bMove = false;
else
    m_bMove = true;

mapView.setPanEnabled(m_bMove)

Android SDK 사용자 메뉴얼

void setPanEnabled (boolean enabled)

•	enabled – 가능 여부

예제 실행 결과 화면

나침반 모드설정

나침반 기능을 on/off 합니다.

예제코드

if (m_bCompass)
    m_bCompass = false;
else
    m_bCompass = true;

mapView.setMapRotate(m_bCompass); //지도 회전 활성화 
mapView.setCompassMode(m_bCompass)

Android SDK 사용자 메뉴얼

void setCompassMode (boolean Enable)

•	enabled – 가능 여부

예제 실행 결과 화면

트레킹 모드설정

GPS 좌표에 따라 화면을 표시 하는 트래킹 기능을 on/off 합니다.

예제코드

mapView.setTrackingMode(false)

Android SDK 사용자 메뉴얼

void setTrackingMode (boolean enabled)

•	enabled – 가능 여부

예제 실행 결과 화면

텍스트 그리기

지도 화면에 텍스트를 표시합니다.

예제코드

public void drawLabelItem() {
    PlayMapText labelItem = new PlayMapText();


    PlayMapPoint point = mapView.getMapCenterPoint();
    labelItem.setMapPoint(point);

    labelItem.setName("Hello!");
    labelItem.setTextColor(Color.RED);
    labelItem.setTextSize(15);

    mapView.addLabel("testLabel" + mLabelId++, labelItem);
}

Android SDK 사용자 메뉴얼

void addLabel (final String id, final PlayMapText label)

•	id – 추가할 id
•	label – 추가할 라벨

예제 실행 결과 화면

텍스트 지우기

지도 화면의 텍스트를 삭제합니다.

예제코드

mapView.removeAllLabel()

Android SDK 사용자 메뉴얼

void removeAllLabel ()

마커 그리기

지도 화면에 마커를 표시합니다.

예제코드

public void drawMarkerItem() {
    PlayMapMarker markerItem = new PlayMapMarker();

    PlayMapPoint point = mapView.getMapCenterPoint();
    markerItem.setMapPoint(point);
    markerItem.setCalloutTitle("title");
    markerItem.setCalloutSubTitle("SubTitle");
    markerItem.setCanShowCallout(true);
    markerItem.setAutoCalloutVisible(true);

    String strId = String.format("marker_%d", mCircleID++);
    mapView.addMarkerItem(strId, markerItem);
    mArrayMarkerID.add(strId);
}

Android SDK 사용자 메뉴얼

void addMarkerItem (final String id, final PlayMapMarker markerItem)

•	id – 추가할 id
•	markerItem – 추가할 마커

예제 실행 결과 화면

마커 지우기

지도 화면의 마커를 삭제합니다.

예제코드

public void removeMarkerItem() {
    if (mArrayMarkerID.size() <= 0)
        return;

    mapView.removeAllMarkerItem();
    mArrayMarkerID = new ArrayList<String>();
    mMarkerID = 0;
}

Android SDK 사용자 메뉴얼

void removeAllMarkerItem ()

마커 fit

지도에 표시된 모든 마커가 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

mapView.fitMarker()

Android SDK 사용자 메뉴얼

void fitMarker ()

예제 실행 결과 화면

서클 그리기

지도 화면에 원을 표시합니다.

예제코드

public void addCircle() {
    PlayMapCircle circle = new PlayMapCircle();

    circle.setRadius(300);
    circle.setCircleWidth(5);
    circle.setLineColor(Color.RED);
    circle.setAreaColor(Color.GRAY);
    circle.setLineAlpha(1f);
    circle.setAreaAlpha(0.5f);

    PlayMapPoint point = mapView.getMapCenterPoint();
    circle.setCenterPoint(point);

    String strId = String.format("circle%d", mCircleID++);
    mapView.addCircle(strId, circle);
    mArrayCircleID.add(strId);
}

Android SDK 사용자 메뉴얼

void addCircle (final String id, final PlayMapCircle circle)

•	id – 추가할 id
•	circle – 추가할 서클

예제 실행 결과 화면

서클 지우기

지도 화면의 원을 삭제합니다.

예제코드

public void removeCircle() {
    if (mArrayCircleID.size() <= 0)
        return;

    mapView.removeAllCircle();
    mArrayCircleID = new ArrayList<String>();
    mCircleID = 0;

}

Android SDK 사용자 메뉴얼

void removeAllCircle()

서클 fit

지도에 표시된 모든 원이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

mapView.fitCircle()

Android SDK 사용자 메뉴얼

void fitCircle()

예제 실행 결과 화면

사각형 그리기

지도 화면에 사각형을 표시합니다.

예제코드

public void drawRectangle() {

    PlayMapPolygon rectangle = new PlayMapPolygon();

    rectangle.setLineColor(Color.DKGRAY);
    rectangle.setAreaColor(Color.YELLOW);
    rectangle.setAreaAlpha(0.5f);
    rectangle.setPolygonWidth(0.1f);

    PlayMapPoint point = mapView.getMapCenterPoint();
    PlayMapPoint point1 = new PlayMapPoint(point.getLatitude() + 0.004, point.getLongitude() - 0.004);
    PlayMapPoint point2 = new PlayMapPoint(point.getLatitude() - 0.004, point.getLongitude() + 0.004);

    double minLat = 0;
    double minLon = 0;
    double maxLat = 0;
    double maxLon = 0;

    double lat = 0;
    double lon = 0;
    if (point1.getLongitude() > point2.getLongitude()) {
        lon = point1.getLongitude() - ((point1.getLongitude() - point2.getLongitude()) / 2);

        minLon = point2.getLongitude();
        maxLon = point1.getLongitude();
    } else {
        lon = point2.getLongitude() - ((point2.getLongitude() - point1.getLongitude()) / 2);

        minLon = point1.getLongitude();
        maxLon = point2.getLongitude();
    }
    if (point1.getLatitude() > point2.getLatitude()) {
        lat = point1.getLatitude() - ((point1.getLatitude() - point2.getLatitude()) / 2);


        minLat = point2.getLatitude();
        maxLat = point1.getLatitude();

    } else {
        lat = point2.getLatitude() - ((point2.getLatitude() - point1.getLatitude()) / 2);

        minLat = point1.getLatitude();
        maxLat = point2.getLatitude();
    }

    rectangle.addPolygonPoint(new PlayMapPoint(maxLat, minLon));
    rectangle.addPolygonPoint(new PlayMapPoint(maxLat, maxLon));
    rectangle.addPolygonPoint(new PlayMapPoint(minLat, maxLon));
    rectangle.addPolygonPoint(new PlayMapPoint(minLat, minLon));

    String strId = String.format("rectangle%d", mRectangleID++);
    mapView.addRectangle(strId, rectangle);
    mArrayRectangleID.add(strId);
}

Android SDK 사용자 메뉴얼

void addRectangle (final String id, final PlayMapPolygon rectangle)

•	id – 추가할 id
•	rectangle – 추가할 사각형

예제 실행 결과 화면

사각형 지우기

지도 화면의 사각형을 삭제합니다.

예제코드

public void removeRectangle() {
    if (mArrayRectangleID.size() <= 0)
        return;

    mArrayRectangleID = new ArrayList<String>();
    mRectangleID = 0;
    mapView.removeAllRectangle();
}

Android SDK 사용자 메뉴얼

void removeAllRectangle ()

사각형 fit

지도에 표시된 모든 사각형이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

mapView.fitRectangle()

Android SDK 사용자 메뉴얼

void fitRectangle ()

예제 실행 결과 화면

직선 그리기

지도 화면에 선을 표시합니다.

예제코드

public void drawLine() {
    PlayMapPolyLine polyLine = new PlayMapPolyLine();

    polyLine.setLineColor(Color.BLUE);
    polyLine.setLineWidth(1);


    PlayMapPoint center_p = null;

    PlayMapPoint point = mapView.getMapCenterPoint();
    PlayMapPoint point1 = new PlayMapPoint(point.getLatitude() - 0.002, point.getLongitude() - 0.002);
    PlayMapPoint point2 = new PlayMapPoint(point.getLatitude() + 0.002, point.getLongitude() - 0.002);
    PlayMapPoint point3 = new PlayMapPoint(point.getLatitude() - 0.002, point.getLongitude());
    PlayMapPoint point4 = new PlayMapPoint(point.getLatitude() + 0.002, point.getLongitude() + 0.002);
    PlayMapPoint point5 = new PlayMapPoint(point.getLatitude() - 0.002, point.getLongitude() + 0.002);
    polyLine.addLinePoint(point1);
    polyLine.addLinePoint(point2);
    polyLine.addLinePoint(point3);
    polyLine.addLinePoint(point4);
    polyLine.addLinePoint(point5);

    String strId = String.format("line%d", mLineID++);
    mapView.addPolyLine(strId, polyLine);
    mArrayLineID.add(strId);
}

Android SDK 사용자 메뉴얼

void addPolyLine (final String id, final PlayMapPolyLine polyLine)

•	id – 추가할 id
•	polyLine – 추가할 PolyLine

예제 실행 결과 화면

직선 지우기

지도 화면의 선을 삭제합니다.

예제코드

public void erasePolyLine() {
    if (mArrayLineID.size() <= 0)
        return;

    mapView.removeAllPolyLine();
    mArrayLineID = new ArrayList<String>();
    mLineID = 0;

}

Android SDK 사용자 메뉴얼

void removeAllPolyLine ()

직선 fit

지도에 표시된 모든 선이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

mapView.fitPolyLine()

Android SDK 사용자 메뉴얼

void fitPolyLine ()

예제 실행 결과 화면

폴리곤 그리기

지도 화면에 폴리곤을 표시합니다.

예제코드

public void drawPolygon() {

    PlayMapPolygon polygon = new PlayMapPolygon();

    polygon.setLineColor(Color.DKGRAY);
    polygon.setAreaColor(Color.YELLOW);
    polygon.setAreaAlpha(0.8f);
    polygon.setLineAlpha(0.9f);
    polygon.setPolygonWidth(5f);

    PlayMapPoint point = mapView.getMapCenterPoint();

    PlayMapPoint point1 = new PlayMapPoint(point.getLatitude() - 0.004, point.getLongitude() - 0.006);
    PlayMapPoint point2 = new PlayMapPoint(point.getLatitude(), point.getLongitude() - 0.004);
    PlayMapPoint point3 = new PlayMapPoint(point.getLatitude() + 0.002, point.getLongitude() - 0.006);
    PlayMapPoint point4 = new PlayMapPoint(point.getLatitude() + 0.002, point.getLongitude() - 0.002);
    PlayMapPoint point5 = new PlayMapPoint(point.getLatitude() + 0.004, point.getLongitude());
    PlayMapPoint point6 = new PlayMapPoint(point.getLatitude() + 0.002, point.getLongitude() + 0.002);
    PlayMapPoint point7 = new PlayMapPoint(point.getLatitude() + 0.002, point.getLongitude() + 0.006);
    PlayMapPoint point8 = new PlayMapPoint(point.getLatitude(), point.getLongitude() + 0.004);
    PlayMapPoint point9 = new PlayMapPoint(point.getLatitude() - 0.004, point.getLongitude() + 0.006);
    PlayMapPoint point10 = new PlayMapPoint(point.getLatitude() - 0.002, point.getLongitude());
    polygon.addPolygonPoint(point1);
    polygon.addPolygonPoint(point2);
    polygon.addPolygonPoint(point3);
    polygon.addPolygonPoint(point4);
    polygon.addPolygonPoint(point5);
    polygon.addPolygonPoint(point6);
    polygon.addPolygonPoint(point7);
    polygon.addPolygonPoint(point8);
    polygon.addPolygonPoint(point9);
    polygon.addPolygonPoint(point10);

    String strId = String.format("polygon%d", mPolygonID++);
    mapView.addPolygon(strId, polygon);
    mArrayPolygonID.add(strId);

}

Android SDK 사용자 메뉴얼

void addPolygon (final String id, final PlayMapPolygon polygon)

•	id – 추가할 id
•	polygon – 추가할 Polygon

예제 실행 결과 화면

폴리곤 지우기

지도 화면의 폴리곤을 삭제합니다.

예제코드

public void removePolygon() {
    if (mArrayPolygonID.size() <= 0)
        return;

    mapView.removeAllPolygon();
    mArrayPolygonID = new ArrayList<String>();
    mPolygonID = 0;

}

Android SDK 사용자 메뉴얼

void removeAllPolygon ()

폴리곤 fit

지도에 표시된 모든 폴리곤이 한 화면에 보일 수 있도록 지도 줌레벨 및 위치를 조정합니다.

예제코드

mapView.fitPolygon()

Android SDK 사용자 메뉴얼

void fitPolygon ()

예제 실행 결과 화면

그라운드이미지 추가

지도 화면에 이미지를 표시합니다.

예제코드

public void addGroundImage() {
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.hy);

    if (mBitmap != null)
        bitmap = mBitmap;

    int width = bitmap.getWidth();
    int height = bitmap.getHeight();
    PointF centerPixel = mapView.getPointToPixel(mapView.getMapCenterPoint());
    PointF p1 = new PointF(centerPixel.x - (width / 2), centerPixel.y - (height / 2));
    PointF p2 = new PointF(centerPixel.x + (width / 2), centerPixel.y - (height / 2));
    PointF p3 = new PointF(centerPixel.x + (width / 2), centerPixel.y + (height / 2));
    PointF p4 = new PointF(centerPixel.x - (width / 2), centerPixel.y + (height / 2));

    PlayMapPoint bp1 = mapView.getPointFromPixel(p1);
    PlayMapPoint bp2 = mapView.getPointFromPixel(p2);
    PlayMapPoint bp3 = mapView.getPointFromPixel(p3);
    PlayMapPoint bp4 = mapView.getPointFromPixel(p4);

    String id = "custom" + mCustomImg++;
    mapView.addGroundImage(id, bp1, bp2, bp3, bp4, bitmap);

}

Android SDK 사용자 메뉴얼

void addGroundImage (final String id,
final PlayMapPoint leftTop, 
final PlayMapPoint rightTop, 
final PlayMapPoint rightBottom, 
final PlayMapPoint leftBottom, 
final Bitmap bitmap)

•	id – 추가할 id
•	leftTop – 좌측 상단의 위경도 좌표
•	rightTop – 우측상단의 위경도 좌표
•	rightBottom – 우측하단의 위경도 좌표
•	leftBottom – 좌측하단의 위경도 좌표
•	bitmap – 추가할 이미지

예제 실행 결과 화면

그라운드이미지 제거

지도 화면의 이미지를 삭제합니다.

예제코드

mapView.removeAllGroundImage()

Android SDK 사용자 메뉴얼

void removeAllGroundImage ()

거리측정

지도 화면 위에서 거리를 측정 합니다.

예제코드

mapView.setDistanceMode(true)

Android SDK 사용자 메뉴얼

void setDistanceMode (final boolean enabled)

•	enabled – 가능 여부

예제 실행 결과 화면

거리지우기

지도 화면 위의 거리 측정 선을 삭제 합니다.

예제코드

mapView.setDistanceMode(false)

Android SDK 사용자 메뉴얼

void setDistanceMode (final boolean enabled)

•	enabled – 가능 여부

면적측정

지도 화면 위에서 면적을 측정 합니다.

예제코드

mapView.setMeasuresMode(true)

Android SDK 사용자 메뉴얼

void setMeasuresMode (final boolean enabled)

•	enabled – 가능 여부

예제 실행 결과 화면

면적지우기

지도 화면 위의 면적 측정 폴리곤을 삭제 합니다.

예제코드

mapView.setMeasuresMode(false)

Android SDK 사용자 메뉴얼

void setMeasuresMode (final boolean enabled)

•	enabled – 가능 여부

마커클러스터 등록

지도 화면 위에 마커 클러스터를 표시 합니다.

예제코드

public void drawMarkerCluster() {
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < 20; j++) {
            MarkerCluster markerItem = new MarkerCluster();

            PlayMapPoint point = new PlayMapPoint(37.570841 + (i * 0.0005), 126.985302 + (j * 0.0005));
            markerItem.setMapPoint(point);

            String strId = String.format("marker_%d", mCircleID++);
            mapView.addClusterMarker(strId, markerItem);
            mArrayMarkerID.add(strId);
        }
    }

    mapView.setMapCenterPoint(new PlayMapPoint(37.570841, 126.985302), 1000);
    mapView.setClusterEnable(true);
}

Android SDK 사용자 메뉴얼

void setClusterEnable (boolean enable)

•	enabled – 가능 여부

예제 실행 결과 화면

마커클러스터 제거

지도 화면의 마커 클러스터를 삭제 합니다.

예제코드

mapView.removeAllClusterMarker()

Android SDK 사용자 메뉴얼

void removeAllClusterMarker ()