建立示例
1:建立項目
建立一個網站,選擇mapxtreme 6.7.1 web application
在app_code中,我們建立一個類,起名叫:layermanager.cs
2:把上節函數放到類layermanager中
把上一節的函數代碼全copy過來,還有using的名稱空間
3:打開mapform.cs,在page_load代碼裡,添加如下代碼
string tablename = "tablename", layername = "layername";//随便定義兩個名字
layermanager.createlayer(tablename, layername);//建立圖層
layermanager.addpoint(layername, getdpoint(60,60), 35, color.red);//建立一個紅色五角星的點
layermanager.addline(layername, getdpoint(160, 160), getdpoint(300, 160), 59, color.red);//建立一條紅色單箭頭的線
layermanager.showvalue(tablename, "value");//顯示标注
說明:
裡面有一個getdpoint(int x,int y)函數,主要是傳入用戶端的坐标,傳回地圖的經緯度
getdpoint 函數如下
private dpoint getdpoint(int x,int y)
{
dpoint dp = new dpoint();
system.drawing.point point = new system.drawing.point(x, y);//用戶端坐标(相對地圖)
map map = mapinfo.engine.session.current.mapfactory[0];
map.displaytransform.fromdisplay(point, out dp);//轉成相應的經緯度坐标
return dp;
}
4:完整的頁面代碼如下
public partial class _default : system.web.ui.page
{
private void page_load(object sender, system.eventargs e)
// if the statemanager doesn't exist in the session put it else get it.
if (statemanager.getstatemanagerfromsession() == null)
statemanager.putstatemanagerinsession(new appstatemanager());
// now restore state
statemanager.getstatemanagerfromsession().paramsdictionary[statemanager.activemapaliaskey] = mapcontrol1.mapalias;
statemanager.getstatemanagerfromsession().restorestate();
string tablename = "tablename", layername = "layername";//随便定義兩個名字
private dpoint getdpoint(int x,int y)
// at the time of unloading the page, save the state
private void page_unload(object sender, system.eventargs e)
statemanager.getstatemanagerfromsession().savestate();
}
5:運作結果
ok,儲存,浏覽,即可在頁面上看到在相應的地方上,建立了一個五角星和一個紅色單向箭頭線
版權聲明:本文原創發表于部落格園,作者為路過秋天,原文連結:
http://www.cnblogs.com/cyq1162/archive/2009/11/02/1594564.html