首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >swift中的MKTileoverlay问题

swift中的MKTileoverlay问题
EN

Stack Overflow用户
提问于 2015-02-23 00:44:14
回答 1查看 1.4K关注 0票数 2

我是iOS开发的新手,在使用MapKit时遇到了一个问题。

我正在尝试创建一个简单的应用程序来覆盖光栅图像到使用mapkit创建的地图。

下面是我的tabViewcontroller的代码:

代码语言:javascript
复制
import UIKit
import MapKit

class J_1_TabViewController: UIViewController,MKMapViewDelegate {

@IBOutlet weak var CarteMapView: MKMapView!

override func viewDidLoad() {
    super.viewDidLoad()


    // Localisation centre de Clermont-Ferrand pour centrer la carte
    let location = CLLocationCoordinate2D(
        latitude: 45.774792,
        longitude: 3.091641
    )


    let span = MKCoordinateSpanMake(0.1, 0.1)  // declaration du niveau d'affichage en X et Y en °
    let region = MKCoordinateRegion(center: location, span: span) //declaration de la zone de la carte


    self.CarteMapView.setRegion(region, animated: true)



    //var template = "http://tile.openstreetmap.org/{z}/{x}/{y}.png"  //declaration de l'adresse pour les tuiles


    var template = "http://81.255.152.141/galineau/carteNO2/{z}/{x}/{y}.png"

    let carte_indice = MKTileOverlay(URLTemplate:template)

    self.CarteMapView.addOverlay(carte_indice)


}

和我的rendererForOverlay的代码

代码语言:javascript
复制
func mapView(mapView: MKMapView!, rendererForOverlay overlay: MKOverlay!) -> MKOverlayRenderer! {
    if overlay is MKTileOverlay {
        var carte_Renderer = MKTileOverlayRenderer(overlay: overlay)
        carte_Renderer.alpha = 0.9
        return carte_Renderer
    }

    return nil
}

在我的例子中,如果我使用OpenStreetMap链接,我的覆盖是可以的,但如果我使用我自己的磁贴,它就不再起作用了。我已经使用gdal生成了我的tiles,当我尝试在safari上可视化它们时,它看起来不错。这是可视化我的磁贴的链接:MyMap

我不明白为什么它们没有显示在我的应用程序中?

EN

回答 1

Stack Overflow用户

发布于 2015-12-27 16:56:44

如果您运行的是iOS9,您可能会遇到应用程序传输安全问题,因为您的磁贴是通过不安全的http链接访问的,并且苹果公司的政策现在禁止访问任意的http内容。

请参阅https://developer.apple.com/library/ios/documentation/General/Reference/InfoPlistKeyReference/Articles/CocoaKeys.html上NSAppSecurity下的详细指南

您应该明确地将您的域添加到Info.plist中的例外域中。同时,仅出于测试目的,可以在Info.plist中插入以下密钥时禁用应用传输安全

代码语言:javascript
复制
<key>NSAppTransportSecurity</key>  
     <dict>  
          <key>NSAllowsArbitraryLoads</key><true/>  
     </dict>  

以上仅用于测试,对于任何商业应用,您应该在异常域中列出通过http访问的不安全域。

有关自动测试服务的很好的总结可以在这里找到http://ste.vn/2015/06/10/configuring-app-transport-security-ios-9-osx-10-11/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28660412

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档