1

我希望您能为我实施我的第一个手持设备应用程序提供一些建议/指南。

我想跟踪运动,将其存储在数据库中,然后允许用户在 Google 地图中查看轨迹。

由于该应用程序适用于 Android 和 Ios,因此我认为我会使其基于浏览器。

由于它显示的是(不断增长的)轨迹,因此它需要 Google 地图上的折线,并且可能需要一些注释。

我的问题是在哪里生成谷歌地图。由于我的服务器上有数据,我可以将折线的所有点发送回手持设备并让它生成谷歌地图。或者,我可以在具有更强处理能力的服务器上生成 Google 地图,然后将其发送回手持设备。

你有什么建议吗?

我注意到有一个适用于 android 的 Gogole Maps API,这意味着我将为 Ios 版本提供不同的代码(?)。

4

2 回答 2

2

这里有几个选项......基本上你都提到了。

1.) 渲染谷歌地图,然后使用 javascript 或 google web api 在其上绘制折线。这似乎是您想要做的,但我以前从未这样做过。要渲染谷歌地图,请在 google.com 上查找 api——如果我没记错的话,它只是一些参数,你将 url 传递给谷歌地图。您可以选择两种嵌入方式之一。

2.) 在设备上使用地图SDK,让页面查询折线并绘制它。我以前做过这个,它可能看起来比网页更好,但是你必须为每个 Android 和 iOS 都有独立的实现。

在这两者中,选项 2 看起来会更好,因为它将被呈现为原生,但它需要更多的工作。在第一种情况下,服务器实际上不必渲染谷歌地图,谷歌会为你做这件事,但是很难获得注释和很好地绘制多段线,因为你在该地图上绘制的能力可能不得不去通过一些谷歌API。如果是我,我会选择选项 2,它最终看起来会更好,并且您将对 UI 有更多的控制权。

于 2013-06-25T22:22:11.100 回答
1

恕我直言,您应该使用 Native,然后:

使用适用于 Android 版本 2 的 Google Maps SDK ( https://developers.google.com/maps/documentation/android/ ) 及其 iOS 模拟 ( https://developers.google.com/maps/documentation/ios/ ),即这样,您将拥有具有相同对象的相同地图和相似的 API(如果不相等)(相同的属性、方法等)。

例如,请注意折线对象中的大相似之处:

安卓:https ://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/Polyline

iOS:https ://developers.google.com/maps/documentation/ios/reference/interface_g_m_s_polyline

选择一种将地理数据持久保存在设备上的方法(JSON 字符串、NSArray 和 NSDictionary 类型可以存储在 iOS 上的带有 writeToFile 或 CoreData 的文件中或 Android 上的文件或 SQLite 中。您甚至可以持久化序列化的对象和/或对象集合.

要将 App 数据保存在服务器上,您可以使用 Google DataStore 和 Maps Engine ( http://www.google.com/enterprise/mapsearth/products/mapsengine.html ) 或 Kii Cloud ( http://www.kii。 com/en/technology/kiicloud/data)。

我正在构建一个旅行应用程序,我将使用这个 SDK 和服务阵容以及其他 Google Cloud Platform 产品。

祝你好运!

于 2013-06-26T22:33:25.470 回答