|
TalMap SDK Libary Reference |
HOWTO: TalMapX ControlÀÇ XLayer »ç¿ëÇÏ´Â ¹æ¹ý. |
|
¿ä¾à
|
ÀÌ ¹®¼´Â TalMapX Control¿¡¼ Á¦°øÇÏ´Â °·ÂÇÑ ¿ÀºêÁ§Æ®(Object)ÀÎ XLayer Object¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÕ´Ï´Ù.
»ç¿ëÀÚ´Â ÀÌ ¹®¼¸¦ ÅëÇØ XLayer - Shape, Polygon, PolyLing ... - µéÀ» »ý¼ºÇϰí Á¦°ÅÇÏ´Â ¹æ¹ýÀ» ÇнÀÇÒ ¼ö ÀÖ½À´Ï´Ù.
»ç¿ëÀÚ´Â XLayer °ü·Ã Object¸¦ ÀÌ¿ëÇÏ¿© ¿øÇÏ´Â ½ºÅ¸ÀÏÀÇ LayerµéÀ» »ý¼º ¹× Ãß°¡/»èÁ¦ ÇÒ ¼ö ÀÖ½À´Ï´Ù.
|
|
|
¹æ¹ý
|
1. TalMapX ContorlÀÇ CtrlManÀ» ÅëÇØ XLayer Manger¸¦ ¾ò½À´Ï´Ù.
2. XLayer StyleÀ» »ý¼ºÇÏ¿©, ¿øÇÏ´Â ½ºÅ¸ÀÏÀ» ¼³Á¤ÇÕ´Ï´Ù.
3. XLayer MangerÀÇ NewXXXXX() ¸Þ¼Òµå¸¦ ÀÌ¿ëÇÏ¿© XLayer Object¸¦ »ý¼ºÇÕ´Ï´Ù.
4. ÇÊ¿äÇÑ ½ÃÁ¡¿¡ °ü·Ã ¿ÀºêÁ§Æ®(Object)µéÀ» Á¦°ÅÇÕ´Ï´Ù.
|
|
|
Example
|
|
<html>
<head>
<script language="javascript">
<!--
//------------------------------------------------------------------------------
// XLayerShape »ý¼º
//------------------------------------------------------------------------------
function MakeXLayerShape(layerID)
{
var ctrlMan = m_Map.GetCtrlMan();
var ctrlstate = ctrlMan.GetControlState();
var layerMan = ctrlMan.GetLayerMan();
var util = m_Map.GetUtility();
var centerLL = ctrlstate.GetLLCenter(); // ÁöµµÀÇ Á᫐ ÁÂÇ¥
// Step 1. Make XLayer Style
var style = layerMan.FindLayer(100);
if (style == null) {
style = layerMan.NewStyle(100);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue("PS_SOLID"));
style.SetBrush(util.RGBColor(0, 0, 255), util.GetConstToValue("BS_SOLID"));
}
// Step 2. Make XLayer Shape
var shape = layerMan.NewShape(layerID, -1);
shape.BeginUpdate();
shape.SetMapPos(centerLL._X, centerLL._Y, 0);
shape.SetAngle(0, 0, 90);
shape.AddPoint(0, -30);
shape.AddPoint(-26, -4);
shape.AddPoint(-13, -4);
shape.AddPoint(-13, 19);
shape.AddPoint(13, 19);
shape.AddPoint(13, -4);
shape.AddPoint(26, -4);
shape.SetStyle(style);
shape.EndUpdate();
}
//------------------------------------------------------------------------------
// XLayerPolygon »ý¼º
//------------------------------------------------------------------------------
function MakeLayerPolygon(layerID)
{
var ctrlMan = m_Map.GetCtrlMan();
var ctrlstate = ctrlMan.GetControlState();
var layerMan = ctrlMan.GetLayerMan();
var util = m_Map.GetUtility();
var centerLL = ctrlstate.GetLLCenter(); // ÁöµµÀÇ Á᫐ ÁÂÇ¥
// Step 1. Make XLayer Style
var style = layerMan.FindStyle(200);
if (style == null) {
style = layerMan.NewStyle(200);
style.SetPen(util.RGBColor(255, 0, 0), 0.3, util.GetConstToValue("PS_SOLID"));
style.SetBrush(util.RGBAColor(0, 0, 255, 100), util.GetConstToValue("BS_SOLID"));
}
// Step 2. Make XLayer Polygon
// How To 01..... LayerMan¿¡¼ Layer¸¦ »ý¼ºÇÑ µÚ Object¸¦ »ý¼ºÇÏ´Â ¹æ¹ý
var layer = layerMan.FindLayer(layerID);
if (!layer) {
layer = layerMan.NewLayer(layerID);
}
var polygon = layer.NewPolygon(-1);
/* How To 02..... LayerMan¿¡¼ ¹Ù·Î Object¸¦ »ý¼ºÇÏ´Â ¹æ¹ý
var polygon = layerMan.NewPolygon(layerID, -1);
*/ polygon.BeginUpdate();
polygon.AddPoint(centerLL._X + 100, centerLL._Y + 100);
polygon.AddPoint(centerLL._X + 100, centerLL._Y + 500);
polygon.AddPoint(centerLL._X + 500, centerLL._Y + 500);
polygon.AddPoint(centerLL._X + 500, centerLL._Y + 100);
polygon.SetClosed(1); // 0: PolyLine, 1: Polygon
polygon.SetStyle(style);
polygon.EndUpdate();
}
//------------------------------------------------------------------------------
// LayerPolyLine »ý¼º
//------------------------------------------------------------------------------
function MakeLayerPolyLine(layerID)
{
var ctrlMan = m_Map.GetCtrlMan();
var ctrlstate = ctrlMan.GetControlState();
var layerMan = ctrlMan.GetLayerMan();
var util = m_Map.GetUtility();
var centerLL = ctrlstate.GetLLCenter(); // ÁöµµÀÇ Á᫐ ÁÂÇ¥
// Step 1. Make XLayer Style
var style = layerMan.FindStyle(300);
if (style == null) {
style = layerMan.NewStyle(300);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue("PS_SOLID"));
}
// Step 2. Make XLayer PolyLine
var polygon = layerMan.NewPolygon(layerID, -1);
polygon.BeginUpdate();
polygon.AddPoint(centerLL._X + 100, centerLL._Y + 100);
polygon.AddPoint(centerLL._X + 100, centerLL._Y + 500);
polygon.AddPoint(centerLL._X + 500, centerLL._Y + 500);
polygon.AddPoint(centerLL._X + 500, centerLL._Y + 100);
polygon.SetCanClick(1);
polygon.SetCanFocus(1);
polygon.SetClosed(0); // 0: Line, 1: Polygon
polygon.SetStyle(style);
polygon.EndUpdate();
}
//------------------------------------------------------------------------------
// SetStroke ¼³Á¤Çϱâ
//------------------------------------------------------------------------------
function Polyline_Stroke()
{
var ctrlMan = m_Map.GetCtrlMan();
var ctrlstate = ctrlMan.GetControlState();
var layerMan = ctrlMan.GetLayerMan();
var util = m_Map.GetUtility();
var rect = ctrlstate.GetMapRect();
var centerLL = ctrlstate.GetLLCenter(); // ÁöµµÀÇ Á᫐ ÁÂÇ¥
var pos = util.GetMapPos();
pos._Lon = lon_eksys;
pos._Lat = lat_eksys;
// Step 1. Make XLayer Style
var style = layerMan.FindStyle(300);
if (style == null) {
style = layerMan.NewStyle(300);
style.SetPen(util.RGBAColor(255, 0, 0, 100), 15, util.GetConstToValue("PS_SOLID"));
}
var layer = layerMan.FindLayer(2000);
if (!layer) {
layer = layerMan.NewLayer(2000);
}
var polygon = layerMan.NewPolygon(2000, -1);
polygon.BeginUpdate();
polygon.AddPoint(centerLL._X + 50, centerLL._Y + 50);
polygon.AddPoint(centerLL._X + 250, centerLL._Y + 250);
polygon.SetStrokeCap(3);
polygon.SetClosed(1); // 0: PolyLine, 1: Polygon
polygon.SetStyle(style);
polygon.EndUpdate();
}
//------------------------------------------------------------------------------
// LayerCircle »ý¼º
//------------------------------------------------------------------------------
function MakeCircle(lyaerID)
{
var ctrlman = m_Map.GetCtrlMan();
var util = m_Map.GetUtility();
var layerman = ctrlman.GetLayerMan();
style = layerman.FindStyle(400);
if (style == null) {
style = layerman.NewStyle(400);
style.SetPen(util.RGBColor(255, 0, 0), 2, util.GetConstToValue("PS_SOLID"));
style.SetBrush(util.RGBAColor(0, 0, 255, 100), util.GetConstToValue("BS_PATTERN"));
}
var obj = layerman.NewCircle(lyaerID, -1);
obj.SetStyle(style);
obj.SetClosed(1); // 0: ¼±¸¸ Ç¥½Ã ÇÕ´Ï´Ù. 1: Circle ³»ºÎ¿¡ Style À» Àû¿ë ÇÕ´Ï´Ù.
obj.SetCanFocus(1);
obj.SetCanClick(1);
obj.SetShowDistance(1); // ¹Ý°æÀ» Ç¥½Ã ÇÕ´Ï´Ù.
obj.SetShowArea(1); // ¸éÀûÀ» Ç¥½Ã ÇÕ´Ï´Ù.
obj.SetStateModeNew();
}
//------------------------------------------------------------------------------
// XLayer Á¦°Å
//------------------------------------------------------------------------------
function RemoveLayer()
{
var ctrlMan = m_Map.GetCtrlMan();
var layerMan = ctrlMan.GetLayerMan();
layerMan.ClearLayer();
}
//------------------------------------------------------------------------------
-->
</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"
//------------------------------------------------------------------------------
// XLayerShape »ý¼º
//------------------------------------------------------------------------------
void CSampleDlg::OnSmDrawShpae()
{
CXControlState ctrlstate = ctrlman.GetControlState();
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
// ÁöµµÁß½ÉÁÂÇ¥
CXPoint centerLL = ctrlstate.GetLLCenter();
// Make Layer Style
CXLayerStyle style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue("PS_SOLID"));
style.SetBrush(util.RGBColor(0, 0, 255), util.GetConstToValue("BS_SOLID"));
// Make Layer Shape
CXLayerShape shape = layerman.NewShape(1, -1);
shape.BeginUpdate();
shape.SetMapPos(centerLL.GetX(), centerLL.GetY(), 0);
shape.SetAngle(0, 0, 90);
shape.AddPoint(0, -30);
shape.AddPoint(-26, -4);
shape.AddPoint(-13, -4);
shape.AddPoint(-13, 19);
shape.AddPoint(13, 19);
shape.AddPoint(13, -4);
shape.AddPoint(26, -4);
shape.SetStyle(style);
shape.EndUpdate();
}
//------------------------------------------------------------------------------
// XLayerPolygon »ý¼º
//------------------------------------------------------------------------------
void CSampleDlg::OnSmLayerPolygonadd()
{
CXControlState ctrlstate = ctrlman.GetControlState();
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
// ÁöµµÁß½ÉÁÂÇ¥
CXPoint centerLL = ctrlstate.GetLLCenter();
// Make Layer Style
CXLayerStyle style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue("PS_DOT"));
style.SetBrush(util.RGBAColor(255, 255, 0, 50), util.GetConstToValue("R2_MASKPEN"));
// Make Laeyr Polyline
CXLayer layer = layerman.FindLayer(1);
if (layer.m_lpDispatch == NULL) {
layer = layerman.NewLayer(1);
}
CXLayerPolygon obj = layer.NewPolygon(-1);
obj.BeginUpdate();
obj.AddPoint(centerLL.GetX() + 1000000, centerLL.GetY() + 1000000);
obj.AddPoint(centerLL.GetX() + 1000000, centerLL.GetY() - 1000000);
obj.AddPoint(centerLL.GetX() - 1000000, centerLL.GetY() - 1000000);
obj.AddPoint(centerLL.GetX() - 1000000, centerLL.GetY() + 1000000);
obj.SetClosed(1); // 0: PolyLine, 1: Polygone
obj.SetStyle(style);
obj.EndUpdate();
}
//------------------------------------------------------------------------------
// LayerPolyLine »ý¼º
//------------------------------------------------------------------------------
void CSampleDlg::OnSmLayerPolygonadd()
{
CXControlState ctrlstate = ctrlman.GetControlState();
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
// ÁöµµÁß½ÉÁÂÇ¥
CXPoint centerLL = ctrlstate.GetLLCenter();
// Make Layer Style
CXLayerStyle style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue("PS_DOT"));
style.SetBrush(util.RGBAColor(255, 255, 0, 50), util.GetConstToValue("R2_MASKPEN"));
// Make Laeyr Polyline
CXLayer layer = layerman.FindLayer(1);
if (layer.m_lpDispatch == NULL) {
layer = layerman.NewLayer(1);
}
CXLayerPolygon obj = layer.NewPolygon(-1);
obj.BeginUpdate();
obj.AddPoint(centerLL.GetX() + 1000000, centerLL.GetY() + 1000000);
obj.AddPoint(centerLL.GetX() + 1000000, centerLL.GetY() - 1000000);
obj.AddPoint(centerLL.GetX() - 1000000, centerLL.GetY() - 1000000);
obj.AddPoint(centerLL.GetX() - 1000000, centerLL.GetY() + 1000000);
obj.SetClosed(0); // 0: PolyLine, 1: Polygone
obj.SetStyle(style);
obj.EndUpdate();
}
//------------------------------------------------------------------------------
// XLayer Á¦°Å
//------------------------------------------------------------------------------
void CSampleDlg::OnSmLayerdel()
{
CXLayerMan layerman = ctrlman.GetLayerMan();
CXLayer layer = layerman.FindLayer(1);
if (layer.m_lpDispatch != NULL) {
layer.ClearObject();
}
}
|
|
|
|
See Also
|
|
Map Preview
|
|