【问题标题】:How to add icon from kml file to mapkit in swift如何快速将kml文件中的图标添加到mapkit
【发布时间】:2019-01-23 01:54:06
【问题描述】:

我有一个 kml 文件:

在地图工具包上显示来自 kml 文件的所有数据后,一切正常。但在 kml 文件中我无法显示图标。

这是 kml 文件中的图标:

这是一个注释代码:

open class KMLDocument: KMLElement {
     open var overlays: [MKOverlay] = []
     open var annotations: [KMLAnnotation] = []
     open var styles: [String: KMLStyle] = [:]
     open var placemarks: [KMLPlacemark] = []

     public convenience init(_ element: AEXMLElement, generateMapKitClasses: Bool) {
        self.init(element)
        if generateMapKitClasses {
            initOverlay()
            initAnnotation()
        }
    }

    fileprivate func initAnnotation() {
        for pointPlacemark: KMLPlacemark in placemarks {
            if let point: KMLPoint = pointPlacemark.point {
                let annotation = KMLAnnotation(point.coordinates)
                annotation.title = pointPlacemark.name
                annotation.subtitle = pointPlacemark.description
                annotation.style = pointPlacemark.style
                self.annotations.append(annotation)
            }
        }
    }
}

【问题讨论】:

    标签: swift mapkit kml


    【解决方案1】:

    为了让 KML 文件中的图标图片在 Google 地球或地图中正确显示,该图标图片需要可公开访问。当我将您的图标图像的 URL 放入浏览器 (https://www.svgimages.com/svg-image/s5/send-file-256x256.png) 时,我只是得到一个黑屏并且没有图像。因此,无论出于何种原因,该 URL 都没有返回有效的、可公开访问的图像文件。它在具有对该服务器的特殊访问权限并且可以获取图像的 KML 查看器中可能工作正常,但可能无法在其他任何地方工作。您可能还想检查它实际上返回的是 PNG 文件,而不是 SVG 文件(因为 URL 在两个地方包含“svg”),因为 KML 仅支持 JPG、PNG 和 GIF 图像(加上 TIFF 和 GeoTiff 用于叠加)。

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2021-11-14
      • 1970-01-01
      • 2020-10-06
      • 1970-01-01
      • 2016-09-29
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      相关资源
      最近更新 更多