Mapkit JS无法在手机上移动地图

Posted

技术标签:

【中文标题】Mapkit JS无法在手机上移动地图【英文标题】:Mapkit JS can't move map on mobile phone 【发布时间】:2018-08-13 15:23:12 【问题描述】:

我正在尝试将 Mapkit JS 用于地图。我的代码在桌面上运行良好。但是,在手机上进行测试时存在一个问题。似乎我无法用手指移动地图。在桌面上,我可以用鼠标在地图上移动。

 <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://cdn.apple-mapkit.com/mk/5.x.x/mapkit.js"></script>

    <style>
    #map 
        width: 100%;
        height: 400px;
    
    </style>

    </head>

    <body>
    <div id="map"></div>

    <script>
    mapkit.init(
        authorizationCallback: function(done) 
            done("API KEY");
        ,
        language: "en"
    );

   var map = new mapkit.Map('map', 
   showsMapTypeControl: false,
   showsCompass: mapkit.FeatureVisibility.Hidden
    )

   var coordinateRegion = new mapkit.CoordinateRegion(
        new mapkit.Coordinate(40.51415196691954, -74.43808765761719),
        new mapkit.CoordinateSpan(1.234, 1.23423)
    );
   map.region = coordinateRegion;

    </script>
    </body>
    </html>

【问题讨论】:

你有没有得到这个工作?我完全复制了您的代码,它确实允许我移动地图,至少在 iPhone 8 上是这样。我唯一更改的部分是 API 密钥检索,因为我使用的是短期密钥。我那部分的代码是:mapkit.init( authorizationCallback: function(done) var x=new XMLHttpRequest(); x.open("GET", "getToken.php"); x.addEventListener("load", function() done(this.responseText); ); xhr.send(); ); 我在安卓手机上遇到了同样的问题。 【参考方案1】:

Mapkit JS 版本有时无法识别来自 android 手机的触摸。您可以在 Chrome 开发者面板中对此进行测试。解决方法是更改​​您正在使用的版本。

截至撰写本文时,5.19.x 是支持 Android 的最新版本,而 5.20.0 目前不支持。

【讨论】:

我发现了同样的,并且也将版本锁定为 5.19.x。 这个版本还适合你吗?我尝试了几乎所有版本,现在我无法在任何版本的 Android 上移动地图。 Web + ios 运行良好。

以上是关于Mapkit JS无法在手机上移动地图的主要内容,如果未能解决你的问题,请参考以下文章

MapKit 帮助。无法先显示我的位置

iOS核心笔记—MapKit框架-基础

MapKit JS - 如何获取我的当前位置

iOS MapKit,细节较少

:使用MapKit开发地图服务

全屏mapkit地图