我正在重新描述这个场景,试图让它更清晰易懂。
我正在设计一款应用,让用户打开谷歌地图,搜索地点/地址。一旦该位置出现在谷歌地图上 - 用户就可以创建多边形(使用鼠标点击创建多边形,一种边界形成闭环/区域)。一旦用户定义/创建了多边形,我需要获得定义多边形的几何/ cooridnates(lat / long),并需要将其保存在我的本地数据库中,例如:oracle。
我一直在玩谷歌地图javascript api,它有一个绘图库,让用户在地图上创建一个圆/矩形/多边形。我有以下查询:
首先,一切似乎都在UI层内运行,即javascript代码,没有涉及Java代码。我在哪里提出我的业务逻辑。那会是javascript吗?
用户创建多边形后,应用会提示用户为刚创建的多边形提供名称(例如:我在Myrtle海滩的海滨别墅)。我需要将它保存在本地数据存储中。为此,我从javascript(通过ajax)调用REST Web服务传递多边形的坐标。我正在使用Google Chrome中的CORS(跨源资源共享)策略。 Chrome未调用本地服务器上部署的REST Web服务。
此外,我将保存创建特定多边形的登录用户名,日期时间,多边形名称等。
同样,这是为下一阶段计划的事情。一旦用户登录应用程序,它将获取该用户创建的所有多边形并将显示在地图上。这是一种逆向工程,用于绘制从本地数据库中获取纬度/经度的多边形。
如果还需要指定任何内容,请发表评论。我会尽快做出澄清。
谢谢!
答案 0 :(得分:1)
您可以将业务逻辑放在任何地方。根据您对要完成的内容的描述 - 搜索功能可以使用Google Maps和Places API完全在Javascript中完成。一旦他们选择了多边形,该多边形的顶点以及您收集的任何其他元数据都可以格式化为JSON并提交给您的REST服务进行进一步处理。
您的REST服务需要设置CORS标头。你如何做到这取决于你正在使用哪个服务器端堆栈(Spring?Flask?Express?)。无论您使用哪种技术,都应该有足够的文档(以及此处的stackoverflow)来启用CORS标头。
同样,这不是谷歌地图问题,更多是关于您选择的应用服务器中的用户身份验证/会话管理的问题。理想情况下,您的休息服务应进行令牌身份验证,以防止数据被恶意插入。
您应该有一个REST端点,为给定用户提供已保存的多边形路径。有了这个,很容易重建多边形并在地图上渲染它。
我认为您已经查看了Google Maps API的相关前端文档
https://developers.google.com/maps/documentation/javascript/examples/polygon-simple
其余的是服务器端管道。你描述的项目不是火箭科学,但确实有许多活动部分。尽早获得架构非常重要。祝好运!