|
TalMap SDK Libary Reference |
HOWTO: Measure Area and Distance with XLayer of TalMapX Control. |
|
Summary
|
This document describes how to measure area, distance and to edit Object with the XLayer Object provided in TalMapX Control.
With this document, users can learn how to create and control XLayer - Polygons.
Users can measure area and distance with the XLayer related Objects.
Users can click on and edit the created Objects on the map.
|
|
|
Steps
|
1. Get XLayer Manager with CtrlMan of TalMapX Control.
2. Create XLayer Style and set the desired style.
3. Create XLayer Object with NewPolygon() Method of XLayer Manager.
4. Create Polygon for measuring area and Create Polyline for measuring distance.
5. Delete or edit the created Objects.
|
|
|
Example
|
|
<html>
<head>
<script language="javascript">
<!--
//------------------------------------------------------------------------------
// Create XLayerPolygon for measuring area
//------------------------------------------------------------------------------
function OnCheckArea()
{
var ctrlMan = m_Map.GetCtrlMan();
var layerMan = ctrlMan.GetLayerMan();
var util = m_Map.GetUtility();
// Set Style.
var style = layerMan.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 2, util.GetConstToValue("PS_SOLID"));
style.SetBrush(util.RGBAColor(0, 0, 255, 100), util.GetConstToValue("BS_PATTERN"));
// Create Polygon.
var obj = layerMan.NewPolygon(100, -1);
obj.SetStyle(style);
obj.SetClosed(1); // 1:polygon 0:polyline
obj.SetShowDistance(0);
obj.SetShowArea(1); // ¹üÀ§ÃøÁ¤ °ªÀ» Ç¥½ÃÇÕ´Ï´Ù. // Show the area.
obj.SetStateModeNew(); //Get user input.
}
//------------------------------------------------------------------------------
// Create LayerPolyLine for measuring distance
//------------------------------------------------------------------------------
function OnCheckDistnace()
{
var ctrlMan = m_Map.GetCtrlMan();
var layerMan = ctrlMan.GetLayerMan();
var util = m_Map.GetUtility();
// Set Style.
var style = layerMan.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 2, util.GetConstToValue("PS_DOT"));
// Create Polygon.
var obj = layerMan.NewPolygon(100, -1);
obj.SetStyle(style);
obj.SetClosed(0); // 1:polygon 0:polyline
obj.SetShowDistance(1); // °Å¸®ÃøÁ¤°ªÀ» Ç¥½Ã ÇÕ´Ï´Ù. // Show the distance.
obj.SetStateModeNew(); // Get user input
}
//------------------------------------------------------------------------------
// Remove XLayer
//------------------------------------------------------------------------------
function OnObjDelete()
{
var ctrlMan = m_Map.GetCtrlMan();
var layerMan = ctrlMan.GetLayerMan();
// Find XLayer with ID.
var layer = layerMan.FindLayer(100);
if (layer) {
// Remove XLayer Object.
layer.ClearObject();
}
//------------------------------------------------------------------------------
// Object Edit Mode
//------------------------------------------------------------------------------
function OnObjModify()
{
var ctrlman = m_Map.GetCtrlMan();
var layerman = ctrlman.GetLayerMan();
var util = m_Map.GetUtility();
/**
* TMMAN_MODE_EDIT : Object Edit Mode
* TMMAN_MODE_NONE : Normal Mode
**/
var baseman = layerman.CastToBaseManager();
if (baseman.GetManMode() == util.GetConstToValue("TMMAN_MODE_EDIT")) {
baseman.SetManMode(util.GetConstToValue("TMMAN_MODE_NONE"));
} else {
baseman.SetManMode(util.GetConstToValue("TMMAN_MODE_EDIT"));
}
}
//------------------------------------------------------------------------------
-->
</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>
|
|
|
//------------------------------------------------------------------------------
// Create XLayerPolygon for measuring area
//------------------------------------------------------------------------------
void CSampleDlg::OnCheckArea()
{
CXCtrlMan ctrlman = m_Map.GetCtrlMan();
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
// Make Layer Style
CXLayerStyle style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue(_T("PS_SOLID")));
style.SetBrush(util.RGBAColor(0, 0, 255, 100), util.GetConstToValue(_T("BS_SOLID")));
// Make Polygon
CXLayerPolygon obj = layerman.NewPolygon(100, -1);
obj.SetStyle(style);
obj.SetClosed(1); // 1:polygon, 0:polyline
obj.SetShowDistance(0);
obj.SetShowArea(1); // ¹üÀ§ÃøÁ¤ °ªÀ» Ç¥½Ã // Show the area.
obj.SetStateModeNew(); // Get user input.
}
//------------------------------------------------------------------------------
// Create LayerPolyLine for measuring distance
//------------------------------------------------------------------------------
void CSampleDlg::OnCheckDistance()
{
CXCtrlMan ctrlman = m_Map.GetCtrlMan();
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
// Make Layer Style
CXLayerStyle style = layerman.NewStyle(-1);
style.SetPen(util.RGBColor(255, 0, 0), 1, util.GetConstToValue(_T("PS_DOT")));
// Make Polygon
CXLayerPolygon obj = layerman.NewPolygon(100, -1);
obj.SetStyle(style);
obj.SetClosed(0); // 1:polygon, 0:polyline
obj.SetShowDistance(1);// °Å¸®ÃøÁ¤°ªÀ» Ç¥½Ã ÇÕ´Ï´Ù. // Show the distance.
obj.SetStateModeNew(); // Get user input.
}
//------------------------------------------------------------------------------
// Remove XLayer
//------------------------------------------------------------------------------
void CSampleDlg::OnSmLayerdel()
{
CXLayerMan layerman = ctrlman.GetLayerMan();
CXLayer layer = layerman.FindLayer(100);
if (layer.m_lpDispatch != NULL) {
layer.ClearObject();
}
}
//------------------------------------------------------------------------------
// Object Edit Mode
//------------------------------------------------------------------------------
void CSampleDlg::OnSmLayeredit()
{
CXLayerMan layerman = ctrlman.GetLayerMan();
CXUtility util = m_Map.GetUtility();
CXBaseMan baseman = layerman.CastToBaseManager();
if(baseman.GetManMode() == util.GetConstToValue(_T("TMMAN_MODE_EDIT"))) {
baseman.SetManMode(util.GetConstToValue(_T("TMMAN_MODE_NONE")));
} else {
baseman.SetManMode(util.GetConstToValue(_T("TMMAN_MODE_EDIT")));
}
}
|
|
|
|
See Also
|
|
Map Preview
|
|