.


:




:

































 

 

 

 





CS-, Wsdl.exe, , , Web-. Web-. , Web- . , .

Add Web- Calc.asmx. BeginAdd . EndAdd:

CalculatorWebService calc = new CalculatorWebService ();IAsyncResult res = calc.BeginAdd (2, 2, null, null);...int sum = calc.EndAdd (res);

EndAdd Web- , EndAdd , . IsCompleted lAsyncResult, BeginAdd, , Web-, EndAdd:

IAsyncResult res = calc.BeginAdd (2, 2, null, null);...if (res.IsCompleted) { int sum = calc.EndAdd (res);}else { // Try again later}

AsyncCallback . EndAdd , , , Web- :

AsyncCallback cb = new AsyncCallback (AddCompleted);IAsyncResult res = calc.BeginAdd (2, 2, cb, null);...public void AddCompleted (IAsyncResult res){ int sum = calc.EndAdd (res);}

, , , . Add , , , , .

 

CityView

Web- CityView (.11) - Web-. Web- - Microsoft TerraService (http://terraservice.net/terraservice.asmx), - Microsoft TerraServer. TerraServer TerraService . http://terraservice.net. TerraServer - , , , Microsoft U.S. Geological Survey. TerraService Web- TerraServer. 16 Web- ConvertPlaceToLonLatPt GetTile. , TerraService Microsoft.NET Framework. WSDL- . http://terraservice.net/terraservice.asmx?wsdl.

. 11.CityView: -

CityView, Web-.

1. CityView.aspx CityView.ashx .

2. , CityView.aspx CityView.ashx, bin. TerraService.dll bin. TerraService.dll DLL, - TerraService TerraService.

CityView.aspx . (, New York) . Show Image. . CityView , Image not available. , . , TerraService , .

, . 8 . . - , San Francisco, CA 32 .

CityView

CityView :

■ CityView.aspx;

■ CityView, ashx;

■ TerraService.dll.

CityView.aspx Web-, (.12). TextBox , DropDownList , RadioButtonList Button . Image, ImageUrl . , URL Image:

MyImage.ImageUrl = builder.ToString ();

Redmond, WA (8 ), , ImageURL, :

CityView.ashx?city=Redmond&state=WA&scale=8

CityView CityView.ashx.

CityView.ashx HTTP-. , HTTP-, , . HTTP-, CS-, DLL DLL bin . Web.config.

CityView.ashx HTTP-. , IHttpHandler, ASHX @ WebHandler, , :

<%@ WebHandler Language="C#" Class="CityViewImageGen" %>

 

ASHX-, WebHandler, ASP.NET . - ASHX- , CONFIG IIS; ASHX- Web-. , , , , , ASP.NET .

CityViewlmageGen CityView.ashx (. 12) , CityView.aspx. ProcessRequest, . ProcessRequest GetTiledlmage. -, Save Bitmap, :

bitmap.Save (context.Response.OutputStream, format);

GetTiledlmage, ProcessRequest , Image not available. : JPEG GIF , .

GetTiledlmage Web- TerraService:

ConvertPlaceToLonLatPt (, , ) ;

GetAreaFromPt , ( ) AreaBoundingBox ;

GetTile ID ( AreaBoundingBox) .

- 200 . TerraService . GetTiledlmage 600X400. Bitmap, . GrapbicsDrawImage . , CityView ( ) . CityView.ashx :

Bitmap bitmap = GetTiledImage (city, state, res, 600, 400);

600 400.

CityView TerraService.dll - TerraService. GetTiledlmage CityView.ashx - Web- TerraService:

TS.TerraService ts = new TS.TerraService ();

TerraService.dll TerraService.cs, :

wsdl /namespace:TS http://terraservice.net/terraservice.asmx

, WSDL- TerraService,

FCL. TerraService.cs , DLL:

esc /t:library terraservice.s

 

CityView.aspx

<html>

<body>

<h1>CityView</h1>

<hr>

<form runat="server">

<table cellpadding="8">

<tr>

<td>

City

</td>

<td>

<asp:TextBox ID="City" Width="100%" RunAt="server" />

</td>

<td>

<asp:RequiredFieldValidator

ControlToValidate="City"

ErrorMessage="*"

Display="static"

Color="red"

RunAt="server"

/>

</td>

</tr>

<tr>

<td>

State

</td>

<td>

<asp:DropDownList ID="State" Width="100%" RunAt="server">

<asp:ListItem Text="AL" RunAt="server" />

<asp:ListItem Text="AK" RunAt="server" />

<asp:ListItem Text="AR" RunAt="server" />

<asp:ListItem Text="AZ" RunAt="server" />

<asp:ListItem Text="CA" RunAt="server" />

<asp:ListItem Text="CO" RunAt="server" />

<asp:ListItem Text="CT" RunAt="server" />

<asp:ListItem Text="DC" RunAt="server" />

<asp:ListItem Text="DE" RunAt="server" />

<asp:ListItem Text="FL" RunAt="server" />

<asp:ListItem Text="GA" RunAt="server" />

<asp:ListItem Text="HI" RunAt="server" />

<asp:ListItem Text="IA" RunAt="server" />

<asp:ListItem Text="ID" RunAt="server" />

<asp:ListItem Text="IL" RunAt="server" />

<asp:ListItem Text="IN" RunAt="server" />

<asp:ListItem Text="KS" RunAt="server" />

<asp:ListItem Text="KY" RunAt="server" />

<asp:ListItem Text="LA" RunAt="server" />

<asp:ListItem Text="MA" RunAt="server" />

<asp:ListItem Text="MD" RunAt="server" />

<asp:ListItem Text="ME" RunAt="server" />

<asp:ListItem Text="MI" RunAt="server" />

<asp:ListItem Text="MN" RunAt="server" />

<asp:ListItem Text="MO" RunAt="server" />

<asp:ListItem Text="MS" RunAt="server" />

<asp:ListItem Text="MT" RunAt="server" />

<asp:ListItem Text="NC" RunAt="server" />

<asp:ListItem Text="ND" RunAt="server" />

<asp:ListItem Text="NE" RunAt="server" />

<asp:ListItem Text="NH" RunAt="server" />

<asp:ListItem Text="NJ" RunAt="server" />

<asp:ListItem Text="NM" RunAt="server" />

<asp:ListItem Text="NV" RunAt="server" />

<asp:ListItem Text="NY" RunAt="server" />

<asp:ListItem Text="OH" RunAt="server" />

<asp:ListItem Text="OK" RunAt="server" />

<asp:ListItem Text="OR" RunAt="server" />

<asp:ListItem Text="PA" RunAt="server" />

<asp:ListItem Text="RI" RunAt="server" />

<asp:ListItem Text="SC" RunAt="server" />

<asp:ListItem Text="SD" RunAt="server" />

<asp:ListItem Text="TN" RunAt="server" />

<asp:ListItem Text="TX" RunAt="server" />

<asp:ListItem Text="UT" RunAt="server" />

<asp:ListItem Text="VA" RunAt="server" />

<asp:ListItem Text="VT" RunAt="server" />

<asp:ListItem Text="WA" RunAt="server" />

<asp:ListItem Text="WI" RunAt="server" />

<asp:ListItem Text="WV" RunAt="server" />

<asp:ListItem Text="WY" RunAt="server" />

</asp:DropDownList>

</td>

<td>

</td>

</tr>

<tr>

<td>

</td>

<td>

<fieldset>

<legend>Scale</legend>

<asp:RadioButtonList ID="Scale" RunAt="server"

RepeatColumns="2" RepeatDirection="Horizontal">

<asp:ListItem Text="1 meter" RunAt="server" />

<asp:ListItem Text="2 meters" RunAt="server" />

<asp:ListItem Text="4 meters" RunAt="server" />

<asp:ListItem Text="8 meters" Selected="true"

RunAt="server" />

<asp:ListItem Text="16 meters" RunAt="server" />

<asp:ListItem Text="32 meters" RunAt="server" />

</asp:RadioButtonList>

</fieldset>

</td>

<td>

</td>

</tr>

<tr>

<td>

</td>

<td>

<asp:Button Text="Show Image" OnClick="OnShowImage"

Width="100%" RunAt="server" />

</td>

<td>

</td>

</tr>

</table>

</form>

<hr>

<asp:Image ID="MyImage" RunAt="server" />

</body>

</html>

 

<script language="C#" runat="server">

void OnShowImage (Object sender, EventArgs e)

{

StringBuilder builder = new StringBuilder ();

builder.Append ("CityView.ashx?city=");

builder.Append (City.Text);

builder.Append ("&state=");

builder.Append (State.SelectedItem.Text);

builder.Append ("&scale=");

 

switch (Scale.SelectedIndex) {

case 0:

builder.Append ("1");

break;

 

case 1:

builder.Append ("2");

break;

 

case 2:

builder.Append ("4");

break;

 

case 3:

builder.Append ("8");

break;

 

case 4:

builder.Append ("16");

break;

 

case 5:

builder.Append ("32");

break;

}

 

MyImage.ImageUrl = builder.ToString ();

}

</script>

 

 

CityView.ashx

 

<%@ WebHandler Language="C#" Class="CityViewImageGen" %>

 

using System;

using System.Web;

using System.Drawing;

using System.Drawing.Imaging;

using System.IO;

 

public class CityViewImageGen: IHttpHandler

{

public void ProcessRequest (HttpContext context)

{

// Extract user input from the query string

string city = context.Request["City"];

string state = context.Request["State"];

string scale = context.Request["Scale"];

 

if (city!= null && state!= null) {

// Determine the scale

TS.Scale res = TS.Scale.Scale8m;

 

if (scale!= null) {

switch (scale) {

case "1":

res = TS.Scale.Scale1m;

break;

 

case "2":

res = TS.Scale.Scale2m;

break;

 

case "4":

res = TS.Scale.Scale4m;

break;

 

case "8":

res = TS.Scale.Scale8m;

break;

 

case "16":

res = TS.Scale.Scale16m;

break;

 

case "32":

res = TS.Scale.Scale32m;

break;

}

}

 

// Generate the requested image

string type = "image/jpeg";

ImageFormat format = ImageFormat.Jpeg;

Bitmap bitmap = GetTiledImage (city, state, res, 600, 400);

 

// If GetTiledImage failed, generate an error bitmap

if (bitmap == null) {

bitmap = GetErrorImage ("Image not available");

type = "image/gif";

format = ImageFormat.Gif;

}

 

// Set the response's content type

context.Response.ContentType = type;

 

// Write the image to the HTTP response

bitmap.Save (context.Response.OutputStream, format);

 

// Clean up and return

bitmap.Dispose ();

}

}

 

public bool IsReusable

{

get { return true; }

}

 

Bitmap GetTiledImage (string City, string State, TS.Scale Scale,

int cx, int cy)

{

Bitmap bitmap = null;

Graphics g = null;

 

try {

// Instantiate the TerraService proxy

TS.TerraService ts = new TS.TerraService ();

 

// Get the latitude and longitude of the requested city

TS.Place place = new TS.Place ();

place.City = City;

place.State = State;

place.Country = "USA";

TS.LonLatPt point = ts.ConvertPlaceToLonLatPt (place);

 

// Compute the parameters for a bounding box

TS.AreaBoundingBox abb = ts.GetAreaFromPt (point,

TS.Theme.Photo, Scale, cx, cy);

 

// Create an image to fit the bounding box

bitmap = new Bitmap (cx, cy,

PixelFormat.Format32bppRgb);

g = Graphics.FromImage (bitmap);

 

int x1 = abb.NorthWest.TileMeta.Id.X;

int y1 = abb.NorthWest.TileMeta.Id.Y;

int x2 = abb.NorthEast.TileMeta.Id.X;

int y2 = abb.SouthWest.TileMeta.Id.Y;

 

for (int x=x1; x<=x2; x++) {

for (int y=y1; y>=y2; y--) {

TS.TileId tid = abb.NorthWest.TileMeta.Id;

tid.X = x;

tid.Y = y;

Image tile = Image.FromStream

(new MemoryStream (ts.GetTile (tid)));

g.DrawImage (tile,

(x - x1) * tile.Width -

(int) abb.NorthWest.Offset.XOffset,

(y1 - y) * tile.Height -

(int)abb.NorthWest.Offset.YOffset,

tile.Width, tile.Height);

tile.Dispose();

}

}

 

// Return the image

return bitmap;

}

catch (Exception) {

if (bitmap!= null)

bitmap.Dispose ();

return null;

}

finally {

if (g!= null)

g.Dispose ();

}

}

 

Bitmap GetErrorImage (string message)

{

// Determine the width and height of the error message

Bitmap bitmap =

new Bitmap (1, 1, PixelFormat.Format32bppRgb);

Graphics g = Graphics.FromImage (bitmap);

Font font = new Font ("Verdana", 10);

SizeF size = g.MeasureString (message, font);

int cx = (int) size.Width;

int cy = (int) size.Height;

bitmap.Dispose ();

g.Dispose ();

 

// Generate a bitmap containing the error message

bitmap = new Bitmap (cx, cy, PixelFormat.Format32bppRgb);

g = Graphics.FromImage (bitmap);

SolidBrush redBrush = new SolidBrush (Color.Red);

SolidBrush whiteBrush = new SolidBrush (Color.White);

 

g.FillRectangle (whiteBrush, 0, 0, 256, 64);

g.DrawString (message, font, redBrush, 0, 0);

 

whiteBrush.Dispose ();

redBrush.Dispose ();

font.Dispose ();

g.Dispose ();

 

// Return the image

return bitmap;

}

}

. 12. CityView

.NET Framework Software Develop menu Kit (SDK). SDK Windows NT 4.0/2000/XP, Windows..NET Framework SDK 1.0, Service Pack 1.

http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/000/976/msdncompositedoc.xml. We all know that URLs change. If you go to this one and find that its no longer valid, visit the Microsoft.NET home page at for the latest information on where to find the SDK.

URL , , Microsoft.NET (http://www.microsoft.com/net), , SDK.

.NET Framework SDK, Web- Microsoft: Internet Information Services (IIS). ASP.NET Windows 2000 Windows XP, . IIS Professional . IIS, Add or Remove Programs Add/Remove Windows Components. US. IIS SDK , ASP.NET .

Visual Studio.NET .NET Framework SDK . Visual Studio.NET , , . . http://msdn.microsoft.com/vstudio/howtobuy.

 





:


: 2016-11-20; !; : 368 |


:

:

, .
==> ...

1531 - | 1322 -


© 2015-2024 lektsii.org - -

: 0.196 .