谁有比较详细的学习geoserver关于地图的图层的开发资料(或者还有关于udig、openlayers的)?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谁有比较详细的学习geoserver关于地图的图层的开发资料(或者还有关于udig、openlayers的)?相关的知识,希望对你有一定的参考价值。
邮箱:1405181011@qq.com
好的加分
谢谢
Windows Phone 地图:来自 GeoServer 的图层
【中文标题】Windows Phone 地图:来自 GeoServer 的图层【英文标题】:Windows Phone Maps: Layer from GeoServer 【发布时间】:2014-11-07 15:30:28 【问题描述】:在 Windows Phone 上从 GeoServer 绘制地图图层的最简单方法是什么?
从 GeoServer 的输出格式(GeoJSON、KML、GeoRSS、Shapefile、CSV...)来看,您认为哪种更容易操作并转换为 Windows Phone 的 Map Layer 元素(如多边形)?
关于这些主题,您推荐了哪些 API 或教程?
【问题讨论】:
你有没有找到任何你想分享的解决方案?谢谢 是的,我稍后会发布详细信息.. 那将是非常受欢迎的。预先感谢 【参考方案1】:我选择了 GeoJSON 格式:
string _buldingUrl = "http://localhost:8080/geoserver/Utad/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=Utad:build&maxFeatures=50&outputFormat=application/json";
当我们选择图层为 GeoJSON 时,该字符串是标准输出。我们需要注意&maxFeatures=50
参数并将其设置为我们需要的值。
然后我有处理Json结果的方法,并使用地图控件作为参数。
async public void DrawRoomsonMap(Map Mapa)
... //Response Reading
//used the: https://github.com/GeoJSON-Net/GeoJSON.Net
var reader = new GeoJsonReader();
//read the json map features to a list with the help of GeoJsnoReader
var features2 = (Geo.IO.GeoJson.FeatureCollection)reader.Read(jsonText);
var list = features2.Features.ToList();
//clear map elements
Mapa.MapElements.Clear();
//my own implementation for getting elements with a specific property, in this case a lever of some value
foreach (var item in list.Where(x=> x.Properties["level"].ToString() == _currentLevel.ToString()))
//converted the geometry property of each item to a Wkt string, and extracted the polygons to and array
var b = item.Geometry.ToWktString();
b = b.Replace("MULTIPOLYGON", "").Replace("(((", "").Replace(")))", "").TrimStart(' ');
var c = b.Split(',');
//Created a MapPolygon object and GeoCoordinates collection
MapPolygon polygon = new MapPolygon();
GeoCoordinateCollection coordenadas = new GeoCoordinateCollection();
//added the coordinates to the polygon
foreach (var coor in c)
var x = coor.TrimStart(' ');
var lat = x.Split(' ')[0].Replace(".",",");
var lon = x.Split(' ')[1].Replace(".", ",");
double latitude = double.Parse(lat);
double longitude = double.Parse(lon);
coordenadas.Add(new GeoCoordinate(longitude, latitude));
//polygon properties and added to the map control.
polygon.Path = coordenadas;
polygon.FillColor = fixColor(item.Properties["bpart"].ToString());
polygon.StrokeColor = Colors.White;
polygon.StrokeThickness = 3;
Mapa.MapElements.Add(polygon);
点和线的过程很容易从这里继续下去。
【讨论】:
没有注意到这里的 c# 标签,但这也很有用。谢谢。以上是关于谁有比较详细的学习geoserver关于地图的图层的开发资料(或者还有关于udig、openlayers的)?的主要内容,如果未能解决你的问题,请参考以下文章