我们有一些使用ol.source.XYZ源的层.对于我们使用的加载策略ol.loadingstrategy.tile(new ol.tilegrid.createXYZ({})).在继续执行其他操作之前,我们需要确保所有切片都已在地图视图中完全加载.
我们已经遇到过有关此问题的多篇文章,但尚未找到100%的解决方案,这将为我们提供所需的解决方案.即使情况并非如此,逻辑也会返回true.我们已经尝试使用示例页面上显示的tileloadstart,tileloadend,tileloaderror事件,但这似乎并不总是返回预期的结果.
地理信息系统堆栈交易所的文章在这里似乎是有前途的,因为我们可以使用与tileloadstart/tileloadend事件结合下面列出的代码,但是有许多的函数调用仅可在OL-debug.js而不是ol.js源代码.正因为如此粘贴下面的代码不工作ol.js.此代码只是引用的GIS Stack Exchange文章的副本.
function calculateNumberOfTiles(tileSource) {
var tg = (tileSource.getTileGrid()) ? tileSource.getTileGrid(): ol.tilegrid.getForProjection(map.getView().getProjection()),
z = tg.getZForResolution(map.getView().getResolution()),
tileRange = tg.getTileRangeForExtentAndZ(map.getView().calculateExtent(map.getSize()), z),
xTiles = tileRange['maxX'] - tileRange['minX'] + 1,
yTiles = tileRange['maxY'] - tileRange['minY'] + 1;
return xTiles * yTiles;
}
Run Code Online (Sandbox Code Playgroud)
我有两个问题,任何人都可以提供我们可能缺少的任何其他想法吗?谢谢你的帮助.
我想利用AllowAnonymous和习惯AuthenticationFilter.有人能指出我正确的方向使用AllowAnonymous或另一种选择吗?谢谢
我创建了自己的自定义过滤器,它继承自System.Attribute并实现System.Web.Http.Filters.IAuthenticationFilter
public class MyCustomAuthenticationAttribute : Attribute, IAuthenticationFilter
Run Code Online (Sandbox Code Playgroud)
我已经能够成功添加该AuthenticateAsync方法的逻辑
public async Task AuthenticateAsync(
HttpAuthenticationContext context,
CancellationToken cancellationToken) {}
Run Code Online (Sandbox Code Playgroud)
我的问题是我需要忽略一些Web API控制器操作或控制器.我以为我可以System.Web.Http.AllowAnonymousAttribute用来做这个.例如,这是一个显示意图的非常简单的示例.
[MyCustomAuthentication]
public class HomeController : ApiController
{
// no authentication needed allow anonymous
[HttpGet]
[Route("hianonymous")]
[AllowAnonymous]
public IHttpActionResult Hello(string name) {
return Ok(new { message = "hello " + name });
}
// needs to be authenticated
[HttpGet]
[Route("hiauthenticated")]
public IHttpActionResult Hello() {
var name = User.Identity.Name; …Run Code Online (Sandbox Code Playgroud) 我在我的项目中使用 System.Web.Optimizations BundleConfig。我在网站上使用的特定 jQuery 插件遇到了问题。如果我将文件添加到我的 ScriptBundle 中,它在调试模式下工作正常,但在发布模式下抛出 JavaScript 错误(即设置 Web.config debug=false)。我认为有些东西没有被正确缩小。
所有其他脚本都没有给我带来任何问题,因此我不想影响所有捆绑包的行为,但有没有一种方法可以针对特定捆绑包进行自定义,以告诉它在调试中使用特定版本并在发布中使用最低版本。
我知道它的默认行为是查找 .min 文件,但我似乎无法让它工作。谁能告诉我这里可能缺少什么?感谢您的帮助。
这是我自己拆分的例子。这在调试中有效,但当我在 web.config 中设置 debug=false 时无效
ScriptBundle layoutBundle = new ScriptBundle("~/jsbundles/jquery/layout");
layoutBundle.Include("~/Scripts/plugins/jquery.layout-latest.js");
bundles.Add(layoutBundle);
Run Code Online (Sandbox Code Playgroud) 我创建了一个类,我想用它来发送排序和分页信息以应用于我的大型集合。我有一个 .NET Core Web API 服务,它将接收请求并将我的对象作为输入FromQuery。我想坚持一定的命名约定(即微软的REST API准则)为参数名这样的$orderby,$top,$skip等,都注解使用类的属性JsonProperty。
但是,在生成的 swagger 文档中,这些只是显示为属性名称本身,这在我的属性被命名Take但请求参数应该是$top. 我希望生成的文档匹配,以免给 API 的使用者造成任何混淆。我读到的一切似乎都表明这应该有效,我很难过为什么它不适合我。
这是我使用的带有注释的类 Newtonsoft.Json.JsonPropertyAttribute
[JsonObject]
public class QueryParams {
[JsonProperty( "$orderBy" )]
public string OrderBy { get; set; }
[JsonProperty( "$skip" )]
public int? Skip { get; set; }
[JsonProperty( "$top" )]
public int? Take { get; set; }
[JsonProperty( "$maxpagesize" )]
public int? MaxPageSize { get; set; }
[JsonProperty( "$count" )]
public …Run Code Online (Sandbox Code Playgroud)