我试图解决使用PostGIS找到n个最近邻居的问题:
初始点:
问题:在由id(geoname.geonameid)表示的表geoname中找到给定Point的n个(例如5个)最近邻居.
可能的方法:
受http://www.bostongis.com/PrinterFriendly.aspx?content_name=postgis_nearest_neighbor的启发,我尝试了以下查询:
"SELECT start.asciiname, ende.asciiname, distance_sphere(start.geom, ende.geom) as distance " +
"FROM geoname As start, geoname As ende WHERE start.geonameid = 2950159 AND start.geonameid <> ende.geonameid " +
"AND ST_DWithin(start.geom, ende.geom, 300) order by distance limit 5"
Run Code Online (Sandbox Code Playgroud)
处理时间:约60秒
还尝试了一种基于EXPAND的方法:
"SELECT start.asciiname, ende.asciiname, distance_sphere(start.geom, ende.geom) as distance " …Run Code Online (Sandbox Code Playgroud) 假设Rails模型具有持久性/非持久性属性,那么引用它们的最佳实践是什么?如果查看公开提供的代码,则会使用不同的模式.
例如,如果您有一个模型与另一个模型的关联.使用self.association_name和@association_name有什么区别?.什么是更好的方式?
与在模型中使用attr_accessor:attr定义的非持久属性相同.您可以使用self.attr和@attr这两种方法来引用它们.什么是更好的方式?
如何使用Floyd-Steinberg抖动将24位PNG转换为3位PNG ?java.awt.image.BufferedImage应该用于获取和设置RGB值.
在维基百科上,给出了一个如何将16位转换为8位图像的示例:
find_closest_palette_color(oldpixel) = (oldpixel + 128) / 256
Run Code Online (Sandbox Code Playgroud)
基于此,有没有关于如何适应上述示例以实现目标的想法?
关于我的问题的第一部分:我最近问自己,为关系数据库中的某些表提供唯一标识符有什么好处和权衡.举个例子,Facebook(FB)图谱API允许使用相同的URL获取不同类型的对象,如"用户","事件","页面"等,例如https:// domain/251906384206返回"事件"类型的对象,而https:// domain/195466193802264返回"Group"类型的对象.
与提供较少"通用"API相比,此方法的好处是什么,将以这种方式使用:https:// domain/event/251906384206或https:// domain/group/195466193802264.在这种情况下,类似的标识符可能用于不同的对象类型,因为每个对象类型都有它的标识符范围.
关于问题的第二部分:实施全球唯一标识的选项有哪些?
我想到的两个选择是:
使用基于继承的方法(每个表,单个表等).假设使用了每类表方法(超级表仅包含唯一标识符作为主键,表示对象类型的子表包含与超级表和附加数据相同的标识符),超级表和子表之间需要连接,这似乎很难扩展因为超级表成为瓶颈?
提供包含3列的表格
每个对象类型的附加表,包含引用唯一标识符作为外键的列.每个特定于对象类型的表都有自己的主键范围.
这两种方法都允许提供类似上面提到的FB API的通用API.第二种方法允许在内部使用对象表特定的主键,并仅显示全局唯一标识符.但是,如果可能在内部使用全局唯一标识符,则第二种方法也需要连接.
是否有关于全球唯一标识符的优缺点的经验以及实施它的最佳实践?
database-design primary-key uniqueidentifier relational-database unique-key
可能重复:
JS:var self = this?
在查看用JavaScript编写的任意代码时(例如在GitHub上),许多开发人员使用var self = this然后使用self而不是this引用当前对象.
这种方法背后的理由是什么?
var obj = {};
obj.a = 1; // fire event, property "a" added
Run Code Online (Sandbox Code Playgroud)
这个问题是从不同的这一个,当已声明属性更改其中的方法来检测,正在讨论之中。
var Obj = {
func1 : function() {
// some code
if (this._hasChainedFunc()) {
// block should be CALLED
}
return this;
},
func2 : function() {
// some code
if (this._hasChainedFunc()) {
// block should be NOT called
}
return this;
},
_hasChainedFunc : function() {
// code which detects if there is a chained function???
}
}
Obj.func1().func2();
Run Code Online (Sandbox Code Playgroud)
函数_hasChainedFunc()是否有可能的实现?这个函数应该在第一次调用时返回true(因为 func2() 之后被调用),在第二次调用时返回false。
在更高级的版本中,_hasChainedFunc()也可能返回之后实际调用的函数。
我正在寻找一种方法来触发应用程序从远程REST服务获取数据.该方法不应要求轮询.
iOS推送通知似乎不是一个选项,因为它可以被用户停用.但是,我可能错了.
完成这项工作是否有最佳做法?
给定排序的对象数组,而顺序基于某些对象属性.(使用Collections.sort()通过List与自定义Comparator进行排序,然后调用toArray()).
不允许SomeObject的重复实例(在这方面"重复"取决于SomeObject中的多个属性值),但SomeObject的多个实例可能具有相同的attribute1值,用于排序.
public SomeObject {
public attribute1;
public attribute2;
}
List<SomeObject> list = ...
Collections.sort(list, new Comparator<SomeObject>() {
@Override
public int compare(SomeObject v1, SomeObject v2) {
if (v1.attribute1 > v2.attribute1) {
return 1;
} else if (v1.attribute1 < v2.attribute1) {
return -1;
} else
return 0;
}
});
SomeObject[] array = list.toArray(new SomeObject[0]);
Run Code Online (Sandbox Code Playgroud)
如何有效地检查基于某个属性的某个对象是否在该数组中,同时还能够"标记"在先前查找中已经找到的对象(例如,只需从数组中删除它们;已经找到的对象不需要稍后访问).
如果没有后面的要求,可以使用自定义Comparator执行Arrays.binarySearch().但显然当想要删除已找到的对象时,它不起作用.
我想使用构造函数参数some_function作为一些其他构造函数参数的默认初始化参数,即some_other_function:
SomeConstructor(SomeFunction some_function,
SomeOtherFunction some_other_function = SomeOtherFunction(some_function)) :
some_function_(some_function),
some_other_function_(some_other_function)
{...}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这给出了一个编译错误:
error: 'some_function' was not declared in this scope
Run Code Online (Sandbox Code Playgroud) 有一个MODEL1有belongs_to的:MODEL2关联.model2有一个名为duration的属性,带有一个整数.model1有一个名为start_day的属性.在此模型中,我想验证start_day是否小于或等于model2的持续时间.
我将以下行添加到model1:
validates_numericality_of :start_day, :less_than_or_equal_to => :model2.duration
Run Code Online (Sandbox Code Playgroud)
Rails触发NoMethodError(未定义的方法`duration':model2:Symbol)
model2有一个属性持续时间......
知道我错过了什么吗?提前致谢...
javascript ×3
java ×2
activerecord ×1
algorithm ×1
arrays ×1
c++ ×1
c++11 ×1
ios ×1
mobile ×1
postgis ×1
postgresql ×1
primary-key ×1
rest ×1
ruby ×1
sql ×1
unique-key ×1
validation ×1