在包含位置坐标的XML文件中搜索和排序

在包含位置坐标的XML文件中搜索和排序,xml,cordova,xml-parsing,Xml,Cordova,Xml Parsing,我有一个xml文件,用来存储位置名及其地址和坐标。我需要这些数据来帮助定位地图上的位置。现在,xml文件非常庞大,因为它包含大量数据,所以我想减少搜索时间,因为我想在移动平台(android和iphone)上部署该应用程序。我要做的是,获取用户当前位置,然后逐个解析xml,获取坐标,计算位置和用户之间的距离,如果距离小于半径,则在屏幕上打印因此,我可以在这里实现任何排序或搜索算法,这些算法将基于用户当前位置坐标???XML对于数据来说似乎是一个糟糕的选择。如果您对数据存储方式进行控制,请考虑将其

我有一个xml文件,用来存储位置名及其地址和坐标。我需要这些数据来帮助定位地图上的位置。现在,xml文件非常庞大,因为它包含大量数据,所以我想减少搜索时间,因为我想在移动平台(android和iphone)上部署该应用程序。我要做的是,获取用户当前位置,然后逐个解析xml,获取坐标,计算位置和用户之间的距离,如果距离小于半径,则在屏幕上打印因此,我可以在这里实现任何排序或搜索算法,这些算法将基于用户当前位置坐标???

XML对于数据来说似乎是一个糟糕的选择。如果您对数据存储方式进行控制,请考虑将其保存到数据库(据我所知,PosiGeAP支持),并首先以矩形半径搜索。如果您真的必须使用XML,对其进行排序可能不会有多大帮助(坐标来自二维集合)。也许你可以把它分成两个文件(每个坐标对应一个文件)并对它们进行排序,但这确实是一个非常难看的解决方案。排序可以通过XSLT实现,例如,请参见。

XML似乎不是数据的好选择。如果您对数据存储方式进行控制,请考虑将其保存到数据库(据我所知,PosiGeAP支持),并首先以矩形半径搜索。如果您真的必须使用XML,对其进行排序可能不会有多大帮助(坐标来自二维集合)。也许你可以把它分成两个文件(每个坐标对应一个文件)并对它们进行排序,但这确实是一个非常难看的解决方案。排序可以通过XSLT实现,例如,请参见。

您基本上是在尝试重新创建成百上千的数据库工程师已经解决的问题。数十万极客已经学会了排序方法以及什么是最优的,什么不是。然后,这些算法中最聪明的一个被大公司雇用,将这些算法放入数据库中

您的解决方案听起来不太可靠。XML不适用于您正在做的事情。话虽如此,如果您坚持使用XML

我至少有两个xml文件——一个包含按人工键排序的数据,另一个包含要搜索的参数。然后,您必须对后一个文件进行查找,然后在前一个文件中进行查找。巧合的是,数据库基本上就是这样做的


我真诚地希望为您提供一个能够进行查找/计算的web服务。您可以使用现有的或创建自己的。听起来你的应用程序仍然需要连接才能正常工作。

你基本上是在试图重新创建成百上千的数据库工程师已经解决的问题。数十万极客已经学会了排序方法以及什么是最优的,什么不是。然后,这些算法中最聪明的一个被大公司雇用,将这些算法放入数据库中

您的解决方案听起来不太可靠。XML不适用于您正在做的事情。话虽如此,如果您坚持使用XML

我至少有两个xml文件——一个包含按人工键排序的数据,另一个包含要搜索的参数。然后,您必须对后一个文件进行查找,然后在前一个文件中进行查找。巧合的是,数据库基本上就是这样做的


我真诚地希望为您提供一个能够进行查找/计算的web服务。您可以使用现有的或创建自己的。听起来你需要连接才能让你的应用程序正常工作。

在XML之上这样做是非常糟糕的选择。将捆绑到您的应用程序。它是空间特征的SQLite扩展,因此可以对地理位置数据进行各种查询。。。包括搜索最近的地理点,或在某个半径内搜索所有地理点。通过SQL查询。
解析XML数据并将它们放入SpatiaLiteDB文件。。。它肯定会比原始的XML小。

在XML之上这样做是非常糟糕的选择。将捆绑到您的应用程序。它是空间特征的SQLite扩展,因此可以对地理位置数据进行各种查询。。。包括搜索最近的地理点,或在某个半径内搜索所有地理点。通过SQL查询。
解析XML数据并将它们放入SpatiaLiteDB文件。。。它肯定比原始XML小。

您对使用该XML文件有限制,好吗。但是,您是否也对根本不使用数据库有限制?反对同时保留XML和数据库

如果没有,可以将坐标和要立即在XML文件中查找的键存储到数据库中。这将使您能够快速搜索,并从XML文件中读取较慢(但最少)的内容

如果您也不能使用数据库,您可以尝试将XML文件的坐标和(再次)键存储在另一个文件中,该文件要小得多,您可以在其中组织某种树排序或分区


最后,如果只能使用一个XML文件,则必须快速解析该文件并提取相关坐标信息。这可以通过正则表达式来实现,方法是定期读取足够的数据,以便在内存搜索缓冲区中始终有完整的记录(需要估计最大记录大小才能做到这一点)。但是它看起来非常昂贵。我强烈要求采用其他方法来实现这一点。

您在使用该XML文件时有一个限制,好吗。但是,您是否也对根本不使用数据库有限制?反对同时保留XML和数据库

如果没有,可以将坐标和要立即在XML文件中查找的键存储到数据库中。这将使您能够快速搜索,并从XML文件中读取较慢(但最少)的内容

如果您也不能使用数据库,您可以尝试将XML文件的坐标和(再次)键存储在另一个文件中,该文件要小得多,您可以将其存储在另一个文件中