我正在使用传单中的geojson数据.他们在http://leafletjs.com/examples/geojson.html的指南中写道,有两种方法可以将geojson数据添加到地图中:
"GeoJSON对象通过GeoJSON层添加到地图中.要创建它并将其添加到地图中,我们可以使用以下代码:"
L.geoJson(geojsonFeature).addTo(map);
Run Code Online (Sandbox Code Playgroud)
"或者,我们可以创建一个空的GeoJSON图层并将其分配给变量,以便我们以后可以为它添加更多功能."
var myLayer = L.geoJson().addTo(map);
myLayer.addData(geojsonFeature);
Run Code Online (Sandbox Code Playgroud)
我目前正在使用最后一个方法(我正在创建一个空图层并向其中添加数据).我现在正在做的是我正在尝试添加onEachFeature函数.虽然我在使用myLayer.addData方法时没有让它工作.
在我的代码我正在使用this.geoJson.addData(geoJson, { onEachFeature: onEachFeature });
.其中geoJson是实际的geoJson字符串,"this.geoJson"是已创建并添加到地图的空geoJson图层.虽然这不起作用.
但是如果我在输入geoJson数据的同时创建一个新的geoJson图层,那么它的工作原理如下:
L.geoJson(geoJson, {
onEachFeature: onEachFeature
}).addTo(this.map);
Run Code Online (Sandbox Code Playgroud)
所以我主要想知道在使用layer.addData函数添加数据时如何使onEachFeature函数工作?
我正在使用Emgu库来集成C#中的开放式CV网络摄像头功能.
我使用此代码选择捕获设备并设置其大小:
camera = new Capture(0);
camera.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_WIDTH, videoSettings.width);
camera.SetCaptureProperty(CAP_PROP.CV_CAP_PROP_FRAME_HEIGHT, videoSettings.height);
Run Code Online (Sandbox Code Playgroud)
然后我在像这样的imageBox中显示它: imageBox1.Image = camera.QueryFrame();
然后要捕获当前帧的快照我使用此代码:
Image<Bgr, byte> snapshot = camera.QueryFrame();
snapshot.Save("snapshot.jpg");
Run Code Online (Sandbox Code Playgroud)
虽然我希望能够以比预览窗口更高的分辨率保存快照.
但问题是,据我所知,我无法使用相同的webcamera创建一个新的"Capture"对象.所以我想知道是否有可能设置camera.setCaptureProperty
高度和宽度让我们说1028x720然后以某种方式裁剪它以在imageBox中显示它,分辨率为514x360?
或者还有其他方法吗?
我正在努力与使用MVC 6和EF7的ASP.NET vNext构建Web系统相处.我正在看这个教程:http://stephenwalther.com/archive/2015/01/17/asp-net-5-and-angularjs-part-4-using-entity-framework-7
在页面上,您将看到如何将dbContext添加到项目中,并在启动文件中注册,如下所示:
// Register Entity Framework
services.AddEntityFramework(Configuration)
.AddSqlServer()
.AddDbContext<MoviesAppContext>();
Run Code Online (Sandbox Code Playgroud)
上下文类看起来像这样:
public class MoviesAppContext:DbContext
{
public DbSet<Movie> Movies { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但现在我需要添加一个额外的DbContext.虽然我不知道如何注册这个额外的上下文,以便它将被EF使用并可能在我的项目中使用.
假设我已经创建了一个像这样的新上下文:
public class MyNewSuper:DbContext
{
public DbSet<Model1> Model1 { get; set; }
public DbSet<Model2> Model2 { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我如何继续注册它以便在我的项目中使用呢?
c# asp.net asp.net-mvc entity-framework entity-framework-core
我现在正在为一个项目使用 ASP.NET 5 (vNext),但是我在将数据写入本地文件时遇到了一些问题。我只是想将一些 JSON 数据放入公共 wwwroot 文件夹中的现有文件中。JSON 序列化等没问题,我只需要一些有关从 ASP.NET 5 MVC6 控制器写入本地文件的可用方法的建议。
我现在正在使用 beta 7,但我没有使用 streamwriter 或 File。所有示例/建议将不胜感激。
我有两个表格.一个用于执行所有主要代码的地方.使用此方法单击菜单项时,将显示另一种形式:
Form2 videoSettings = new Form2();
private void videoToolStripMenuItem_Click(object sender, EventArgs e)
{
videoSettings.Show();
}
Run Code Online (Sandbox Code Playgroud)
然后打开的表单包含用户可以为应用程序设置一些设置的字段.
然后单击"保存"按钮时我想要这个变量:
public int deviceIndex;
从原始表单中获取.
所以我想知道我是否可以在Form1中添加任何事件或什么东西来检测在videoSettings(Form2)中点击保存按钮的时间?
我正在看看ASP.NET 5和MVC 6,我正在使用默认的启动器模板.我现在已经建立了一个区域,我希望有一个"HomeController".因此,默认的HomeController不会放在一个区域中,然后在Areas/MyArea中会有HomeController.
Startup.cs中的以下配置显然不起作用:
routes.MapRoute(
name: "areaRoute",
template: "{area:exists}/{controller}/{action}",
defaults: new { controller = "Home", action = "Index" });
routes.MapRoute(
name: "default",
template: "{controller}/{action}/{id?}",
defaults: new { controller = "Home", action = "Index" });
Run Code Online (Sandbox Code Playgroud)
它给了我这个错误信息:
AmbiguousActionException:匹配多个动作.以下操作匹配路由数据并满足所有约束:
MyProject.Controllers.HomeController.Index MyProject.Areas.MyArea.Controllers.HomeController.Index
在早期的MVC版本中,您应该能够通过在路由配置中定义名称空间来解决它,如本博客文章中所述:http://blog.falafel.com/duplicate-controller-names-aspnet-mvc-areas/
虽然这不适合我.如果我添加namespaces: new string[] { "MyProject.Controllers" }
到默认路由,我收到以下错误:
错误CS1501方法'MapRoute'没有重载需要4个参数MyProject.ASP.NET 5.0 Startup.cs 81
如果我能就此得到一些建议,我将非常感激,能够在我的系统中使用多个HomeController会很高兴.
c# ×4
asp.net ×3
asp.net-mvc ×3
json ×2
.net ×1
asp.net-core ×1
emgucv ×1
geojson ×1
javascript ×1
leaflet ×1
winforms ×1