ThinkGeo Cloud
ThinkGeo UI Controls
ThinkGeo Open Source
Help and Support
External Resources
ThinkGeo Cloud
ThinkGeo UI Controls
ThinkGeo Open Source
Help and Support
External Resources
using System; using System.Collections.Generic; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using ThinkGeo.MapSuite.WebEdition; using ThinkGeo.MapSuite.Core; namespace WebApplication1 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4")); Map1.CurrentExtent = new RectangleShape(-123.22, 55.05, -76, 16.91); Map1.MapUnit = GeographyUnit.DecimalDegree; ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/STATES.shp")); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, 212, 220, 184), GeoColor.FromArgb(255, 132, 132, 154), 1); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(shapeFileFeatureLayer); Map1.CustomOverlays.Add(layerOverlay); InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay("MarkerOverlay"); markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("theme/default/img/marker_blue.gif", 21, 25); markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Features.Add("TrackMarker", new Feature(-123, 40)); Map1.CustomOverlays.Add(markerOverlay); } } private void UpdateTrackShape() { InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)Map1.CustomOverlays["MarkerOverlay"]; PointShape point = (PointShape)markerOverlay.Features["TrackMarker"].GetShape(); PointShape newPoint = new PointShape(point.X + 0.5, point.Y); if (newPoint.X > -77) { newPoint.X = -123; } markerOverlay.Features["TrackMarker"] = new Feature(newPoint); } protected void Timer1_Tick(object sender, EventArgs e) { UpdateTrackShape(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using ThinkGeo.MapSuite.Core; using ThinkGeo.MapSuite.WebEdition; namespace WebApplication1 { public partial class DefaultByJavascript : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4")); Map1.CurrentExtent = new RectangleShape(-123.22, 55.05, -76, 16.91); Map1.MapUnit = GeographyUnit.DecimalDegree; ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/STATES.shp")); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, 212, 220, 184), GeoColor.FromArgb(255, 132, 132, 154), 1); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(shapeFileFeatureLayer); Map1.CustomOverlays.Add(layerOverlay); InMemoryFeatureLayer lineLayer = new InMemoryFeatureLayer(); lineLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.LocalRoad1; lineLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LineShape lineShape = new LineShape(); lineShape.Vertices.Add(new Vertex(-123, 40)); lineShape.Vertices.Add(new Vertex(-123, 40)); Feature lineFeature = new Feature(lineShape); ViewState["LineState"] = lineFeature; lineLayer.Open(); lineLayer.InternalFeatures.Add("LineShape", lineFeature); lineLayer.Close(); LayerOverlay lineOverlay = new LayerOverlay("Line", false, TileType.SingleTile); lineOverlay.Layers.Add("LineLayer", lineLayer); Map1.CustomOverlays.Add(lineOverlay); List<string> featureColumnNames = new List<string>(); featureColumnNames.Add("Type"); featureColumnNames.Add("Name"); featureColumnNames.Add("Style"); featureColumnNames.Add("Num"); Dictionary<string, string> columnValues = new Dictionary<string, string>(); columnValues.Add("Type", "Type"); // Stop Name columnValues.Add("Name", "Temp1"); columnValues.Add("Style", "NoStyle"); columnValues.Add("Num", "1001"); InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay("MarkerOverlay", featureColumnNames); InMemoryMarkerOverlay markerOverlay1 = new InMemoryMarkerOverlay("MarkerOverlay1", featureColumnNames); markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("theme/default/img/marker_blue.gif", 21, 25, -10.5f, -25f); markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay1.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("theme/default/img/marker_green.gif", 21, 25, -10.5f, -25f); markerOverlay1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; Feature featObj = new Feature(-123, 40); featObj.ColumnValues.Add("Type", "Type"); // Stop Name featObj.ColumnValues.Add("Name", "Temp1"); featObj.ColumnValues.Add("Style", "NoStyle"); featObj.ColumnValues.Add("Num", "1001"); markerOverlay.Features.Add("TrackMarker", featObj); Feature featObj1 = new Feature(-124, 41); featObj1.ColumnValues.Add("Type", "Type"); // Stop Name featObj1.ColumnValues.Add("Name", "Temp1"); featObj1.ColumnValues.Add("Style", "NoStyle"); featObj1.ColumnValues.Add("Num", "1001"); markerOverlay1.Features.Add("TrackMarker1", featObj1); markerOverlay.Features.Add("TrackMarker1", featObj1); Map1.CustomOverlays.Add(markerOverlay); Map1.CustomOverlays.Add(markerOverlay1); } } private void UpdateTrackShape() { InMemoryMarkerOverlay markerOverlay = (InMemoryMarkerOverlay)Map1.CustomOverlays["MarkerOverlay"]; InMemoryMarkerOverlay markerOverlay1 = (InMemoryMarkerOverlay)Map1.CustomOverlays["MarkerOverlay1"]; PointShape point = (PointShape)markerOverlay.Features["TrackMarker"].GetShape(); PointShape newPoint = new PointShape(point.X + 0.25, point.Y); if (newPoint.X > -77) { newPoint.X = -123; } InMemoryFeatureLayer lineLayer = (InMemoryFeatureLayer)((LayerOverlay)Map1.CustomOverlays["Line"]).Layers["LineLayer"]; Feature lineFeature = (Feature)ViewState["LineState"]; LineShape lineShape = ((LineShape)lineFeature.GetShape()); lineShape.Vertices.Add(new Vertex(newPoint)); lineLayer.InternalFeatures.Clear(); lineLayer.InternalFeatures.Add(new Feature(lineShape)); ((LayerOverlay)Map1.CustomOverlays["Line"]).Redraw(); markerOverlay.Features.Clear(); //markerOverlay.Features["TrackMarker"] = new Feature(newPoint); Feature featObj = new Feature(newPoint); featObj.ColumnValues.Add("Type", "Type"); // Stop Name featObj.ColumnValues.Add("Name", "Temp1"); featObj.ColumnValues.Add("Style", "NoStyle"); featObj.ColumnValues.Add("Num", "1001"); markerOverlay.Features.Add("TrackMarker", featObj); PointShape point1 = (PointShape)markerOverlay1.Features["TrackMarker1"].GetShape(); PointShape newPoint1 = new PointShape(point1.X + 0.25, point1.Y); if (newPoint.X > -77) { newPoint.X = -123; } Feature featObj1 = new Feature(newPoint1); featObj1.ColumnValues.Add("Type", "Type"); // Stop Name featObj1.ColumnValues.Add("Name", "Temp1"); featObj1.ColumnValues.Add("Style", "NoStyle"); featObj1.ColumnValues.Add("Num", "1001"); markerOverlay1.Features.Clear(); markerOverlay1.Features.Add("TrackMarker1", featObj1); markerOverlay.Features.Add("TrackMarker1", featObj1); ScriptManager.RegisterStartupScript(this, this.GetType(), "UpdateMarker", "UpdateMarkers()", true); } protected void Timer1_Tick(object sender, EventArgs e) { UpdateTrackShape(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.Services; using ThinkGeo.MapSuite.Core; using ThinkGeo.MapSuite.WebEdition; namespace WebApplication1 { public partial class DefaultByOpenLayers : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { Map1.MapBackground.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#B3C6D4")); Map1.CurrentExtent = new RectangleShape(-123.22, 55.05, -76, 16.91); Map1.MapUnit = GeographyUnit.DecimalDegree; ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(MapPath("~/app_data/STATES.shp")); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(100, 212, 220, 184), GeoColor.FromArgb(255, 132, 132, 154), 1); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(shapeFileFeatureLayer); Map1.CustomOverlays.Add(layerOverlay); System.Web.HttpContext.Current.Session["Longitude"] = "-123"; } } [WebMethod(CacheDuration|= 0)] public static MyMarker GetMarker() { double longitude = Convert.ToDouble(System.Web.HttpContext.Current.Session["Longitude"].ToString()); longitude += 0.5; if (longitude > -77) { longitude = -123; } System.Web.HttpContext.Current.Session["Longitude"] = longitude; return new MyMarker(40, longitude); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace WebApplication1 { public class MyMarker { public MyMarker(double latitude, double longitude) { this.Latitude = latitude; this.Longitude = longitude; } public double Latitude { get; set; } public double Longitude { get; set; } } }
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication1._Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <%@ Register Assembly="WebEdition" Namespace="ThinkGeo.MapSuite.WebEdition" TagPrefix="cc1" %> <%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI" TagPrefix="asp" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <cc1:Map ID="Map1" runat="server" Height="480px" Width="640px"> </cc1:Map> <asp:Timer ID="Timer1" runat="server" Interval="10000" OnTick="Timer1_Tick"> </asp:Timer> </ContentTemplate> </asp:UpdatePanel> </div> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DefaultByJavascript.aspx.cs" Inherits="WebApplication1.DefaultByJavascript" %> <%@ Register Assembly="WebEdition" Namespace="ThinkGeo.MapSuite.WebEdition" TagPrefix="cc1" %> <!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 id="Head1" runat="server"> <title>Animated Marker</title> <script type="text/javascript"> var UpdateMarkers = function () { Map1.GetMapParser().sendMarkersRequest(); // var olMap = Map1.GetOpenLayersMap(); // var lineOverlay = olMap.getLayer("LabelOverlay"); // if (lineOverlay != null) { // lineOverlay.redraw(true); // } } var OnMapCreating = function (map) { OpenLayers.Layer.Markers.prototype.addMarker = function (marker) { this.markers.push(marker); if (this.opacity != null) { marker.setOpacity(this.opacity); } if (this.map && this.map.getExtent()) { marker.map = this.map; this.drawMarker(marker); } marker.events.on({ 'mouseover': function (evt) { this.originalSize = this.icon.size; if (!this.originalSize) { this.originalSize = new OpenLayers.Size(this.icon.imageDiv.clientWidth, this.icon.imageDiv.clientHeight); } this.icon.setSize(this.magnifiedSize); }, 'mouseout': function (evt) { this.icon.setSize(this.originalSize); }, scope: marker }); } OpenLayers.Marker.GeoMarker = OpenLayers.Class(OpenLayers.Marker.GeoMarker, { originalSize: null, magnifiedSize: new OpenLayers.Size(50, 50) }); } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server"> </asp:ScriptManager> <cc1:Map ID="Map1" runat="server" Height="480px" Width="640px"> </cc1:Map> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Timer ID="Timer1" runat="server" Interval="500" OnTick="Timer1_Tick"> </asp:Timer> </ContentTemplate> </asp:UpdatePanel> </div> </form> </body> </html>
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DefaultByOpenLayers.aspx.cs" Inherits="WebApplication1.DefaultByOpenLayers" %> <%@ Register Assembly="WebEdition" Namespace="ThinkGeo.MapSuite.WebEdition" TagPrefix="cc1" %> <!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 id="Head1" runat="server"> <title>Animated Marker</title> <script type="text/javascript"> var olMap; var OnMapCreated = function (map) { olMap = map; var markers = new OpenLayers.Layer.Markers("MarkerOverlay"); markers.id = "MarkerOverlay"; map.addLayer(markers); var size = new OpenLayers.Size(21, 25); var offset = new OpenLayers.Pixel(-(size.w / 2), -size.h); var icon = new OpenLayers.Icon("/theme/default/img/marker_blue.gif", size, offset); var marker = new OpenLayers.Marker(new OpenLayers.LonLat(-123, 40), icon); markers.addMarker(marker); window.setInterval('RefreshMap()', 5000); } function RefreshMap() { var markerOverlay = olMap.getLayer("MarkerOverlay"); markerOverlay.clearMarkers(); for (i = 0; i < markerOverlay.markers.length; i++) { markerOverlay.markers[i].destroy(); markerOverlay.removeMarker(markerOverlay.markers[i]); } PageMethods.GetMarker(getMarkerMethodCompleted); } function getMarkerMethodCompleted(result, context, methodName) { var size = new OpenLayers.Size(21, 25); var offset = new OpenLayers.Pixel(-(size.w / 2), -size.h); var icon = new OpenLayers.Icon("/theme/default/img/marker_blue.gif", size, offset); var marker = new OpenLayers.Marker(new OpenLayers.LonLat(result.Longitude, result.Latitude), icon); var markerOverlay = olMap.getLayer("MarkerOverlay"); markerOverlay.addMarker(marker); } </script> </head> <body> <form id="form1" runat="server"> <div> <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true"> </asp:ScriptManager> <cc1:Map ID="Map1" runat="server" Height="480px" Width="640px"> </cc1:Map> </div> </form> </body> </html>