开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
develop
分支 (1)
develop
develop
分支 (1)
develop
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
develop
分支 (1)
develop
SharpMap
/
SharpMap.Serialization
/
MapSerialization.cs
SharpMap
/
SharpMap.Serialization
/
MapSerialization.cs
MapSerialization.cs 5.73 KB
一键复制 编辑 原始数据 按行查看 历史
Felix Obermaier 提交于 2015年11月05日 16:57 +08:00 . Fixing Obsolete issues
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Drawing;
using System.Net;
using System.Xml.Serialization;
using SharpMap.Serialization.Model;
namespace SharpMap.Serialization
{
public static class MapSerialization
{
/// <summary>
/// Parses a Map from a MapDocument
/// </summary>
/// <param name="s">Instance of <see cref="Stream"/></param>
/// <returns>Map Document accodring to the MapDocument</returns>
public static Map LoadMapFromStream(Stream s)
{
XmlSerializer ser = new XmlSerializer(typeof(MapDefinition));
MapDefinition md = (MapDefinition)ser.Deserialize(s);
Map m = new Map();
if (md.Extent != null)
m.ZoomToBox(new GeoAPI.Geometries.Envelope(md.Extent.Xmin, md.Extent.Xmax, md.Extent.Ymin, md.Extent.Ymax));
if (!string.IsNullOrEmpty(md.BackGroundColor))
{
m.BackColor = ColorTranslator.FromHtml(md.BackGroundColor);
}
m.SRID = md.SRID;
foreach (var l in md.Layers)
{
SharpMap.Layers.ILayer lay = null;
//WMSLayer?
if (l is WmsLayer)
{
ICredentials cred = null;
if (!string.IsNullOrEmpty((l as WmsLayer).WmsUser))
cred = new NetworkCredential((l as WmsLayer).WmsUser, (l as WmsLayer).WmsPassword);
SharpMap.Layers.WmsLayer wmsl = new Layers.WmsLayer(l.Name, (l as WmsLayer).OnlineURL, TimeSpan.MaxValue, WebRequest.DefaultWebProxy, cred);
if ((l as WmsLayer).WmsLayers != null)
{
string[] layers = (l as WmsLayer).WmsLayers.Split(',');
foreach (var wl in layers)
{
wmsl.AddLayer(wl);
}
}
else
{
wmsl.AddChildLayers(wmsl.RootLayer,true);
}
lay = wmsl;
}
//And some simple tiled layers
else if (l is OsmLayer)
{
var ol = (OsmLayer) l;
BruTile.Predefined.KnownTileSource kts;
if (!Enum.TryParse(ol.KnownTileSource, out kts))
kts = BruTile.Predefined.KnownTileSource.OpenStreetMap;
if (ol.Async)
lay = new Layers.TileAsyncLayer(BruTile.Predefined.KnownTileSources.Create(kts, ol.ApiKey), l.Name);
else
lay = new Layers.TileLayer(BruTile.Predefined.KnownTileSources.Create(kts, ol.ApiKey), l.Name);
}
/*
else if (l is GoogleLayer)
{
lay = new Layers.TileLayer(new BruTile.Web.GoogleTileSource(BruTile.Web.GoogleMapType.GoogleMap), l.Name);
}
else if (l is GoogleSatLayer)
{
lay = new Layers.TileLayer(new BruTile.Web.GoogleTileSource(BruTile.Web.GoogleMapType.GoogleSatellite), l.Name);
}
else if (l is GoogleTerrainLayer)
{
lay = new Layers.TileLayer(new BruTile.Web.GoogleTileSource(BruTile.Web.GoogleMapType.GoogleTerrain), l.Name);
}
*/
if (lay != null)
{
lay.MinVisible = l.MinVisible;
lay.MaxVisible = l.MaxVisible;
m.Layers.Add(lay);
}
}
return m;
}
public static void SaveMapToStream(Map m, Stream s)
{
MapDefinition md = new MapDefinition();
md.Extent = new Extent()
{
Xmin = m.Envelope.MinX,
Xmax = m.Envelope.MaxX,
Ymin = m.Envelope.MinY,
Ymax = m.Envelope.MaxY
};
md.BackGroundColor = ColorTranslator.ToHtml(m.BackColor);
md.SRID = m.SRID;
List<MapLayer> layers = new List<MapLayer>();
foreach (var layer in m.Layers)
{
MapLayer ml = null;
if (layer is SharpMap.Layers.VectorLayer)
{
}
else if (layer is SharpMap.Layers.WmsLayer)
{
WmsLayer sl = new WmsLayer();
sl.OnlineURL = (layer as SharpMap.Layers.WmsLayer).CapabilitiesUrl;
sl.WmsLayers = string.Join(",", (layer as SharpMap.Layers.WmsLayer).LayerList.ToArray());
if ((layer as SharpMap.Layers.WmsLayer).Credentials is NetworkCredential)
{
sl.WmsUser = ((layer as SharpMap.Layers.WmsLayer).Credentials as NetworkCredential).UserName;
sl.WmsPassword = ((layer as SharpMap.Layers.WmsLayer).Credentials as NetworkCredential).Password;
}
ml = sl;
}
ml.MinVisible = layer.MinVisible;
ml.MaxVisible = layer.MaxVisible;
ml.Name = layer.LayerName;
if (ml != null)
layers.Add(ml);
}
md.Layers = layers.ToArray();
XmlSerializer serializer = new XmlSerializer(typeof(MapDefinition));
serializer.Serialize(s, md);
}
}
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C#
1
https://gitee.com/wensten/SharpMap.git
git@gitee.com:wensten/SharpMap.git
wensten
SharpMap
SharpMap
develop
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /