这是我的情况,

我有一个ESRI地图Silverlight应用程序,需要显示给我客户的ShapeFiles。

我发现唯一可以让您这样做的第三方库是 ESRI Silverlight API贡献. 。他们给出的示例是使用一个打开的文件对话框选择形状文件并将其加载到FileInfo类中以显示。 (请参阅网站的前页面上的示例)。

但是,我遇到了一个问题,因为它是一个Silverlight应用程序,因此任何尝试实例化FileInfo对象实例的尝试都会导致该应用程序崩溃。

因此,我的问题是,我有没有办法在Silverlight中加载/显示我本地保存到该应用程序的形状文件?

如果您需要我提供更多信息,请告诉我。

提前致谢!

代码:

FileInfo runwayShp = new FileInfo("Layers\\Runway.shp"); //This line breaks, says file access is denied.
FileInfo runwayDbf = new FileInfo("Layers\\Runway.dbf");
ShapeFile shapeFileReader = new ShapeFile();
if (runwayShp != null && runwayDbf != null)
{
    shapeFileReader.Read(runwayShp, runwayDbf);
}
GraphicsLayer graphicsLayer = MyMap.Layers["ShapeLayer"] as GraphicsLayer;
foreach (ShapeFileRecord record in shapeFileReader.Records)
{

    Graphic graphic = record.ToGraphic();
    if (graphic != null)
        graphicsLayer.Graphics.Add(graphic);
    }
}
有帮助吗?

解决方案

我有一个几乎相同的Silveright应用程序,但是我正在做的是将ShapeFile作为Blob上传到后端的SQL DB,然后从那里抓住它。

对于您要做的事情,您应该看 这个编码项目. 。我认为这会帮助您。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top