如何在 iphone sdk 中使用 openlayers

Posted

技术标签:

【中文标题】如何在 iphone sdk 中使用 openlayers【英文标题】:how can use openlayers in iphone sdk 【发布时间】:2013-02-23 14:38:29 【问题描述】:

我想使用 openlayer 创建自定义地图。但是我无法使用 openlayer。我想在 iphone 中不使用谷歌地图的情况下创建地图,所以我想使用其他方式在地图中填写自己的数据。我认为可以通过开放层实现,但我不知道。所以请帮助我。

【问题讨论】:

如果您说明您尝试与 OpenLayers 一起使用的代码以及为什么它没有工作,您会得到更好的响应。也可以试试OpenLayers tutorial。 【参考方案1】:

OpenLayers 是一个 javascript 库。作为基于客户端的地图查看实用程序,它允许"display map tiles, vector data and markers loaded from any source"。类似于Leaflet。

它们只有在您想在网络上呈现时才有用(在这种情况下,您需要从某个地方获取地图图块或地图图像(例如OpenStreetMap),或者设置您自己的地图服务器) .

如果您想要在 ios 上本地渲染地图,那么您可能需要一个工具包来获取和渲染地图图块或图像。这里有一些可能会有所帮助:

WhirlyGlobe-Maply; tangram-es; GLMap; Mapzen iOS SDK; Nutiteq SDK; Mapbox iOS SDK QuartzMaps;

【讨论】:

你好。以上建议哪个是免费开源的? @famfamfam 据我所知,只有 WhirlyGlobe-Maply 和 Tangram ES 是 FOSS。所有其他都是开源的,但不一定是免费的。 谢谢你。我看到 TanGram ES 需要使用 api 密钥,所以它不是免费的。 WhirlyGlobe 只是地图工具包,它不包含地图服务,所以我可以使用一些方法,如添加标记、折线或更改相机视图.....如果我错了,请告诉我,谢谢 据我所知,您可以使用 Tangram 使用任何切片服务,从 OpenStreetMap 到 GeoJSON/TopoJSON 矢量数据。仅当您选择付费服务时才会付费。此外,仅仅因为您需要一个 api 密钥并不意味着它是付费的。 :-) 示例:Netzen.【参考方案2】:

您可以在phonegap 的帮助下使用它。

如果您不想使用 phonegap,那么您可以简单地使用 UIWebView。您可以在其中加载您的数据。 在 UIWebView 中加载 html 文件。 html文件,包括javascript和css和图像文件没有任何问题。

NSString *fullPath = [NSBundle pathForResource:@"filename" ofType:@"html" inDirectory:path];
 [yourWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]];

有关openLayers的更多信息

【讨论】:

【参考方案3】:

听起来您只是对在 iOS 应用中提供自定义地图感兴趣。如果是这样,那么MapBox-iOS-SDK 将允许您使用许多不同的地图源,而无需 Web 视图。如果您查看 github 上的 MapBox 项目,他们也有工具可以帮助您创建 SDK 可以使用的地图。

【讨论】:

以上是关于如何在 iphone sdk 中使用 openlayers的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 iphone sdk 在 ipAd 控制器中发布我们自己的 iphone 应用程序广告?

如何在 iPhone SDK 中使用 LinkedIn API?

如何在 iPhone SDK 中使用手势在屏幕上绘图?

如何使用 iOS 6 sdk 为 iPhone 4s 或 iPhone 4 制作视图控制器?

如何在 iPhone SDK 中使用自定义字体? [复制]

如何使用iphone sdk中的手势在框架中移动图像