<html>
<head>
<script language="javascript">
<!--
var stcAraMsg = new Array(8); // Message UI
var satellite = new Array(12); // Satellite UI
var img_gps_false, img_gps_true, img_gps_row; // Satellite Images
var GPSOnFlag = false;
//------------------------------------------------------------------------------
// Create Menu for GPS Information
//------------------------------------------------------------------------------
function CreateGPSMenu() {
var ctrlman = m_Map.GetCtrlMan();
var uiman = ctrlman.GetUIMan();
var util = m_Map.GetUtility();
var ImageMan = ctrlman.GetImageMan();
ImageMan.SetDefaultPath("http://www.talmap.co.kr/web/search/img/");
var CtrlState = ctrlman.GetControlState();
var sizeDP = CtrlState.GetSizeDP();
var UIID = 400;
// Panel
var panel = uiman.CreateUI_Panel(uiman);
panel.SetUIID(UIID++);
panel.SetParent(uiman);
panel.SetBound(sizeDP._CX-507, sizeDP._CY-215, 510, 181);
panel.SetAnchor(util.GetConstToValue("TMUIOBJ_ANCHOR_RIGHT") | util.GetConstToValue("TMUIOBJ_ANCHOR_BOTTOM"));
panel.SetAlpha(10);
// Tabl
var tab = uiman.CreateUI_Button(uiman);
tab.SetUIID(UIID++);
tab.SetParent(panel);
tab.SetImageList("btn_tab_2.png", 27, 141);
tab.SetBound(0, 8, 27, 141);
tab.SetImageAutoChange(0);
tab.SetItemIndex(0);
// Back Image
var bg = uiman.CreateUI_Image(uiman);
bg.SetUIID(UIID++);
bg.SetParent(panel);
bg.SetImage("bg_gps.png");
bg.SetBound(25, 0, 483, 181);
// Message Area
var pos_y = 58;
var pos_x = 245;
for (var i=0; i < stcAraMsg.length; i++) {
stcAraMsg[i] = uiman.CreateUI_StaticText(uiman);
stcAraMsg[i].SetUIID(UIID++);
stcAraMsg[i].SetParent(bg);
stcAraMsg[i].SetBound(pos_x, pos_y, 200, 18);
stcAraMsg[i].SetAnchor(util.GetConstToValue("TMUIOBJ_ANCHOR_LEFT") | util.GetConstToValue("TMUIOBJ_ANCHOR_TOP"));
stcAraMsg[i].SetBackColor(util.RGBAColor(125, 125, 125, 10));
stcAraMsg[i].SetFont(10, 1, "Tahoma");
stcAraMsg[i].SetUIObjFontColor(util.RGBColor(255,255,255));
stcAraMsg[i].SetCaption(" ");
stcAraMsg[i].SetCanFocus(0);
stcAraMsg[i].SetCanClick(0);
stcAraMsg[i].SetAutosize(1);
stcAraMsg[i].SetHint("Message Area");
if (i==2 || i==4|| i==6) {
pos_y = pos_y; pos_x = 245 + 138;
} else {
pos_y += 23; pos_x = 245;
}
}
img_gps_row = ImageMan.LoadImage("gps_1", "GPS_state_row.png");
img_gps_true = ImageMan.LoadImage("gps_2", "GPS_state_true.png");
img_gps_false = ImageMan.LoadImage("gps_3", "GPS_state_false.png");
for (var i=0; i < satellite.length; i++) {
satellite[i] = uiman.CreateUI_Image(uiman);
satellite[i].SetUIID(UIID++);
satellite[i].SetParent(bg);
satellite[i].SetMGImage(img_gps_true);
satellite[i].SetBound(0, 0, 28, 15);
satellite[i].SetVisible(0);
satellite[i].SetCanFocus(1);
satellite[i].SetHint(UIID);
}
// GPS Open Button
var btn_load = uiman.CreateUI_Button(uiman);
btn_load.SetUIID(UIID++);
btn_load.SetParent(bg);
btn_load.SetImageList("btn_load.png", 75, 31);
btn_load.SetBound(197, 15, 75, 31);
btn_load.SetVisible(1);
btn_load.AddEventMode(util.GetConstToValue("TMEVENTTYPE_MOUSEDOWN"));
// GPS Close Button
var btn_close = uiman.CreateUI_Button(uiman);
btn_close.SetUIID(UIID++);
btn_close.SetParent(bg);
btn_close.SetImageList("btn_close.png", 75, 31);
btn_close.SetBound(197, 15, 75, 31);
btn_close.SetVisible(0);
btn_close.AddEventMode(util.GetConstToValue("TMEVENTTYPE_MOUSEDOWN"));
// Button for viewing current GPS location
var btn_location = uiman.CreateUI_Button(uiman);
btn_location.SetUIID(UIID++);
btn_location.SetParent(bg);
btn_location.SetImageList("btn_location.png", 75, 31);
btn_location.SetBound(275, 15, 75, 31);
btn_location.AddEventMode(util.GetConstToValue("TMEVENTTYPE_MOUSEDOWN"));
// Up Button for Receiving Period of GPS
var btn_up = uiman.CreateUI_Button(uiman);
btn_up.SetUIID(UIID++);
btn_up.SetParent(bg);
btn_up.SetImageList("btn_gps_up.png", 24, 31);
btn_up.SetBound(425, 15, 24, 31);
btn_up.AddEventMode(util.GetConstToValue("TMEVENTTYPE_MOUSEDOWN"));
// Down Button for Receiving Period of GPS
var btn_down = uiman.CreateUI_Button(uiman);
btn_down.SetUIID(UIID++);
btn_down.SetParent(bg);
btn_down.SetImageList("btn_gps_down.png", 24, 31);
btn_down.SetBound(450, 15, 24, 31);
btn_down.AddEventMode(util.GetConstToValue("TMEVENTTYPE_MOUSEDOWN"));
}
//------------------------------------------------------------------------------
// GPS File Open
//------------------------------------------------------------------------------
function GPSOpen() {
var CtrlMan = m_Map.GetCtrlMan();
var util = m_Map.GetUtility();
var path = util.FileDialog("File Open", "C:\\", "", "*.txt|*.txt|*.log|*.log");
var GPSMan = CtrlMan.GetGPSMan();
if (util.FileExists(path) == true) {
if(GPSMan.OpenFile(path) == false) {
alert("Failed to Load the GPS Data.");
return;
}
} else {
if (confirm("ÆÄÀÏ ¿±â¿¡ ½ÇÆÐ ÇÏ¿´½À´Ï´Ù. \n\nWould you load a sample data?")) {
path = "http://www.talmap.co.kr/tutorial/sample_gpslog/20080329.txt";
if(!GPSMan.OpenFile(path)) {
alert("Failed to Load the GPS Data.");
return;
}
} else {
return;
}
}
var carMan = CtrlMan.GetCarMan();
carMan.SetCarImagePerspective(1)
carMan.SetSyncGPSMan(1);
carMan.SetHeadingUpMode(1);
carMan.SetBirdViewMode(1);
carMan.SetPosSyncMode(1);
var imgman = CtrlMan.GetImageMan();
imgman.SetDefaultPath("http://www.talmap.co.kr/tutorial/image/navi/Image");
carMan.SetCarImage(imgman.LoadImageList("car","cars.png", 54, 54));
var uiman = CtrlMan.GetUIMan();
uiman.GetChildByUIID(423).SetVisible(0); //GPS·ÎµåButton
uiman.GetChildByUIID(424).SetVisible(1); //GPS Close Button
}
//------------------------------------------------------------------------------
// Display GPS Information
//------------------------------------------------------------------------------
function GPSStatePOI(cnt, info)
{
var ctrlman = m_Map.GetCtrlMan();
var poiman = ctrlman.GetPOIMan();
var gpsman = ctrlman.GetGPSMan();
var util = m_Map.GetUtility();
var poss = util.GetPoint(101, 90);
var state;
var snrState = 0;
var OnGPSCnt = 0;
for (var i=0; i < cnt; i++) {
state = info.GetGPS_Satellite(i);
if (state.GetUsedForFix() == 1) {
var n_pos = gpsman.GetSatelliteDPPos(state, 74, poss);
var snr = state.GetSnr();
if (snr > 0 && snr < 33) snrState = 1;
else if (snr > 32 && snr < 66) snrState = 2;
else if (snr > 65 && snr < 100) snrState = 3;
satellite[i].SetVisible(1);
satellite[i].SetBound( n_pos._X, n_pos._Y, 37, 17);
if (satellite[i].GetTag() != snrState) {
satellite[i].SetTag(snrState);
if (snrState == 1) satellite[i].SetMGImage(img_gps_false);
else if (snrState == 2) satellite[i].SetMGImage(img_gps_row);
else if (snrState == 3) satellite[i].SetMGImage(img_gps_true);
satellite[i].SetHint("À§¼ºID :" +state.GetSatelliteID() + "\n" +
"¹æÀ§°¢ :" +state.GetAzimuth() + " ¡Æ\n" +
"³ôÀÌ :" +state.GetElevation() + " ¡Æ\n" +
"½ÅÈ£°µµ :" +state.GetSnr() + "dBHz");
}
OnGPSCnt++;
} else {
satellite[i].SetVisible(0);
}
stcAraMsg[2].SetCaption(OnGPSCnt + " / " + cnt);
}
}
//------------------------------------------------------------------------------
// GPS Close
//------------------------------------------------------------------------------
function GPSStop()
{
var ctrlman = m_Map.GetCtrlMan();
ctrlman.GetGPSMan().Close();
var uiman = ctrlman.GetUIMan();
uiman.GetChildByUIID(423).SetVisible(1); //GPS Load Button
uiman.GetChildByUIID(424).SetVisible(0); //GPS Close Button
}
//------------------------------------------------------------------------------
// UI Click Event
//------------------------------------------------------------------------------
function MapEvent_UI_Click(XUIObj, Code, X, Y) {
var ctrlman = m_Map.GetCtrlMan();
var ctrlstate = ctrlman.GetControlState();
var uiman = ctrlman.GetUIMan();
if (XUIObj.GetParent().GetUIID() == 402 || XUIObj.GetParent().GetUIID() == 400){
switch (XUIObj.GetUIID()) {
case 401: { // View GPS Information Button
var obj = uiman.GetChildByUIID(401);
var sizeDP = ctrlstate.GetSizeDP();
if (!GPSOnFlag) {
XUIObj.GetParent().MoveTo(sizeDP._CX-27, sizeDP._CY-215, 0, 30, 5);
GPSOnFlag = true;
obj.SetItemIndex(0);
} else {
XUIObj.GetParent().MoveTo(sizeDP._CX-507, sizeDP._CY-215, 0, 30, 5);
GPSOnFlag = false;
obj.SetItemIndex(1);
}
}
break;
case 423: GPSOpen(); break; // GPS Open Button
case 424: GPSStop();break; // GPS Stop Button
case 425: // View Current Location Button
{
var carMan = ctrlman.GetCarMan();
carMan.SetSyncGPSMan(1);
carMan.SetPosSyncMode(1);
carMan.SetHeadingUpMode(1);
carMan.SetBirdViewMode(1);
} break;
case 426:// Up Button for Receiving Period of GPS
{
var GPSMan = ctrlman.GetGPSMan();
window.status = GPSMan.GetInterval();
var n_val = GPSMan.GetInterval();
if (n_val > 10)
GPSMan.SetInterval(n_val - 10);
} break;
case 427: // Down Button for Receiving Period of GPS
{
var GPSMan = ctrlman.GetGPSMan();
window.status = GPSMan.GetInterval();
GPSMan.SetInterval(GPSMan.GetInterval() +10);
} break;
}
}
}
//------------------------------------------------------------------------------
// Time Display
// return : yyyy MM dd HH:mm:ss
//------------------------------------------------------------------------------
function TimePtr(time) {
var str;
if(time.length > 10) {
str = time.substring(0, 4) + " ";
str += time.substring(4, 6) + " ";
str += time.substring(6, 8) + " ";
str += time.substring(8, 10) + ":";
str += time.substring(10, 12) + ":";
str += time.substring(12, 14);
}
return str;
}
//------------------------------------------------------------------------------
// Round to 3 decimal places
//------------------------------------------------------------------------------
function fixNumberScale(number, scale) {
var pm = Math.pow(10, scale);
return Math.round(number * pm) /pm;
}
//------------------------------------------------------------------------------
// GPS Notify Event
//------------------------------------------------------------------------------
function MapEvent_GPS_Notify(XGPSMan, Flag, Data)
{
var info = XGPSMan.GetGPSInfo();
var pos,state;
var coord = m_Map.GetCoordSys();
if (info) {
pos = info.GetGPS_Pos();
if (pos) {
stcAraMsg[0].SetCaption(TimePtr(pos.GetTimeToStr())); // Time
stcAraMsg[3].SetCaption(pos.GetAltitude() + "m"); // Altitude
stcAraMsg[4].SetCaption(fixNumberScale(pos.GetSpeed(), 3) + "§°"); // Speed
stcAraMsg[5].SetCaption(Math.round(pos.GetAngle()) + "¢ª"); //Angle
stcAraMsg[6].SetCaption(coord.ToHMSStr(pos.GetMapPos()._Lon));
stcAraMsg[7].SetCaption(coord.ToHMSStr(pos.GetMapPos()._Lat));
}
GPSStatePOI(12, info);
}
}
-->
</script>
<script language="javascript" for="m_Map" event="OnCreate(Flag)">
<!--
MapEvent_OnCreate(Flag);
-->
</script>
<script language="javascript" for="m_Map" event="OnGPSNotify(XGPSMan, Flag, Data)">
<!--
MapEvent_GPS_Notify(XGPSMan, Flag, Data);
-->
</script>
</head>
<body>
<table>
<tr>
<td>
<OBJECT ID="m_Map" CLASSID="CLSID:DD9B48AD-EDDC-4D2C-BD68-D1FB4B382024"
codebase='http://localhost/TalMapX_Web.CAB#version=1,0,0,17' width=100% height=80%>
</OBJECT>
</td>
</tr>
</table>
</body>
</html>