UECMapUtil 추가 및 ECMap 생성
uses
ECMaps, UECMapUtil;
type
map : TECMap;
...
private
//POI를 그리기 위한 함수 선언
procedure doNumDrawPOI(const canvas : TCanvas; var r : TRect; item : TECMapPoi);
end;
POI Draw 함수 선언
procedure doNumDrawPOI(const canvas : TCanvas; var r : TRect; item : TECMapPoi);
var
x, y, w, h : Integer;
s : string;
begin
canvas.font.Size := 7; //Marker에 들어갈 폰트 사이즈
canvas.font.color := clWhite; //폰트 색깔
s := IntToStr(item.Id); //Marker에 들어갈 내용
w := canvas.TextWidth(s); h := canvas.TextHeight(s); x := 1 + ((r.Left + r.Right) - w) DIV 2; y := 1 + ((r.Top + r.Bottom) - h) DIV 2; canvas.brush.Style := bsClear; canvas.TextRect( r, x, y, s );
end;
Add Marker
procedure AddMarker;
var
index : Integer;
begin
index := Map.Pois.add(위도, 경도);
map.pois[index].Shape := poiEllipse; //POI 모양 map.pois[index].width := 24; //Marker 크기 map.pois[index].height := 24; //Marker 크기 map.Pois[index].ZIndex := 1; map.Pois[index].Color := clBlue; //기본 POI 색깔 map.Pois[index].HoverColor := clBlue; //Mouse Over 시 색깔
map.pois[index].OnBeforeDrawPOI := doNumDrawPOI;
end;
일반 마커를 추가하는 것보다 POI를 사용하면 지도가 아닌 메모리 상의 좌표에 찍어주기 때문에 속도가 월등히 빠릅니다.
다만, 표현할 수 있는 마커 모양이 한정적입니다.