小编Sco*_*ott的帖子

确保在打开的图层3 XYZ源中加载所有图块

我们有一些使用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)

我有两个问题,任何人都可以提供我们可能缺少的任何其他想法吗?谢谢你的帮助.

  1. 为什么函数调用在ol-debug.js中而不是ol.js中,当它们挂起tilegrid对象的原型时?
  2. 如何告诉所有瓷砖在地图中完全加载的任何其他建议?

tiles openlayers-3

9
推荐指数
2
解决办法
4721
查看次数

Web API中的自定义IAuthenticationFilter和AllowAnonymous

我想利用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)

c# authentication custom-attributes asp.net-web-api2

8
推荐指数
1
解决办法
1万
查看次数

使用 System.Web.Optimizations 对特定包进行条件缩小

我在我的项目中使用 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)

asp.net-optimization

5
推荐指数
1
解决办法
932
查看次数

使用 Swashbuckle AspNetCore 生成的 UI 文档不尊重 JsonProperty 值

我创建了一个类,我想用它来发送排序和分页信息以应用于我的大型集合。我有一个 .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)

c# swagger swagger-ui swashbuckle asp.net-core-webapi

4
推荐指数
1
解决办法
1878
查看次数