It looks like CodeStock is going to happen on August 9. More info to follow soon. Michael Neel is doing a lot of work on it.
Wally
Original Url: http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/05/07/asp-net-podcast-show-112-intro-to-asp-net-ajax.aspx
Subscribe to everything <---- This is what the cool kids are doing.
Subscribe to WMV.
Subscribe to MP4/M4V.
Subscribe to MP3.
Download WMV.
Download M4V.
Download MP3.
Show Notes:
- JSON.
- Web Services .
- Client Side Proxy.
- See it run.
- Visual Studio 2008 really is that good.
- UpdatePanel Intro with the client side events.
- New features coming.
- Upcoming community events.
I've created some new feeds for the ASP.NET Podcast There is still the same general feed. It will have all shows and all of the variations of the shows in it. These include WMV, MP4/M4V, MP3, and whatever else one can throw in it. The rest of the feeds are:
If you have any problems, let me know ASAP!
Wally
Original url: http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/05/05/asp-net-podcast-show-111-asp-net-ajax-with-virtual-earth.aspx
Subscribe.
<-- Everybody needs some, how about you!
Download WMV - Video for PC.
Download M4V - Video for iPod.
Download MP3 - Audio only.
Show Notes:
Source Code:
Master Page:
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>ASP.NET Podcast Mapping Page</title> <asp:ContentPlaceHolder id="head" runat="server"> </asp:ContentPlaceHolder> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAA_mrKwezGRvHyiI2zD3-QjxQyvuBphQwgXhP_kHK6Ww2QlMKTbxQ3mY6sQnMU6V5PMK8wQzOfhkt_Vw" language="javascript" type="text/javascript"></script> <script type="text/javascript" src="http://dev.virtualearth.net/mapcontrol/mapcontrol.ashx?v=6.1"></script> </head><body onunload="GUnload()"> <form id="form1" runat="server"> <asp:ScriptManager ID="sm" runat="server"> <Services> <asp:ServiceReference Path="~/GetMapData.asmx" /> </Services> </asp:ScriptManager> <div> <asp:ContentPlaceHolder id="ContentPlaceHolder1" runat="server"> </asp:ContentPlaceHolder> </div> </form></body>
</html>
ASP.NET Page:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Live_Default" Title="Virtual Earth Page" %> <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><div id="MapDiv" style="position:relative; width:450px; height: 350px;" ></div><br /><div id="MapInfo"></div> <script language="javascript" type="text/javascript">var Map;function pageLoad(){ GetMapData.MapData(SetupMap);} function SetupMap(result){ var Lat = result.Center.Lat; var Lon = result.Center.Lon; var ZoomLevel = result.ZoomLevel; var MapView, TopLeft, BottomRight; Map = new VEMap('MapDiv'); Map.LoadMap(new VELatLong(Lat, Lon), ZoomLevel ,'h' ,false); MapView = Map.GetMapView(); TopLeft = MapView.TopLeftLatLong; BottomRight = MapView.BottomRightLatLong; //TopleftLatLong and BottomRightLatLong return a VELatLong object. Map.AttachEvent("onchangeview", MapChangedView); GetMapData.GetPointData(10, TopLeft.Latitude, TopLeft.Longitude, BottomRight.Latitude, BottomRight.Longitude, GetDataSuccess);}function GetDataSuccess(result){ var i = 0; var Lat, Lon; $get("MapInfo").innerHTML = ""; for(i=0;i<result.length;i++) { Lat = result[i].Location.Lat; Lon = result[i].Location.Lon; var shape = new VEShape(VEShapeType.Pushpin, new VELatLong(Lat, Lon)); shape.SetTitle("Title: " + i); shape.SetDescription(result[i].Description); Map.AddShape(shape); $get("MapInfo").innerHTML += "Point Location - Lat: " + result[i].Location.Lat + " Lon: " + result[i].Location.Lon + "<br />"; }}
function MapChangedView(e){ Map.DeleteAllShapes(); MapView = Map.GetMapView(); TopLeft = MapView.TopLeftLatLong; BottomRight = MapView.BottomRightLatLong; GetMapData.GetPointData(10, TopLeft.Latitude, TopLeft.Longitude, BottomRight.Latitude, BottomRight.Longitude, GetDataSuccess);}</script></asp:Content>
Web Service:
using System;using System.Collections;using System.Collections.Generic;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Web.Script.Services; /// <summary>/// Summary description for GetMapData/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][ScriptService]public class GetMapData : System.Web.Services.WebService { public GetMapData () { //Uncomment the following line if using designed components //InitializeComponent(); } [WebMethod] [GenerateScriptType(typeof(MapData))] public MapData MapData() { MapData md = new MapData(); LatLon ll = new LatLon(); ll.Lat = 36; ll.Lon = -84; md.Center = ll; md.ZoomLevel = 8; return (md); } [WebMethod] [GenerateScriptType(typeof(PointData))] public PointData[] GetPointData(int PointCount, double ULLat, double ULLon, double LRLat, double LRLon) { int i = 0; double PTLat, PTLon; double LatDelta, LonDelta; Random rd = new Random(); PointData pd; LatLon ll; List<PointData> pdl = new List<PointData>(); LatDelta = ULLat - LRLat; LonDelta = ULLon - LRLon; for (i = 0; i < PointCount; i++) { pd = new PointData(); ll = new LatLon(); ll.Lat = LRLat + LatDelta * rd.NextDouble(); ll.Lon = LRLon + LonDelta * rd.NextDouble(); pd.Location = ll; pd.Description = "Point number: " + i.ToString(); pdl.Add(pd); } return (pdl.ToArray()); }} public class MapData{ public LatLon Center; public int ZoomLevel;} public class LatLon{ public double Lat; public double Lon;} public class PointData{ public LatLon Location; public string Description;}
Original Url: http://aspnetpodcast.com/CS11/blogs/asp.net_podcast/archive/2008/05/01/asp-net-podcast-110-integrating-asp-net-ajax-with-google-maps.aspx
Subscribe
Download - WMV - PC Video.
Download M4V - iPod Video.
Download MP3 - Audio Only.
Show Notes:
- Integrate ASP.NET AJAX with Google Maps.
- Google Key.
- Web Services.
- Returning Data.
- Setting up the Map.
- Adding points to the Map.
- Clearing the Map.
Web Service Code:
using System;using System.Collections;using System.Collections.Generic;using System.Web;using System.Web.Services;using System.Web.Services.Protocols;using System.Web.Script.Services; /// <summary>/// Summary description for GetMapData/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)][ScriptService]public class GetMapData : System.Web.Services.WebService { public GetMapData () { //Uncomment the following line if using designed components //InitializeComponent(); } [WebMethod] [GenerateScriptType(typeof(MapData))] public MapData MapData() { MapData md = new MapData(); LatLon ll = new LatLon(); ll.Lat = 36; ll.Lon = -84; md.Center = ll; md.ZoomLevel = 8; return (md); } [WebMethod] [GenerateScriptType(typeof(PointData))] public PointData[] GetPointData(int PointCount, double ULLat, double ULLon, double LRLat, double LRLon) { int i = 0; double PTLat, PTLon; double LatDelta, LonDelta; Random rd = new Random(); PointData pd; LatLon ll; List<PointData> pdl = new List<PointData>(); LatDelta = ULLat - LRLat; LonDelta = ULLon - LRLon; for (i = 0; i < PointCount; i++) { pd = new PointData(); ll = new LatLon(); ll.Lat = LRLat + LatDelta * rd.NextDouble(); ll.Lon = LRLon + LonDelta * rd.NextDouble(); pd.Location = ll; pd.Description = "Point number: " + i.ToString(); pdl.Add(pd); } return (pdl.ToArray()); }} public class MapData{ public LatLon Center; public int ZoomLevel;} public class LatLon{ public double Lat; public double Lon;} public class PointData{ public LatLon Location; public string Description;}
ASPX Page Code:
<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Google_Default" Title="Google Maps Page" %><asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server"></asp:Content><asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server"><div id="MapDiv" style="width:450px; height: 350px;" ></div> <br /><div id="MapInfo"></div><script language="javascript" type="text/javascript">var Map;function pageLoad(){ GetMapData.MapData(SetupMap);} function SetupMap(result){ var Lat = result.Center.Lat; var Lon = result.Center.Lon; var ZoomLevel = result.ZoomLevel; var Bounds, sw, ne; Map = new GMap($get("MapDiv")); Map.addControl(new GSmallMapControl()); Map.addControl(new GMapTypeControl()); Map.setCenter(new GLatLng(Lat, Lon), ZoomLevel); Bounds = Map.getBounds(); sw = Bounds.getSouthWest(); ne = Bounds.getNorthEast(); $get("MapInfo").innerHTML="SW Point: " + sw + "<br />" + "NE Point: " + ne + "<br />"; GEvent.addListener(Map, "dragend", MapMoved); GEvent.addListener(Map, "zoomend", MapZoomed); GetMapData.GetPointData(10, sw.lat(), ne.lng(), ne.lat(), sw.lng(), GetDataSuccess);}function MapMoved(){ var Bounds, sw, ne; Bounds = Map.getBounds(); sw = Bounds.getSouthWest(); ne = Bounds.getNorthEast(); Map.clearOverlays(); GetMapData.GetPointData(10, sw.lat(), ne.lng(), ne.lat(), sw.lng(), GetDataSuccess);}function MapZoomed(OldZoomLevel, NewZoomLevel)