|
|
<html>
<head>
<script language="javascript">
<!--
// POI»ý¼º
function POIMaking(GroupID)
{
var ctrlman = m_Map.GetCtrlMan();
var ctrlstate = ctrlman.GetControlState();
var util = m_Map.GetUtility();
var itemCount = 3;
var posLL = ctrlstate.GetLLCenter(); // ÁöµµÀÇ Á᫐ ÁÂÇ¥
// Step 1. Get POI Manger
var poiman = ctrlman.GetPOIMan();
var baseman = poiman.CastToBaseManager();
// Step 2. Make POI Group
var group = poiman.FindGroup(GroupID);
if (!group) group = poiman.NewGroup(GroupID);
// Step 2-1. Make POI Style
var gstyle = poiman.FindStyle(1);
if (!gstyle) {
gstyle = poiman.NewStyle(1); // -1: ¾ÆÀ̵ð ÀÚµ¿ »ý¼º
gstyle.SetGDIFont("±¼¸²", 0, 8);
gstyle.SetFontColor(util.RGBColor(255, 0, 0));
gstyle.SetFontOutColor(util.RGBColor(255, 255, 255));
gstyle.SetBrush(util.RGBColor(100, 0, 255), 0);
gstyle.SetPen(util.RGBColor(0, 0, 0), 1, 0);
}
// Group¿¡ StyleÀ» ÁöÁ¤Çϸé ÇÏÀ§ ItemÀº º°µµÀÇ StyleÀ» °¡ÁöÁö ¾Ê´Â ÇÑ GroupÀÇ StyleÀ» µû¸£°Ô µÈ´Ù.
group.SetStyle(gstyle);
var style = poiman.FindStyle(2);
if (!style) {
style = poiman.NewStyle(2);
style.SetGDIFont("±¼¸²", 0, 8);
style.SetFontColor(util.RGBColor(0, 0, 0));
style.SetFontOutColor(util.RGBColor(255, 255, 255));
style.SetBrush(util.RGBColor(100, 0, 255), 0);
style.SetPen(util.RGBColor(0, 0, 0), 1, 0);
}
// Step 3. Make POI Items
var imageman = ctrlman.GetImageMan();
imageman.SetDefaultPath("http://www.talmap.co.kr/tutorial/");
var image = imageman.LoadImageList("CAR_IMAGE", "image/CAR.png", 64, 64);
if (image.IsValid() != true) alert("Image ÀÌ»ó");
var angle = 0;
group.BeginUpdate();
for (i = 0; i < itemCount; i++) {
var item = group.NewItem(-1)
item.SetLonLat(posLL._X + i * 250, posLL._Y - i * 250)
item.SetImage(image);
item.SetShowImage(1)
item.SetImageIndex(1)
item.SetImageOffset(4)
item.SetTextStyle(0x12)
if (i % 2) item.SetStyle(style)
item.SetCaption("[" + i + "]Test POI")
item.SetContents("[" + i + "] Contents\nHello")
item.SetAnimation(200) // 1ÃÊ ´ÜÀ§
item.SetSyncAngle(1)
item.SetAngle(angle)
item.SetAlpha(100)
angle = angle + 10;
if(angle > 360) angle = 0;
}
group.EndUpdate();
}
// POI Á¦°Å
function RemovePOIs()
{
var ctrlman = m_Map.GetCtrlMan();
var poiman = ctrlman.GetPOIMan();
var countOfPOIGroup = poiman.GetGroupCount();
if (countOfPOIGroup > 0) {
alert("POI Group " + countOfPOIGroup + "°³¸¦ Á¦°ÅÇÕ´Ï´Ù!!");
poiman.ClearGroup();
} else {
alert("Á¦°ÅÇÒ POI°¡ ¾ø½À´Ï´Ù!!");
}
}
function MapEvent_OnPOIClick(POI, Flag, X, Y)
{
if (POI) {
var id = POI.GetID();
//alert("ID ["+id + "] POI¸¦ ¼±ÅÃÇß½À´Ï´Ù.");
var uipanel = POI.CreateInfoBox(0, POI.GetCaption(), POI.GetContents(), true, true);
}
}
function MapEvent_OnPOIUIClick(XPOIItem, Flag, X, Y, Panel)
{
if (!XPOIItem) return;
if (!Panel) return;
switch (Panel.GetUIID()) {
case -11: alert("Á¤º¸ ¹Ú½ºÀÇ CaptionÀ» Ŭ¸¯Çß½À´Ï´Ù!!"); break;
case -12: alert("Á¤º¸ ¹Ú½º¸¦ Ŭ¸¯Çß½À´Ï´Ù!!"); break;
case -13: // »ó¼¼ Á¤º¸
{
var lonlat = XPOIItem.GetLonLat();
alert("°æµµ: " + lonlat._X + ", À§µµ: " + lonlat._Y);
}
break;
case -14: // ¸Þ´º
{
var ctrlman = m_Map.GetCtrlMan();
var ctrlstate = ctrlman.GetControlState();
var uiman = ctrlman.GetUIMan();
var size = ctrlstate.GetSizeDP();
var lonlat = XPOIItem.GetLonLat();
var menu = m_Map.GetApplication().GetPopupMenu();
menu.Create();
menu.AppendString(1, "1¹ø ¸Þ´º", "", "", 1);
menu.AppendString(2, "2¹ø ¸Þ´º", "", "", 2);
menu.AppendString(3, "3¹ø ¸Þ´º", "", "", 3);
menu.AppendString(4, "4¹ø ¸Þ´º", "", "", 4);
menu.AppendString(5, "5¹ø ¸Þ´º", "", "", 5);
var pos = Panel.ClientToScreen(X, Y);
var item = menu.TrackPopupMenu(0, pos._X, pos._Y);
if (item) {
switch (item.GetID()) {
case 1: alert("1¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù."); break;
case 2: alert("2¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù."); break;
case 3: alert("3¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù."); break;
case 4: alert("4¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù."); break;
case 5: alert("5¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù."); break;
default: alert("À¯È¿ÇÏÁö ¾ÊÀº ÀÛ¾÷ÀÔ´Ï´Ù.!!"); break;
}
}
}
break;
case -15:
{
XPOIItem.DestroyInfoBox();
}
break;
default:
alert("À¯È¿ÇÏÁö ¾ÊÀº IDÀÔ´Ï´Ù!!");
}
}
-->
</script>
<script language="javascript" for="m_Map" event="OnPOI_Click(POI, Flag, X, Y)">
<!--
MapEvent_OnPOIClick(POI, Flag, X, Y);
-->
</script>
<script language="javascript" for="m_Map" event="OnPOI_UIClick(XPOIItem, Flag, X, Y, Panel)">
<!--
MapEvent_OnPOIUIClick(XPOIItem, Flag, X, Y, Panel);
-->
</script>
</head>
<body>
<table>
<tr>
<td>
<OBJECT ID="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>
|
|
|
#include "talmapxctrl1.h"
#include "CXCtrlMan.h"
#include "CXControlState.h"
#include "CXThemeMan.h"
#include "CXMapMan.h"
#include "CXAdminMan.h"
BEGIN_EVENTSINK_MAP(CSampleDlg, CDialog)
ON_EVENT(CSampleDlg, IDC_TALMAPXCTRL1, 43, CSampleDlg::OnPOIClickTalmapxctrl1, VTS_DISPATCH VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CSampleDlg, IDC_TALMAPXCTRL1, 44, CSampleDlg::OnPOIUIClickTalmapxctrl1, VTS_DISPATCH VTS_I4 VTS_I4 VTS_I4 VTS_DISPATCH)
END_EVENTSINK_MAP()
// POI»ý¼º
void CSampleDlg::OnPOIAdd()
{
// »ö»ó°ª ¼³Á¤À» À§ÇØ GXUtility °´Ã¼¸¦ °¡Á®¿Â´Ù.
CXUtility util = m_Map.GetUtility();
// ÁöµµÁ᫐ ÁÂÇ¥°ªÀ» ±¸Çϱâ À§ÇØ ÁöµµÀÇ ÇöÀç »óŸ¦ °¡Á®¿Â´Ù.
CXControlState ctrlstate = ctrlman.GetControlState();
// Áöµµ Áß½ÉÁÂÇ¥¸¦ ±¸ÇÑ´Ù.
CXPoint posLL = ctrlstate.GetLLCenter();
// 1. POI º¯¼ö¸¦ ÃʱâÈ ÇÑ´Ù.
CXPOIMan poiman = ctrlman.GetPOIMan();
// 2. POI ±×·ìÀ» ¼³Á¤ ÇÑ´Ù.
CXPOIGroup group = poiman.FindGroup(1);
if (group.m_lpDispatch == NULL)
group = poiman.NewGroup(1);
// 3. POI ½ºÅ¸ÀÏÀ» ÁöÁ¤ÇÑ´Ù.
CXPOIStyle style = poiman.FindStyle(1);
if (style.m_lpDispatch == NULL) {
style = poiman.NewStyle(1);
// POI ±Û¾¾Ã¼ ¼³Á¤
style.SetGDIFont("±¼¸²", 0, 8);
// POI ±Û¾¾»ö»ó ¼³Á¤
style.SetFontColor(util.RGBColor(255, 0, 0));
// POI ±Û¾¾OutLine»ö»ó ¼³Á¤
style.SetFontOutColor(util.RGBColor(255, 255, 255));
// POI Caption ¹è°æ»ö»ó ¼³Á¤
style.SetBrush(util.RGBColor(100, 0, 255), 0);
// POI ±Û¾¾±½±â ¼³Á¤
style.SetPen(util.RGBColor(0, 0, 0), 1, 0);
// 4. styleÀ» ±×·ì¿¡ Àû¿ëÇÑ´Ù.
group.SetStyle(style);
}
// 5. POI À̹ÌÁö ¼³Á¤À» À§ÇØ ÃʱâÈ ÇÑ´Ù.
// OnCreate ºÎºÐ¿¡¼ À̹ÌÁö¸¦ ¹Ì¸® ·Îµù ÇØ µÎ¸é, POI »ý¼º½Ã ¶§ ¸¶´Ù ·ÎµåÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.
CXImageMan imageman = ctrlman.GetImageMan();
// À̹ÌÁö °æ·Î ¼³Á¤
imageman.SetDefaultPath("http://www.talmap.co.kr/tutorial/");
// À̹ÌÁö À̸§ ¹× Å©±â ¼³Á¤
CXMagicImageList image = imageman.LoadImageList("CAR_IMAGE", "image/CAR.png", 64, 64);
// 6. POI ¸¦ ÃʱâÈ ÇÑ´Ù.
CXPOIItem poi = group.NewItem(-1); //ID ÀÚµ¿»ý¼º.
// POI ÁÂÇ¥°ª ¼³Á¤
poi.SetLonLat(posLL.GetX(), posLL.GetY());
// POI À̹ÌÁö ¼³Á¤
poi.SetImage(image);
// POI À̹ÌÁö Ç¥Ãâ À¯¹« 1:Ç¥Ãâ 0:Ç¥Ãâ¾ÈÇÔ
poi.SetShowImage(1);
// POI À̹ÌÁö Index¼³Á¤
poi.SetImageIndex(1);
// POI À̹ÌÁö À§Ä¡ ¼³Á¤ (0~8)
poi.SetImageOffset(8);
// POI Text¼³Á¤
poi.SetTextStyle(0x12);
// POI style¼³Á¤
poi.SetStyle(style);
// POI ĸ¼Ç¼³Á¤
poi.SetCaption("Caption");
// POI Contents¼³Á¤
poi.SetContents("Contents");
// POI ¾Ö´Ï¸ÞÀ̼Ǽ³Á¤ 1ÃÊ´ÜÀ§
poi.SetAnimation(200);
// POI ȸÀü¼³Á¤
poi.SetSyncAngle(1)
poi.SetAngle(90);
// POI Åõ¸íµµ ¼³Á¤
poi.SetAlpha(100);
}
// POI Á¦°Å
void CSampleDlg::OnPOIDelete()
{
CXPOIMan poiman = ctrlman.GetPOIMan();
CXPOIGroup group = poiman.FindGroup(1);
if (group.m_lpDispatch != NULL) {
poiman.DeleteGroup(1);
}
}
void CSampleDlg::OnPOIClickTalmapxctrl1(LPDISPATCH POI, long nFlag, long X, long Y)
{
CXPOIItem poi = POI;
poi.CreateInfoBox(0, poi.GetCaption(), poi.GetContents(), true, true);
}
void CSampleDlg::OnPOIUIClickTalmapxctrl1(LPDISPATCH POI, long nFlag, long X, long Y, LPDISPATCH Obj)
{
CXPOIItem poi = POI;
CXUIObj object = Obj;
if (poi.m_lpDispatch == NULL) return;
if (object.m_lpDispatch == NULL) return;
switch(object.GetUIID())
{
case -11: MessageBox("Á¤º¸¹Ú½ºÀÇ CaptionÀ» Ŭ¸¯Çß½À´Ï´Ù.", "È®ÀÎ");break;
case -12: MessageBox("Á¤º¸¹Ú½º¸¦ Ŭ¸¯Çß½À´Ï´Ù.", "È®ÀÎ"); break;
case -13: {
CXPoint point = poi.GetLonLat();
CString msg ;
msg.Format("°æµµ : %d, À§µµ : %d", point.GetX(), point.GetY());
MessageBox(msg, "È®ÀÎ");
} break;
case -14: {
CXUIMan uiman = ctrlman.GetUIMan();
CXControlState ctrlstate = ctrlman.GetControlState();
CXSize size = ctrlstate.GetSizeDP();
CXPoint point = poi.GetLonLat();
CXApplication app = m_Map.GetApplication();
CXPopupMenu menu = app.GetPopupMenu();
menu.Create();
menu.AppendString(1, "1¹ø ¸Þ´º", "", "", 1);
menu.AppendString(2, "2¹ø ¸Þ´º", "", "", 2);
menu.AppendString(3, "3¹ø ¸Þ´º", "", "", 3);
menu.AppendString(4, "4¹ø ¸Þ´º", "", "", 4);
menu.AppendString(5, "5¹ø ¸Þ´º", "", "", 5);
CXPoint pos = object.ClientToScreen(X, Y);
CXPopupMenuItem item = menu.TrackPopupMenu(0, pos.GetX(), pos.GetY());
if (item.m_lpDispatch != NULL) {
switch (item.GetID())
{
case 1: MessageBox("1¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù.", "È®ÀÎ"); break;
case 2: MessageBox("2¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù.", "È®ÀÎ"); break;
case 3: MessageBox("3¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù.", "È®ÀÎ"); break;
case 4: MessageBox("4¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù.", "È®ÀÎ"); break;
case 5: MessageBox("5¹ø ¸Þ´º¸¦ Ŭ¸¯ÇÏ¿´½À´Ï´Ù.", "È®ÀÎ"); break;
}
}
}break;
case 5: poi.DestroyInfoBox(); break;
}
}
|
|