【问题标题】:How to make a map-like view that has a custom map image?如何制作具有自定义地图图像的类似地图的视图?
【发布时间】:2012-11-04 10:35:33
【问题描述】:

正如标题所说,我需要制作一个非常自定义的视图,其行为类似于 MKMapView,但使用自定义图像。也许分享最终目标会更容易。

我正在尝试制作的应用程序是对我不时玩的 MMO 的补充,它也是我正在学习的 iOS 课程的学期项目。无论如何,这个想法是创建一个应用程序,在屏幕上显示来自游戏的交互式地图。下一步是在应用程序中添加某种叠加层进行注释,以便用户可以将自定义位置直接添加到地图中。

(这是我要添加的图片之一)

所以,这里是总结...

  • 如何添加图像并使其像 MKMapView 一样可滚动和可捏合
  • 如何使用允许自定义位置的坐标设置叠加层

任何和所有提示将不胜感激。 :)

更新:

@andrewap 向我展示了 http://mapbox.com/mobile/,它看起来很棒,似乎正是我所需要的,但我认为这并不完全符合我作为初学者的技能水平。因此,如果找到任何其他更简单/更简单的方法,这个问题仍然悬而未决,假设有的话。

我尝试让自己熟悉一下 TileMill,但据我所知,它不支持自定义地图图像(如前图所示的虚构地图图像),因此不能完全回答我的问题。但是,如果您希望拥有一个功能齐全的自定义真实世界地图图像,那就太好了。

(注意:我对编程非常陌生,甚至对 Objective-C/iOS 编程也很陌生,请在回答时记住这一点)

【问题讨论】:

  • 您需要不同的“缩放级别”吗?如果地图不是太大,您可以通过合并UIScrollViewUIImageView 来实现地图视图。建议:How do I pan the image inside a UIImageView?
  • 我也在寻找这样的东西。像地图这样的地图应用程序,带有带有自定义地图图像的图钉和东西。
  • 如果你想要比缩放和平移更复杂的东西,你应该看看 3rd 方库。据我所知,MKMapView 不能使用自己的地图图块。
  • @andrewap 我想允许用户放大,因为用户可以更容易地看到地图上的细节,所以是的,它很大。 :/ 现在我有超过 10 个代表,我将向您展示我所说的图像的含义。
  • 您可能想看看 Apple 在 iOS 7 中为此引入的新 MapKit API。

标签: objective-c ios xcode image mkmapview


【解决方案1】:

鉴于您希望使用自定义地图图像和数据的地图功能,我建议您研究允许您自带图块的 3rd 方 SDK。为了帮助您入门,请查看 MapBox 和 TileMill:

  • MapBox iOS SDK — 作为 MKMapView 替代显示自定义地图图块
  • TileMill — 从您的游戏地图图像创建自定义地图图块

我个人以前没有这样做过,所以很遗憾,除此之外我无法为您提供具体的指导。以下是使用自定义图像作为地图的示例:http://macwright.org/2012/08/13/images-as-maps.html

【讨论】:

  • 尽管这个 SDK 看起来很棒,但我不禁想知道是否有更简单的方法来添加简单的坐标叠加?我将把我的想法添加到主要问题中。
  • 通过将图像添加为叠加层,您需要将其任意分配到地图上的某个位置,并对用户可以平移到的位置实施限制。
  • UIScrollView + UIImageView 解决方案可能是最容易实现的,无需创建地图切片等。您可以随时快速尝试一下,看看它是否适用于您的应用程序。
  • 据我所知,TileMill 不支持自定义地图图像。我只能创建世界地图或特定选择的叠加层。这对现实世界的地图非常有用,但不适用于我的项目。
【解决方案2】:

在 WWDC2010 示例代码中有一个很好的教程来说明您正在做什么。他们拍摄图像并将其切成四等份,然后将其切成四等份,依此类推,直到图像图块易于管理,然后使用 UIScrollView 将它们展示出来。虽然没有实现引脚。您可以使用实际的 MKMapview 并使用 TileMaps 中的示例(也来自 WWDC2010)将图像作为地图图块放入。你需要用坐标标记你的图像,也许把它变成 GeoTiff,然后通过MapTiler 运行它。我不知道如何将图像映射到真实世界的坐标,但如果您不打算允许用户绘制路线,您可以调整您的引脚(MKAnnotations)坐标,以便它们出现在您的正确位置地图。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多