这可能会也可能不会很清楚,如果我不在基础上,或者您需要更多信息,请给我留言.也许有一个解决方案已经在我想要的PHP中.
我正在寻找一个函数,它将增加或减去经度OR纬度值的距离.
原因:我有一个包含所有纬度和经度的数据库,并希望形成一个查询来提取X公里(或英里)内的所有城市.我的查询看起来像这样......
Select * From Cities Where (Longitude > X1 and Longitude < X2) And (Latitude > Y1 and Latitude < Y2)
Where X1 = Longitude - (distance)
Where X2 = Longitude + (distance)
Where Y1 = Latitude - (distance)
Where Y2 = Latitude + (distance)
Run Code Online (Sandbox Code Playgroud)
我在PHP中工作,使用MySql数据库.
也欢迎任何建议!:)
有没有办法获得当前区域的坐标,该坐标显示在设备上?
背景是,我们想要显示"附近"的地方,这些地方存储在我们自己的数据库中.所以,假设用户查看地图的以下剪辑:

我们如何获得屏幕的经度/纬度(或屏幕中间的点以及覆盖所有内容的半径?).请记住,地图中心通常不是当前位置,因为用户可以移动卡的中心!
假设您有一组带有笛卡尔坐标系坐标的点.

您想绘制另一个点,并且您知道它在相同笛卡尔坐标系中的坐标.
但是,您绘制的图形与原始图形失真.想象一下,将原始平面打印在橡胶板上,然后在某些地方拉伸并以不对称的方式将其捏在其他地方(没有重叠或任何复杂的情况).
(来源)
您知道每组点的拉伸和未拉伸坐标,但不知道基础拉伸函数.你知道一个新点的未拉伸坐标.
如何基于附近点的拉伸位置估计在拉伸坐标中绘制新点的位置?它不需要精确,因为除非您有更多信息,否则无法从一组重映射点确定实际拉伸函数.
其他可能的关键字:扭曲的扭曲网格平面坐标unwarp
我有一个游戏,我正在C#控制台应用程序中工作,纯粹作为练习,然后继续更好的方法.与使用内置按钮功能的Windows窗体应用程序相比,我正在努力抓住光标位置(我知道该怎么做)并将其与控制台应用程序内部的一些区域进行比较,如下所示:也许是像素位置,但我也不知道是否有某种内置单位的空间而不是像素(这最后一位是我无法想象的部分).
PS我知道这是一般性的,没有代码已经提供,但我不觉得它是需要的,因为我要求的是如何在控制台应用程序内抓取XY坐标的简要说明,并将它们粘贴在int中变量.
提前谢谢了!:d
我在XML文件上保存二维坐标,其结构类似于:
<?xml version="1.0" encoding="utf-8" ?>
<grid>
<coordinate time="78">
<initial>540:672</initial>
<final>540:672</final>
</coordinate>
</grid>
Run Code Online (Sandbox Code Playgroud)
我可以打开XML文件并通过XmlTextReader读取它,但是我如何专门遍历坐标以检索初始节点和最终节点之间的时间属性和数据,格式类似于:
string initial = "540:672";
string final = "540:672";
int time = 78;
Run Code Online (Sandbox Code Playgroud)
我的新代码:
//Read the XML file.
XDocument xmlDoc = XDocument.Load("C:\\test.xml");
foreach (var coordinate in xmlDoc.Descendants("coordinate"))
{
this.coordinates[this.counter][0] = coordinate.Attribute("time").Value;
this.coordinates[this.counter][1] = coordinate.Element("initial").Value;
this.coordinates[this.counter][2] = coordinate.Element("final").Value;
this.counter++;
};
Run Code Online (Sandbox Code Playgroud)
但现在我收到此错误:
"对象引用未设置为对象的实例."
XML
<?xml version="1.0" encoding="utf-8"?>
<grid>
<coordinate time="62">
<initial>540:672</initial>
<final>540:672</final>
</coordinate>
...
<coordinate time="46">
<initial>176:605</initial>
<final>181:617</final>
</coordinate>
</grid>
Run Code Online (Sandbox Code Playgroud)
跳过一些坐标标签以适应,但它们都有时间属性和初始/最终子标签.
全局
uint counter = 0;
// Coordinates to …Run Code Online (Sandbox Code Playgroud) 我有一个充满按钮的屏幕,但希望onTouch方法使用整个屏幕的坐标.我首先尝试使用带有onTouchListener的RelativeLayout,但从未设法让它与侦听器"连接"(即触摸屏幕时没有发生任何事情),我也尝试将ImageView放在屏幕顶部,然后使这个视图不可见.
最后一种方法对onClicks给出了正确的响应,但我从未设法让它变得不可见.
如果这是最好的解决方案,我非常怀疑,如何使ImageView完全不可见,而不会丢失其onTouchListener(我已尝试使用白色backgroundColor和setAlpha(0)).
我可以以某种方式使onTouchListener使用全局坐标对整个屏幕作出反应,同时屏幕显示(并改变)几个按钮(最好没有不可见的imageview)?
如果你不明白我的要求,请随时抱怨.我会尽力填补空白.
编辑:
我现在设法通过使用常规的onTouch方法来解决问题.我遇到了几个问题,让ACTION_DOWN和ACTION_MOVE激活按钮,但我终于让它工作了.对于阅读此内容的其他人:可能会使用onInterceptTouchEvent(但我从来没有弄清楚如何获取屏幕坐标而不是视图坐标).
据我所知,如果计算机没有使用默认的DPI设置,WPF坐标与"真实"屏幕坐标(像素坐标)不同.在我的程序中,我想(1)找出WPF窗口所在的监视器,以及(2)打开同一监视器左下角的另一个窗口.我听说WPF 没有相应的屏幕,所以我使用WinForms版本,如下所示,它在默认的96 DPI下工作正常:
public void ChooseInitialPosition(Window w) // w is some other window
{
var scr = System.Windows.Forms.Screen.FromRectangle(
new System.Drawing.Rectangle((int)w.Left, (int)w.Top, (int)w.Width, (int)w.Height))
.WorkingArea;
this.Left = scr.Right - Width;
this.Top = scr.Bottom - Height;
}
Run Code Online (Sandbox Code Playgroud)
但在其他DPI中,这两个步骤都不正确,并且可能会使窗口完全脱离屏幕.
到目前为止,看起来我可以在第一部分使用Visual.PointToScreen:
var p1 = w.PointToScreen(new Point(0,0));
var p2 = w.PointToScreen(new Point(w.Width,w.Height));
var scr = System.Windows.Forms.Screen.FromRectangle(
new System.Drawing.Rectangle((int)p1.X, (int)p1.Y, (int)(p2.X - p1.X), (int)(p2.Y - p1.Y))).WorkingArea;
Run Code Online (Sandbox Code Playgroud)
我不确定这是否正确,因为它可能无法正确解释边界.但第二部分更重要.如何将屏幕矩形"scr"转换为WPF空间,以便正确设置Left和Top?
背景: 我有一个ImageView,我已经修改为可滚动(拖动)和缩放(缩放缩放).我使用了"Hello,Android"第3版中提到的确切技术,也可以在这里找到.此技术使用矩阵变换来处理滚动和缩放.
我的问题: 当用户点击图像时,无论图像如何滚动或放大,我都希望该拍子的坐标与图像本身相关.例如,如果我的图像是1000x2000,我滚动并缩放图像.然后我在某个点点击图像,我想知道与1000x2000相关的那个点,而不仅仅是屏幕区域.我怎样才能做到这一点?
我正在编写一个程序来处理与各种规则形状的顶点网络相关的大量数据.我有一个工作的发生器,它根据一系列用户输入参数产生一个与所述形状的顶点相对应的笛卡尔坐标列表.然后将数据传递给过滤器,过滤器清除重复的条目,对数据和各种其他功能进行排序,从中将清理后的数据送到画布模块,画布模块循环并绘制顶点.
我需要实现一个新的过滤器,有效地通过坐标循环,每对对每隔一对比较,即(x1,y1)- > (x2,y2)到(x1,y1)- > (xn,yn),(x2,y2)- > (x3,y3)到(x2,y2)- > (xn,yn)等,为所有条目,例如,如果之间的关系(x1,y1)和(x5,y5)配合[(x5-x1)^2+(y5-y1)^2]=vertex_spacing^2然后将两组坐标与它们各自的列表条目编号配对,并附加到一个新的列表中,其中一个条目具有以下形式:[(x1,y1), (x5,y5), 0, 4]例如.实现这一目标的最有效方法是什么?
我在这里和各种指南上看了很多处理列表的方法.我尝试嵌套'for'和'if'循环,但发现虽然这种方法可以工作,但它会导致运行时间过长,并试图将问题分解为许多较小的for循环.
这样做的最终目的是使用前端界面元素的结果坐标,并根据需要进行保存和导入.列表位置0和4的功能[(x1,y1), (x5,y5), 0, 4]是使接口能够对坐标进行分组,以便以后在画布对象中使用.该方法应该能够处理数千个坐标.
提前感谢您的帮助,我当然愿意改进我提供的措辞/信息和/或添加示例代码,如果不清楚我在问什么 - 我还是很新的!:)
问题
想象一下,我站在机场.给定地理坐标对,如何有效地确定我所在的机场?
输入
(x,y)代表我所站的位置.[(a1,b1), (a2,b2)...],其中每个坐标对代表一个机场.期望的输出
坐标对(a,b)从该组机场坐标表示最近的机场的点对(x,y).
低效的解决方案
这是我解决这个问题的低效尝试.它在机场组的长度上显然是线性的.
shortest_distance = None
shortest_distance_coordinates = None
point = (50.776435, -0.146834)
for airport in airports:
distance = compute_distance(point, airport)
if distance < shortest_distance or shortest_distance is None:
shortest_distance = distance
shortest_distance_coordinates = airport
Run Code Online (Sandbox Code Playgroud)
问题
如何改进这个解决方案?这可能涉及的预过滤基于我们目前站在位置的坐标机场的名单,或者按照一定的顺序排序事前他们一些方法.