简体   繁体   English

如何用Java开发LBS / GIS应用程序的概述

[英]Overview of how to develop LBS/GIS app in Java

I need to develop a location based extension to an existing app that will allow users to see all other users that are around them (within a fixed aerial distance). 我需要为现有应用程序开发基于位置的扩展,以允许用户查看周围的所有其他用户(在固定的空中距离内)。 The existing app was developed using Axis (Web services) + Spring + Hibernate + MySQL. 现有的应用程序是使用Axis(Web服务)+ Spring + Hibernate + MySQL开发的。

Requirements are: 要求是:

  1. Java framework (preferably open-source unless commercial solution offers big advantages). Java框架(最好是开源的,除非商业解决方案提供了很大的优势)。 Integration with Hibernate, Spring, etc. preferred. 与Hibernate,Spring等集成是首选。
  2. User needs to update his/her location on set periods of time using standard API (ie SOAP or REST) 用户需要使用标准API(即SOAP或REST)在设定的时间段内更新他/她的位置
  3. User need to be able to update location by either sending latitude and longitude or a US address. 用户需要能够通过发送纬度和经度或美国地址来更新位置。
  4. Possibly use cell-tower and/or wifi data for some devices if GPS not available. 如果GPS不可用,可能会对某些设备使用手机信号塔和/或wifi数据。
  5. There is no need to have walking or driving directions. 无需步行或行车路线。 There is no need to have driving or walking distance, just approximate aerial distance. 没有必要有驾驶或步行距离,只需要近似的空中距离。
  6. Users of the app keep on moving (sales-people) and update their location in set periods of time (every ~15 min.) 该应用程序的用户继续移动(销售人员)并在设定的时间段内更新他们的位置(每〜15分钟)。
  7. Project might change in the future to handle other Points of interest (ie warehouse locations, clients' locations), but those will likely be in fixed physical positions (vs. users that keep on moving). 项目未来可能会改变以处理其他兴趣点(即仓库位置,客户位置),但这些可能会处于固定的物理位置(与继续移动的用户相比)。
  8. Performance of retrieving users around a specific user is essential; 检索特定用户周围用户的性能至关重要; therefore will prefer an in-memory map (and not a database query). 因此,更喜欢内存中的映射(而不是数据库查询)。
  9. At this point there is no need to render a map. 此时无需渲染地图。 That might change though. 这可能会改变。

I have heard or saw the following terms and frameworks and I am not sure what do they mean and which one of them to use: 我听说过或看过以下术语和框架,我不确定它们是什么意思,以及使用哪一个:

  • ESRI ESRI
  • Shapefiles 形状文件
  • GeoServer GeoServer的
  • GeoTools GeoTools
  • PostGIS PostGIS的

I will really appreciate a brief overview of the steps I need to take to develop such a project, whether and how to use the above tools, which data (ie GPS, Wifi, Cell-towers) is freely available and which do we need to pay. 我将非常感谢我为开发这样一个项目需要采取的步骤的简要概述,是否以及如何使用上述工具,哪些数据(即GPS,Wifi,Cell-tower)可以免费获得,我们需要哪些工资。

References to some tutorials or books will be greatly appreciated. 我们将非常感谢您对某些教程或书籍的参考。

Thank you! 谢谢!

I really dislike your question. 我真的不喜欢你的问题。 As a Geospatial professional with a university degree and 12 years experience I would like to say: hire someone that can do the job for you. 作为拥有大学学位和12年经验的地理空间专业人士,我想说:聘请能为您完成工作的人。

But I will try to give some sort of decent answer: 但我会尝试给出一些不错的答案:

  • The entire application could be built with open-source. 整个应用程序可以使用开源构建。
  • Maps require geodata to provide a background. 地图需要地理数据才能提供背景信息。 this can be either; 这可以是; real expensive (teleatlas or navteq data) or priceless (openstreetmap) 真正昂贵的(teleatlas或navteq数据)或无价的(openstreetmap)
  • ESRI is a company ESRI是一家公司
  • Shapefiles are a file format to store geodata Shapefile是一种存储地理数据的文件格式
  • Geoserver is an open source solution to serve maps Geoserver是一种提供地图服务的开源解决方案
  • GeoTools are java libraries to do conversions, create features and do transformations that also form the base for geoserver GeoTools是用于进行转换,创建要素和进行转换的java库,这些转换也构成了地理服务器的基础
  • PostGIS is a database to store geodata in PostGIS是一个存储地理数据的数据库

In general; 一般来说;

Everything is possible. 一切皆有可能。 I would suggest to first write down what you want to build, who you want it to maintain, what server architecture you want it to work on and then start to eliminate the options. 我建议首先写下你想要构建的内容,你想要它维护的是什么,你希望它使用什么样的服务器架构,然后开始消除这些选项。

First, you need to select a backend to store your data. 首先,您需要选择后端来存储数据。 For this, a couple of database systems have a "spatial" extension or module, these extensions support projections, transformation and spatial querying (nearest, within, touches, ...): 为此,一些数据库系统具有“空间”扩展或模块,这些扩展支持投影,变换和空间查询(最近,内部,触摸......):

Commercial: 商业:

  1. Oracle spatial Oracle空间
  2. MS SQLserver spatial MS SQLserver空间

Open Source: 开源:

  1. postgis (for postgres) postgis(适用于postgres)
  2. MySQL spatial MySQL空间
  3. MonetDB (work in progress) MonetDB(正在进行中)
  4. flat files like ESRI shapefiles 平面文件,如ESRI shapefile

Then, you need a server application to host the geospatial datasets as (vector or raster) maps: 然后,您需要一个服务器应用程序来托管地理空间数据集作为(矢量或栅格)地图:

Commercial: 商业:

  1. ESRI arcIMS ESRI arcIMS
  2. ESRI arcGIS server ESRI arcGIS服务器
  3. PB MapInfo MapXtreme PB MapInfo MapXtreme
  4. ... ...

Open Source: 开源:

  1. UMN Mapserver UMN Mapserver
  2. Geoserver 利用Geoserver
  3. Mapnik Mapnik的

Then finally, if you want to create a web application with interactive maps, you need some Javascript web map framework: 最后,如果要创建具有交互式地图的Web应用程序,则需要一些Javascript Web地图框架:

Commercial: 商业:

  1. Google Maps 谷歌地图
  2. PB MapInfo MapXtreme PB MapInfo MapXtreme
  3. Map24 Map24
  4. ... ...

Open Source: 开源:

  1. OpenLayers 的OpenLayers
  2. Chameleon 变色龙
  3. MapFish MapFish
  4. GeoExt GeoExt

You can also use a Flash web map framework like: 您还可以使用Flash Web地图框架,例如:

  1. Flamingo-MC 火烈鸟-MC

All this, depending on the chosen architecture requires at least a webserver with either cgi or servlet runners. 所有这些,取决于所选择的架构,至少需要一个带有cgi或servlet运行器的web服务器。

Basically, it all comes down to your organization: What is the architecture your organisation is currently working with? 基本上,这一切都归结于您的组织:您的组织目前正在使用的架构是什么? How is the expertise? 专业知识如何? What architecture matches your companies area of expertise? 什么架构符合您公司的专业领域?

When going commercial, your licenses range from $500,- to $500.000,- depending on the vendor. 商业化时,您的许可证的价格从500美元到500,000美元不等,具体取决于供应商。 When using open source, your licenses of course wil be nill. 使用开源时,您的许可证当然是无效的。 But you also need to calculate the learning curve and the configuration time needed. 但您还需要计算学习曲线和所需的配置时间。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM