Leafletを使用し,現在地を表示させようとしております。
PCからでは想定通りの動き(現在地の表示)ができているのですが、
スマホ上で動かすと、Geolocation error: User denied Geolocation というエラーがアラートされます。
ちなみにアプリカンを使用して開発を進めております。
また、端末の位置情報、アプリの権限等もONにしてあります。
ソースは以下の通りです。
コード <!DOCTYPE html> <html> <head> <title>Leaflet Plugin Locate</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin=""> <script src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin=""></script> <!-- plugin --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css"> <link rel="stylesheet" href="css/L.Control.Locate.min.css" /> <script src="js/L.Control.Locate.min.js"></script> <!-- plugin --> <style type="text/css"> #mapid { height: 400px; width: 600px} </style> </head> <body> <div id="mapid"></div> <script> // Mapの基本設定 var map = L.map('mapid',{ center: [35.7122, 139.8117], zoom: 15, minZoom: 13, maxZoom: 16 }); L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, ' }).addTo(map); // Locate var option = { position: 'topright', strings: { title: "現在地を表示", popup: "いまここ" }, locateOptions: { maxZoom: 16 } } var lc = L.control.locate(option).addTo(map); // マップ表示時に現在地を取得 lc.start(); </script> </body> </html>
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。