问题列表 - 第33364页

使用GeoDjango在postGIS上需要性能

这是我第一次将GeoDjango与postGIS一起使用.在安装和一些运行正常的测试之后,当表行增长时,我担心查询性能.

我节省了从Google地理编码(WGS84或SRID 4326)获得的几何点经度和纬度.我的问题是距离操作在我的应用程序中很常见.我经常需要从地标附近找到景点.几何数学是非常复杂的,所以即使我有空间索引,将来可能需要太长时间才能在附近区域有超过1000个点.

那么有没有办法投影这种几何类型来更快地进行距离操作?有没有人知道Django库可以渲染包含其中一些点的谷歌地图?

有关如何加速GeoDjango空间查询的任何建议?

python django postgis geodjango

6
推荐指数
1
解决办法
3085
查看次数

具体来说,属于模型,视图和控制器?

我一直在学习模型 - 视图 - 控制器范例("MVC"),但我很困惑,因为一些教程与其他教程相矛盾.

我目前对这个过程的理解看起来像这样:

路由器/调度员/前端控制器:

  • 虽然在"MVC"名称中没有特别引用,但路由器仍然是一个非常重要的部分.在这里,请求从原始URL转换为特定控制器.例如, www.StackUnderflow.com/question/123的请求路由到应用程序的"问题"控制器.

模型:

  • 这是从某些存储源(如数据库或XML文件)收集原始数据的位置.该模型用作抽象层,将Controller对特定数据请求转换为(例如)SQL查询,并将查询结果转换为标准格式(如数据对象).

  • 例如,在上面描述的/ browse/all场景中:

    • "问题"控制器将要求示范 "请给数据的问题123".
    • 然后,模型将其转换为"SELECT*FROM Questions WHERE Id = 123;" 并把它放到数据库中
    • 数据库将向模型返回"问题" 记录.
    • 模型将记录,并将其转换为问题数据对象
    • 模型然后要求做同样的事情"SELECT*FROM Answers WHERE QuestionID = 123;" 并从结果集中创建一个Answer对象数组,并将其添加到Question对象的answers成员变量中.
    • 模型将问题的对象返回到"问题"控制器.

控制器:

  • 这是该应用程序的真正主力.除了在模型视图中来回传递消息之外,Controller还负责授权等事务和应用程序/"业务"逻辑编辑:每个答案,业务逻辑属于模型.

  • 在正在进行的示例中,Controller将负责:

    • 确保用户已登录.
    • 从URL确定QuestionId.
    • 确定要使用的视图.
    • 发送HTTP代码并根据需要重定向.
    • 模型请求数据,并将所需数据存储在成员变量中.

视图:

  • 总的来说,View是应用程序中最简单的部分.它主要包含HTML模板的基本应用程序.这些模板将具有占位符,以便从Controller的成员变量中将数据插入到模板中:

例如

<html>

  <head>
    <title>
      <?php $question->getTitle() ?>
    </title>
  </head> …
Run Code Online (Sandbox Code Playgroud)

model-view-controller design-patterns application-design

10
推荐指数
1
解决办法
1481
查看次数

在C#中公开数组元素的属性

我想在C#中创建一个属性,用于设置或返回数组的单个成员.目前,我有这个:

private string[] myProperty;
public string MyProperty[int idx]
{
    get
    {
        if (myProperty == null)
            myProperty = new String[2];

        return myProperty[idx];
    }
    set
    {
        myProperty[idx] = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我得到以下编译错误:

错误的数组声明符:要声明托管数组,等级说明符在变量的标识符之前.要声明固定大小的缓冲区字段,请在字段类型之前使用fixed关键字.

c# arrays properties

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

由于排序,GtkTreeView插入/更新性能损失

将很多行插入到GTK树视图中时(使用PyGTK)或修改多行时,我遇到了性能问题.问题是模型似乎在每次更改(插入/修改)后都会使用.这会导致GUI挂起多秒钟.通过注释将模型保留为未排序可model.set_sort_column_id(SOME_ROW_INDEX, gtk.SORT_ASCENDING)消除这些问题.

因此,我想在插入或修改模型时禁用排序,然后重新启用它.不幸的是,无法禁用排序model.set_sort_column_id(-1, gtk.SORT_ASCENDING).使用冻结/解冻功能也不起作用:

treeview.freeze_child_notify()

try:
    for row in model:
        # ... change something in row ...
finally:
    treeview.thaw_child_notify()
Run Code Online (Sandbox Code Playgroud)

那么,我怎样才能禁用排序?或者有更好的批量插入/修改方法吗?


感谢他在答案中提供的信息和链接,我检查了一些替代方案:

1)虚拟分拣

 tv.freeze_child_notify()
 sortSettings = model.get_sort_column_id()
 model.set_default_sort_func(lambda *unused: 0) # <-- can also use None but that is slower!
 # model.set_default_sort_func(lambda *unused: 1) <-- slow
 # model.set_default_sort_func(lambda *unused: -1) <-- crash (access violation in gtk_tree_store_move_after?!)
 model.set_sort_column_id(-1, gtk.SORT_ASCENDING)
 # change rows
 model.set_sort_column_id(*sortSettings)
 tv.thaw_child_notify()
Run Code Online (Sandbox Code Playgroud)

这使得时间从大约11秒减少到2秒.哇!但可能会更好,这只是1000行.

2)更新时删除模型

tv.set_model(None)
# change rows
tv.set_model(model)
Run Code Online (Sandbox Code Playgroud)

没有明显的区别,11秒.

3)Dummy排序和PyGTK常见问题解答中的酷发生器技巧

 def gen(): …
Run Code Online (Sandbox Code Playgroud)

gtk pygtk bulkinsert gtktreeview

6
推荐指数
1
解决办法
2432
查看次数

VBA.如何在字符串中查找第一个数字的位置

我有字符串"ololo123".我需要获得第一位的位置 - 1.如何设置搜索掩码?

vba digit

13
推荐指数
2
解决办法
3万
查看次数

我该如何比较两个列表中的值?

我有两个清单

List 01 => { A, B, C, D, E }
List 02 => { F, F, F, F, E }
Run Code Online (Sandbox Code Playgroud)

我需要检查是否List 02存在一个元素List 01,所以以下内容应该是false.

List 01 => { A, B, C, D, E }
List 02 => { F, F, F, F, F } // no element matches
Run Code Online (Sandbox Code Playgroud)

这应该是true.

List 01 => { A, B, C, D, E }
List 02 => { F, F, F, F, B } // last element …
Run Code Online (Sandbox Code Playgroud)

.net c# linq

13
推荐指数
3
解决办法
2万
查看次数

在Dired中递归打开一些目录

我想在Dired中显示一个目录,其中一些子目录是递归打开的(就好像我为它们传递了"R"选项).是否可以在Emacs中执行此操作?如何在Elisp中轻松实现这一点?

在Windows资源管理器中,我会在文件夹窗口中按"*"以递归方式打开目录(当然只有子目录可见,而不是文件).我想在Emacs中做同样的事情,但那些文件也是可见的.

emacs dired

9
推荐指数
1
解决办法
1301
查看次数

在SSIS中将字符串转换为DateTime

来自源的数据具有字符串数据类型,有时具有无效日期,空列('')我想检查它是否是有效日期并将字符串转换为日期时间.我怎样才能在SSIS中做到这一点?

我的字符串值已格式化为mm/dd/yyyy.

sql sql-server ssis sql-server-2008

2
推荐指数
1
解决办法
9721
查看次数

Double!= null导致NullPointerException

我有以下代码片段让我烦恼,其中currentRate和secondCurrentRate是Double对象,正确定义:

(currentRate != null && secondCurrentRate != null) ? currentRate * secondCurrentRate : null;
Run Code Online (Sandbox Code Playgroud)

这应该检查每个Double的null-ness并相应地赋值null.但是,如果secondCurrentRate为null,则会导致NullPointerException.我已将代码段更改为:

(currentRate == null | secondCurrentRate == null) ? null : currentRate * secondCurrentRate;
Run Code Online (Sandbox Code Playgroud)

这可以按预期工作.我的问题是为什么会发生这种情况?如果我在对象上调用某个方法,我可以理解它,但我的理解是当在null对象上调用方法时抛出NullPointerExceptions.有一个null对象,但没有方法调用.

任何人都可以对此提供任何见解吗?这是在Java 5中运行的.

java nullpointerexception

6
推荐指数
1
解决办法
7990
查看次数

我试图在头文件中创建一个失败的对象数组(启动C++程序员)

以下编辑更新!!! 感谢您的帮助,请务必指出所有错误,我不在乎是否听起来粗鲁或卑鄙,或者其他什么,emo垃圾.直接把它给我,这样我就可以理解出了什么问题.

嗨,大家好!

我是一名新手C++程序员,试图学习并获得一些C++的IRL exp.

我在VC++(vs2008)编译器中尝试以下内容:

typedef unsigned short USHORT;

class Grid  
{  
...
public:  
    Grid()  
    {  
        Tile[36]* tileList_ptr;
    }  
...
};
Run Code Online (Sandbox Code Playgroud)

从本质上讲,我想放入36个瓷砖,将它们撞到一个漂亮整齐的数组中,以便在8x8的游戏区域中大小不变.像棋盘一样.用指针引用它们,如果需要,在相关的cpp文件中摆弄它们.

如果你现在没有笑到这个尝试,那么我可能会出现语法错误,而不是主要的设计缺陷:P

任何帮助将非常感激!

提前致谢

编辑24/08/2010 13:49(开始时间)

我的代码现在如下例子:

Grid Header文件Grid.h:

#include "Tile.h"

class Grid
{

//no more typedef used

public: 
    Tile grid[8][8];

private:    
    unsigned short selectedItemIndexValue;
public:
    Grid()
    {

        Initialize();       
    }
    ~Grid(){}

    void Update();
    void FinalizeMove(unsigned short index);
    void Draw();

private:
    void Initialize(); //Initializes members
};
Run Code Online (Sandbox Code Playgroud)

Grid.cpp文件:

#include "stdafx.h"   
#include "Grid.h"   
//Not tile , that used to give me …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers header object

2
推荐指数
1
解决办法
2026
查看次数