国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設(shè)計 > 正文

SharpMap V1.1 For Web教程系列之——地圖展示

2019-11-17 02:38:12
字體:
供稿:網(wǎng)友

SharpMap V1.1 For Web教程系列之——地圖展示

開篇先說本次的開發(fā)環(huán)境吧。采用Vs2010,.Net Framework 4.0。

為了更好的調(diào)試程序,建議在IIS中進行調(diào)試及運行,個人非常不喜歡利用VS自己提供的WebServer去調(diào)試程序,而且很多在Web.config中的設(shè)置也需要在IIS中才能起到效果!

開發(fā)環(huán)境我就不要介紹了,先來說說SharpMap的組件要求吧。由于SharpMap的架構(gòu)一直在變化和改進過程中,因此參考網(wǎng)絡(luò)上別人的事例代碼,你會發(fā)現(xiàn)都運行不起來,不是接口沒了,就是命名空間變了,這點我也希望SharpMap早日穩(wěn)定下來。

這次使用的SharpMap的版本是V1.1版本,官方意見提供最新穩(wěn)定版的下載了,官方網(wǎng)址為:http://sharpmap.codeplex.com/

SharpMap 1.1版本的下載地址為:http://sharpmap.codeplex.com/downloads/get/792797?,發(fā)布時間為2014年12月11日;該版本只是SharpMap的核心庫(Core+UI),下載完后,為了Web開發(fā)還必須下載一個Web端的庫,本人做完因為這一步走了好多彎路,網(wǎng)絡(luò)上的教程也沒有人寫上著一點。在官網(wǎng)的DOWNLOADS節(jié)點下有個下載界面,需要下載SharpMap.Web這個組件。

OK!所需庫完成后,下面進行asp.net的網(wǎng)站開發(fā)!你也可以不看下面的代碼,直接下載整個網(wǎng)站。解決方案下載地址:http://pan.baidu.com/s/1i3vdUcd

打開VS2010,新建一個網(wǎng)站,?新建一個WebForm,我這里命名為“Map.aspx”,下面貼代碼:

Map.aspx:地圖展示頁面

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Map.aspx.cs" Inherits="Map" %><!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>SharpMap測試</title></head><body>    <form id="form1" runat="server">    <div>        <asp:RadioButtonList ID="rblMapTools" runat="server" RepeatDirection="Horizontal">            <asp:ListItem Value="0">Zoom in</asp:ListItem>            <asp:ListItem Value="1">Zoom out</asp:ListItem>            <asp:ListItem Value="2" Selected="True">Pan</asp:ListItem>        </asp:RadioButtonList>        <asp:ImageButton runat="server" Width="700" Height="400" ID="imgMap"             onclick="imgMap_Click" />    </div>    </form></body></html>
View Code

Map.aspx.cx:

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;public partial class Map : System.Web.UI.Page{    PRivate SharpMap.Map myMap;    protected void Page_Load(object sender, EventArgs e)    {        myMap = MapHelper.InitializeMap(new System.Drawing.Size((int)imgMap.Width.Value, (int)imgMap.Height.Value));        //SharpMap.Map        if (this.IsPostBack)        {            myMap.Center = (GeoAPI.Geometries.Coordinate)ViewState["mapCenter"];            myMap.Zoom = (double)ViewState["mapZoom"];        }        else        {            this.generateMap();        }    }    protected void imgMap_Click(object sender, ImageClickEventArgs e)    {        myMap.Center = myMap.ImageToWorld(new System.Drawing.Point(e.X, e.Y));        //Set zoom value if any of the zoom tools were selected        if (rblMapTools.SelectedValue == "0") //Zoom in            myMap.Zoom = myMap.Zoom * 0.5;        else if (rblMapTools.SelectedValue == "1") //Zoom out            myMap.Zoom = myMap.Zoom * 2;        //Create the map        this.generateMap();    }    private void generateMap()    {        ViewState.Add("mapCenter", myMap.Center);        ViewState.Add("mapZoom", myMap.Zoom);        //myMap = MapHelper.InitializeMap(new System.Drawing.Size(256, 256));        System.Drawing.Image img = myMap.GetMap();        string imgID = SharpMap.Web.Caching.InsertIntoCache(1, img);                imgMap.ImageUrl = "getmap.aspx?ID=" + HttpUtility.UrlEncode(imgID);    }}

  Web.Config配置文件,在.Net 4.0下配置文件,紅色部分表示這個地方和SharpMap官網(wǎng)以及互聯(lián)網(wǎng)上很多教程里面的區(qū)別。

<?xml version="1.0"?><configuration>  <system.web>    <compilation debug="true" targetFramework="4.0" />  </system.web>  <system.webServer>     <modules runAllManagedModulesForAllRequests="true"/>      <handlers>          <add verb="*" name="test" path="GetMap.aspx" type="SharpMap.Web.HttpHandler" preCondition="integratedMode"/>      </handlers>      <validation validateIntegratedModeConfiguration="false" />  </system.webServer></configuration>

MapHelper.cs

using System;using System.Collections.Generic;using System.Linq;using System.Web;using SharpMap;using System.Drawing;using SharpMap.Layers;using SharpMap.Data.Providers;using SharpMap.Styles;using System.Drawing.Text;using SharpMap.Rendering;using ColorBlend=SharpMap.Rendering.Thematics.ColorBlend;using Point=GeoAPI.Geometries.Coordinate;using System.Drawing.Drawing2D;/// <summary>/// Summary description for MapHelper/// </summary>public class MapHelper{    public MapHelper()    {    }    public static Map InitializeMap(Size size)    {        HttpContext.Current.Trace.Write("Initializing map...");        //Initialize a new map of size 'imagesize'        Map map = new Map(size);        //Set up the countries layer        VectorLayer layCountries = new VectorLayer("Countries");        //Set the datasource to a shapefile in the App_data folder        layCountries.DataSource = new ShapeFile(HttpContext.Current.Server.MapPath(@"~/App_data/countries.shp"), true);        //Set fill-style to green        layCountries.Style.Fill = new SolidBrush(Color.Green);        //Set the polygons to have a black outline        layCountries.Style.Outline = Pens.Black;        layCountries.Style.EnableOutline = true;        layCountries.SRID = 4326;        //Set up a river layer        VectorLayer layRivers = new VectorLayer("Rivers");        //Set the datasource to a shapefile in the App_data folder        layRivers.DataSource = new ShapeFile(HttpContext.Current.Server.MapPath(@"~/App_data/rivers.shp"), true);        //Define a blue 1px wide pen        layRivers.Style.Line = new Pen(Color.Blue, 1);        layRivers.SRID = 4326;        //Set up a river layer        VectorLayer layCities = new VectorLayer("Cities");        //Set the datasource to a shapefile in the App_data folder        layCities.DataSource = new ShapeFile(HttpContext.Current.Server.MapPath(@"~/App_data/cities.shp"), true);        //Define a blue 1px wide pen        //layCities.Style.Symbol = new Bitmap(HttpContext.Current.Server.MapPath(@"~/App_data/Taiyuan/icon.png"));        layCities.Style.SymbolScale = 0.8f;        layCities.MaxVisible = 40;        layCities.SRID = 4326;        //Set up a country label layer        LabelLayer layLabel = new LabelLayer("Country labels");        layLabel.DataSource = layCountries.DataSource;        layLabel.Enabled = true;        layLabel.LabelColumn = "Name";        layLabel.Style = new LabelStyle();        layLabel.Style.ForeColor = Color.White;        layLabel.Style.Font = new Font(FontFamily.GenericSerif, 12);        layLabel.Style.BackColor = new SolidBrush(Color.FromArgb(128, 255, 0, 0));        layLabel.MaxVisible = 90;        layLabel.MinVisible = 30;        layLabel.Style.HorizontalAlignment = LabelStyle.HorizontalAlignmentEnum.Center;        layLabel.SRID = 4326;        layLabel.MultipartGeometryBehaviour = LabelLayer.MultipartGeometryBehaviourEnum.Largest;        //Set up a city label layer        LabelLayer layCityLabel = new LabelLayer("City labels");        layCityLabel.DataSource = layCities.DataSource;        layCityLabel.Enabled = true;        layCityLabel.LabelColumn = "Name";        layCityLabel.Style = new LabelStyle();        layCityLabel.Style.ForeColor = Color.Black;
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 肇东市| 闻喜县| 江源县| 连云港市| 南江县| 海丰县| 贵德县| 崇信县| 宁都县| 东丰县| 贵州省| 崇礼县| 隆回县| 红河县| 通江县| 邳州市| 砚山县| 木里| 苏尼特右旗| 柏乡县| 兴义市| 浦城县| 张家口市| 富裕县| 潼南县| 霍山县| 巴彦淖尔市| 新绛县| 光泽县| 华坪县| 鄂伦春自治旗| 宜丰县| 雅安市| 房产| 城市| 南涧| 孝感市| 山东省| 三台县| 宁晋县| 嘉善县|