// 라인 선택 모듈
int CTRDC2DMap::CheckLineSelect(CPoint mousePt)
{
int nRes = -1;
int lineWidth = 5;
for (int i=0; i<ROUTE_MAX_COUNT; i++)
{
for (int k=0; k<(int)m_stRouteData[i].m_vRouteData.size()-1; k++)
{
CPoint startP, endP;
m_pMapHandler->TransformGeoToScreen(&m_stRouteData[i].m_vRouteData[k], &startP);
m_pMapHandler->TransformGeoToScreen(&m_stRouteData[i].m_vRouteData[k+1], &endP);
int dx = endP.x - startP.x;
int dy = endP.y - startP.y;
int dx1 = mousePt.x - startP.x;
int dy1 = mousePt.y - startP.y;
int a = 0, b = 0, c = 0;
if (abs(dx) > 0 && abs(dy) < abs(dx))
{
if (dx * dx1 >= 0 && abs(dx1) <= abs(dx))
{
a = (dy * dx1);
b = (dx * dy1);
c = abs(dx * lineWidth);
if (abs(a - b) <= c)
{
nRes = i;
break;
}
}
}
else if (abs(dy) > 0)
{
if (dy * dy1 >= 0 && (abs(dy1) <= abs(dy)))
{
a = (dx * dy1);
b = (dy * dx1);
c = abs(dy * lineWidth);
if (abs(a - b) <= c)
{
if (abs(a - b) <= c)
{
nRes = i;
break;
}
}
}
}
}
if (nRes != -1)
{
break;
}
}
return nRes;
}