User Tools

Site Tools


source_code_webeditionsample_movingfeatureswithajax_cs_101223.zip

Source Code WebEditionSample MovingFeaturesWithAjax CS 101223.zip

Default.aspx.cs

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();
        }
    }
}

DefaultByJavascript.aspx.cs

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();
        }
    }
}

DefaultByOpenLayers.aspx.cs

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);
        }
    }
}

MyMarker.cs

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; }
    }
}

Default.aspx

<%@ 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>

DefaultByJavascript.aspx

<%@ 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>

DefaultByOpenLayers.aspx

<%@ 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>
source_code_webeditionsample_movingfeatureswithajax_cs_101223.zip.txt · Last modified: 2015/09/09 03:37 by admin