请随意纠正这篇文章中任何遗漏的单词,因为我在这些方面不熟悉,我尽我所知使用单词,但它们可能是错误的。
所以这就是我想要做的事情:
孩子绑架和贩卖是一个相当严重的问题回到中国,我的一个朋友今天下午跟我说话,想在iOS和Android上单独的应用程序做这个任务,用户可以拍照,上传一起他们的GPS位置到数据库,应用程序还可以显示数据库中的信息,作为地图上的注释。我的问题是:
在应用中,用户向数据库提交新帖子,其中包括照片,GPS位置,任何备注。
然后我们用户切换到地图视图,我们必须获取当前缩放级别/ bb框的信息,所以
我应该如何在db中存储这些信息?
和
是否有任何开源工具可以解析给定bb框/缩放级别的信息并返回一个xml文件,以便我可以使用它来显示信息?
- 我找到了GeoServer,有没有更适合我的用途?我真的只需要它来生成基于bb盒/缩放级别的xml文件。
我认为在Google App Engine / Amazon Ec2上托管该工具(它被称为地理编码器吗?)是最理想的,对db很不太了解,可能是Amazon Simple DB?
谢谢!
答案 0 :(得分:1)
有许多开源工具可以提供帮助 - 例如,你可以查看GeoDjango,它可以使用PostGIS地理数据库 - 但老实说,对于这个应用程序,你不要需要任何地理特定的东西:
您将接收纬度/经度的GPS坐标,因此您的数据库中可能会有一个包含两列latitude
和longitude
的表格。
要进行边界框查找,您只需要经度和纬度的最小值/最大值(任何基于Web的地图都可以为您提供)。完成后,几乎所有SQL数据库都支持这样的查询:
SELECT * FROM records
WHERE latitude >= $min_lat
AND latitude <= $max_lat
AND longitude >= $min_lon
AND longitude <= $max_lon;
这将为您提供一个包含在您的边界框内的记录列表。
现在您可以使用您喜欢的任何中间件 - 像Django或Drupal这样的CMS系统,自定义PHP脚本等 - 将结果集转换为XML或JSON格式。
地理数据库做了许多关系数据库不容易做的事情,比如找到半径内的点或一组多边形内的点。但是您的应用程序不需要它 - 任何具有基本数据库查询功能的系统都应该为您提供所需的功能。