首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >开发web Gis应用程序指南

开发web Gis应用程序指南
EN

Stack Overflow用户
提问于 2013-07-24 05:24:16
回答 2查看 2.1K关注 0票数 0

尊敬的先生/女士

我想要开发一个Webgis应用程序,并想知道前进的正确途径,这样我就可以顺利地开始工作了。我擅长.net、c#、jquery、HTML、Azax等。实际上,我正在从事一个项目,其中数据已经预先设置在shp文件中,数字化在Arc中,一些数据在sql server中。我很困惑如何开发一个应用程序,我将使用这些数据并在地图上显示。

下面是一些需要讨论的查询。

  1. 如何将数据(以shp文件、Server和excel形式)与前端集成,以在Map中显示数据。
  2. 是否有任何开源,我需要集成在项目中,以显示数据的地图窗口,并有利于集成与.net。在这里,我可以执行几个功能,如放大,缩小,搜索等。
  3. 是否有任何中间件可以访问项目中的shp文件中的数据。

休息一下,我会问我什么时候会对它充满信心,

我请求你帮帮我。提前谢谢你。

EN

回答 2

Stack Overflow用户

发布于 2013-07-24 11:00:05

请看下面列出的一些想法来回答你的问题。

  1. 我认为集成大部分数据源的方法可能是与OpenGeo的配合。这是一个开源软件栈,其中包括Geoserver作为WMS源代码,GXP库和示例作为前端客户端。在这里可以找到http://opengeo.org/
  2. 有许多开放源码项目会有所帮助。我已经提到过OpenGeo了。还可以查看Open层http://openlayers.org/。 GeoExt (不能发布链接,因为我还没有足够的声誉点)传单(不能张贴链接,因为我还没有足够的声誉点)
  3. Geoserver是一个很好的方法,但是您也可以查看Mapserver (不能发布链接,因为我还没有足够的声誉点)

总之,我建议使用OpenGeo,因为它包括前端的JavaScript库,包括Open层和GeoExt,这给了您很大的范围和灵活性。它还包括与geoserver连接多个数据源和集成安全性等良好的后端功能。我在这方面取得了很大的成功。

票数 3
EN

Stack Overflow用户

发布于 2014-06-02 12:30:21

如您所愿,我也希望开发一个web应用程序,我可以用SVG图形完成它。ArcGIS中的多边形数据和点数据被转换为Asc格式文件,如下所示:

代码语言:javascript
运行
复制
Polygon
17671 0
0 77.5946807861 11.9351053238 1.#QNAN 1.#QNAN
1 77.5961227417 11.9347372055 1.#QNAN 1.#QNAN
2 77.5976333618 11.9341630936 1.#QNAN 1.#QNAN
3 77.5994033813 11.933801651 1.#QNAN 1.#QNAN

以上多边形将有17671点。它们都不过是点不:空间中的经度、纬度、分隔格式和一些我不考虑的额外事物。类似地,point对象将以Asc格式文件导出,它看起来如下

代码语言:javascript
运行
复制
Point
0 77.5946807861 11.9351053238 1.#QNAN 1.#QNAN
Point
0 77.5961227417 11.9347372055 1.#QNAN 1.#QNAN

。我只是将这些折线和点转换为整数值,引用固定的纬度和逻辑,并将它们转换为独立的xml文件。将点对象和多边形的属性复制并保存到Excel工作表中。然后,我把它们做成一个简单的^分离的数据库。然后,我制作了GIS应用程序,并在我的博客http://mksugumaran.blogspot.in/2014/04/svg-scalable-vector-graphics-in-web-page.html上发布了它。

以上主要网页查看的源代码--源代码:http://www.nirt.in/xmlsvg.htm

代码语言:javascript
运行
复制
<html>
<head>
<title>Tamilnadu Rainfall data in GIS</title>
<style>
p.pos_fixed1
{
FONT: bold 14px Verdana, Arial, Helvetica, sans-serif;
COLOR: #000066;
position:fixed;
top:30px;
left:20px;
z-index=10;
}
p.pos_fixed2
{
FONT: bold 14px Verdana, Arial, Helvetica, sans-serif;
COLOR: #000066;
position:fixed;
top:45px;
left:20px;
z-index=10;
}
iframe.pos_fixed3
{
top:75px;
left:0px;
position:fixed;
width:250px;
height:300px;
}
</style>
<script language="javascript">
var aHexArray="0123456789ABCDEF";
var LLXC=75.0;
var LUYC=13.5833332538605;
var CS=0.00083333333333333;
var x1 = new Array();
var y1 = new Array();
var n1,ild;
var i,j;
var nx;
function fnRandomDec(){
var iMaxDec=256;
var iRandDec=parseInt((iMaxDec*Math.random())-1);
return iRandDec;
}
function fnReturnHex(iDecValue){
return aHexArray.charAt((iDecValue>>4)&0xf)+aHexArray.charAt(iDecValue&0xf);
}
function fnRandColor(){
return "#" + fnReturnHex(fnRandomDec()) + fnReturnHex(fnRandomDec()) + fnReturnHex(fnRandomDec());
}

function drawing(zx)
{
var txt1;
txt1=""
y=xmlDoc.getElementsByTagName("svg")[0].childNodes;
//document.write(y.length-1);
//document.write("<svg onclick=fnchange(); width='" + Math.round(6700/zx) + "' height='" + Math.round(6700/zx) + "'>");

txt1= txt1 + "<svg style=z-index:2; width='" + Math.round(6700/zx) + "' height='" + Math.round(6700/zx) + "' xmlns:xlink='http://www.w3.org/1999/xlink'>";
for (j=0;j<y.length;j++)
{
x=xmlDoc.getElementsByTagName("Polygon")[j].childNodes;
//document.write(x.length-1);
//document.write("<polygon points='");
name=x[0].childNodes[0].nodeValue;
txt1=txt1 + "<a xlink:title=" + name + " xlink:href='wdb4x.asp?dbname=tnrfs&2=xx'" + " target='xy1'>"
txt1= txt1 + "<polygon points='";
for (i=1;i<x.length;i++)
{
  gxy=x[i].childNodes[0].nodeValue;
  n1=gxy.indexOf(",");
  x1[i]=gxy.substr(0,n1);
  y1[i]=gxy.substr(n1+1);
  txt1= txt1 +Math.round(x1[i]/zx)+','+Math.round(y1[i]/zx)+' '
}

txt1=txt1 +"' style='fill:" + fnRandColor() + ";stroke:black;stroke-width:1'></polygon></a>";
}
colr=fnRandColor();
y=xmlDoc1.getElementsByTagName("svg")[0].childNodes;
for (j=0;j<y.length;j++)
{
x=xmlDoc1.getElementsByTagName("point")[j].childNodes;
name=x[0].childNodes[0].nodeValue;
gxy=x[1].childNodes[0].nodeValue;
n1=gxy.indexOf(",");
xx1=gxy.substr(0,n1);
yy1=gxy.substr(n1+1);
str1=name + ':' + Math.abs(LUYC-yy1*CS) + ',' + Math.abs(LLXC+xx1*CS);
txt1=txt1 + "<a xlink:title=" + str1 + " xlink:href='wdb4x.asp?dbname=tnrfs&2=" + name + "' target='xy1'"+"'>";

txt1=txt1 + "<circle cx='" + Math.round(xx1/zx) +"' cy='" + Math.round(yy1/zx) + "' r='5' stroke='black' stroke-width='1' fill='"+ fnRandColor() +"'></circle></a>";
}
txt1=txt1 + "</svg>";
scr1.innerHTML=txt1;
}
function position3(xx1,yy1)
{
xy1.style.top=Math.round(yy1/zx);
xy1.style.left=Math.round(xx1/zx);
}
function fnchange()
{
nx=nx-1;
if(nx==0)nx=1;
drawing(nx);
}
function fnchange1()
{
nx=nx+1;
if(nx>10)nx=10;
drawing(nx);
}

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
  {
  xhttp=new XMLHttpRequest();
  }
else
  {
  xhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xhttp.open("GET",dname,false);
xhttp.send();
return xhttp.responseXML;
}
function loadXMLString(txt)
{
if (window.DOMParser)
  {
  parser=new DOMParser();
  xmlDoc=parser.parseFromString(txt,"text/xml");
  }
else // Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async=false;
  xmlDoc.loadXML(txt);
  }
return xmlDoc;
}
xmlDoc=loadXMLDoc("tnbasins.xml");
xmlDoc1=loadXMLDoc("tnrfl.xml");

</script>
</head>
<body>

<p class="pos_fixed1" onclick="fnchange1();">zoom_out</p>
<p class="pos_fixed2" onclick="fnchange();">zoom_in</p>
<iframe class="pos_fixed3" style=width:250;height:300;z-index:1; z-index=-1; name=xy1 border=none frameborder=none></iframe>
<table><tr><td id=scr1></td></tr></table>
<script language="javascript">
if (xmlDoc && xmlDoc1)
{
nx=10;
drawing(nx);
}
</SCRIPT>

</body>
</html>

多边形xml文件位于链接http://www.nirt.in/tnbasins.xml中。

点对象xml文件位于链接http://www.nirt.in/tnrfl.xml中。

web gis应用程序的链接是http://www.nirt.in/xmlsvg.htm

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17825803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档