<< ASP.NET + Ajax (概要) | top | 新規ドメインへの引越しできた >>

ASP.NET + Ajax (ソースとりあえず版)

Webフォームとコードは次の回で。。。としておきながら、1ヶ月も放置していました。
早速。
1.プロジェクトの作成
・ファイル−新しい Web サイト
・ASP.NET AJAX-enabled Web site を選択
・場所:必要に応じて名前を変更。
・言語:VisualBasic
2.Default.aspx のソースが表示されたら、
・ビューをデザインに変更
・ツールボックスの AJAX EXTENSIONS から、UpdatePanel を追加
・Buttonを4つ、RadioButtonListをひとつ、Labelを2つ、Imageをひとつを
 はすべて、UpdatePanel の中に設置します。

<@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" >

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="全体表示" /><asp:Button
ID="Button2" runat="server" OnClick="Button2_Click" Text="ズームイン" /><asp:Button ID="Button3" runat="server" Text="ズームアウト" OnClick="Button3_Click" /><asp:Button ID="Button4"
runat="server" OnClick="Button4_Click" Text="移動" /><asp:Label ID="Label1" runat="server"></asp:Label><asp:Label ID="Label2" runat="server"></asp:Label><asp:RadioButtonList ID="RadioButtonList1" runat="server" AutoPostBack="True" Font-Size="Smaller" Height="1px" RepeatDirection="Horizontal" Width="280px">
<asp:ListItem Selected="True">W</asp:ListItem>
<asp:ListItem>E</asp:ListItem>
<asp:ListItem>S</asp:ListItem>
<asp:ListItem>N</asp:ListItem>
</asp:RadioButtonList><asp:Image ID="Image1" runat="server" Height="500px" Width="500px" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
  
</div>
</form>
</body>
</html ->
3.ソリューションエクスプローラで、必要なフォルダを作成します。
・tmp --- mapObj から出力する地図画像の出力フォルダ
・data --- 地図データおよびマップファイルを置くフォルダ
マップファイルは下記のような設定です。
EXTENT は、参照する地図にあわせて設定してください。

MAP
EXTENT 138.802525 34.936848 140.775797 36.102593
FONTSET "C:¥Inetpub¥wwwroot¥AJAXTest01¥data¥fonts.list"
IMAGECOLOR 180 180 250
IMAGETYPE png
SYMBOLSET "C:¥Inetpub¥wwwroot¥AJAXTest01¥data¥symbols¥symbols.sym"
SHAPEPATH "C:¥Inetpub¥wwwroot¥AJAXTest01¥data"
SIZE 500 500
STATUS ON
UNITS DD
NAME "MS"
CONFIG "PROJ_LIB" "C:¥Inetpub¥wwwroot¥AJAXTest01¥proj¥nad¥"


4.参照ライブラリの設置
Binフォルダに、既存項目の追加で、
・C:¥ms4w¥Apache¥cgi-bin の中の DLL(PHP関連を除く)
・C:¥ms4w¥Apache¥cgi-bin¥mapscript¥csharp の中の DLL
を置く。

新規に、projフォルダを作って、
・C:¥ms4w¥proj の中のフォルダすべて
を置く

5.Default.aspx.vbを開いて次のコードを貼り付けます。

Partial Class _Default
Inherits System.Web.UI.Page

Public _map As mapObj
Private _img As imageObj
Public dblScale As Double


Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_map = MapObject.GetInstance
_map.setImageType("png")

End Sub


Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim strImageName As String
Dim strImagePng As String

_map = MapObject.GetInstance
_map.extent = New rectObj(140.377903, 37.804393, 141.743427, 38.784893, 0)

strImagePng = Math.Abs(Now.ToBinary) & ".png"
strImageName = Server.MapPath("tmp¥") & strImagePng
dblScale = 100000.0
_img = _map.draw
_img.save(strImageName, _map)

Image1.ImageUrl = "tmp/" & strImagePng
'Label1.Text = Server.MapPath("data")
Label1.Text = (_map.scale.ToString)

End Sub

Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim ptCenter As pointObj

_map = MapObject.GetInstance

dblScale = _map.scale
ptCenter = New pointObj(250, 250, 0, 0)
dblScale = dblScale / 1.5
Label1.Text = dblScale.ToString

_map.zoomScale(dblScale, ptCenter, _map.width, _map.height, _map.extent, Nothing)
_map.prepareQuery()

Dim strImageName As String
Dim strImagePng As String

strImagePng = Math.Abs(Now.ToBinary) & ".png"
strImageName = Server.MapPath("tmp¥") & strImagePng
_img = _map.draw
_img.save(strImageName, _map)

Image1.ImageUrl = "tmp/" & strImagePng
Label1.Text = (_map.scale.ToString)
End Sub

Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim ptCenter As pointObj

_map = MapObject.GetInstance

dblScale = _map.scale
ptCenter = New pointObj(250, 250, 0, 0)
dblScale = dblScale * 1.5
Label1.Text = dblScale.ToString

_map.zoomScale(dblScale, ptCenter, _map.width, _map.height, _map.extent, Nothing)
_map.prepareQuery()

Dim strImageName As String
Dim strImagePng As String

strImagePng = Math.Abs(Now.ToBinary) & ".png"
strImageName = Server.MapPath("tmp¥") & strImagePng
_img = _map.draw
_img.save(strImageName, _map)

Image1.ImageUrl = "tmp/" & strImagePng
Label1.Text = (_map.scale.ToString)

End Sub

Protected Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim ptCenter As New pointObj(250, 250, 0, 0)
Select Case RadioButtonList1.SelectedValue

Case "W"
ptCenter = New pointObj(200, 250, 0, 0)
Case "E"
ptCenter = New pointObj(300, 250, 0, 0)
Case "S"
ptCenter = New pointObj(250, 300, 0, 0)
Case "N"
ptCenter = New pointObj(250, 200, 0, 0)
End Select
Label2.Text = RadioButtonList1.SelectedValue

_map = MapObject.GetInstance
_map.zoomPoint(1.0, ptCenter, _map.width, _map.height, _map.extent, Nothing)

Dim strImageName As String
Dim strImagePng As String
strImagePng = Math.Abs(Now.ToBinary) & ".png"
strImageName = Server.MapPath("tmp¥") & strImagePng
_img = _map.draw
_img.save(strImageName, _map)

Image1.ImageUrl = "tmp/" & strImagePng
End Sub


End Class

Public Class MapObject
Inherits System.Web.UI.Page
Private Shared _MapObject As MapObject = New MapObject
Private Shared _map As mapObj

Private Sub New()
_map = New mapObj(Server.MapPath("data") & "¥bugna.map")
End Sub

Public Shared Function GetInstance() As mapObj
Return _map
End Function
End Class


6.デバッグの実行で、ボタン類が表示されたら、「全体表示」を押します。インターフェースがちゃっちいですが、移動の向きをラジオボタンで選択して、移動のボタンで移動します。

とりあえず版 ASP.NET


ダウンロード
bugna | ASP.NET AJAX | 14:51 | comments(0) | trackbacks(0) | - | - |
Comment









Trackback
URL:

07
--
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
--
>>
<<
--