我想在Android设备上显示地图。我看到了变焦控制器和一个市场。但是地图没有显示。
我遵循leftlet示例,如果我以html格式传递代码,则显示地图,但不显示android。
活动:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_map)
Log.d("----->Map", "")
// init webView
// displaying content in WebView from html file that stored in assets folder
webView = map_location
//webView.clearCache(true)
//webView.clearHistory()
webView.getSettings().setJavaScriptEnabled(true);
webView.loadUrl("file:///android_asset/map.html");
}
HTML:
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<script src="./leaflet.js"></script>
<link rel="stylesheet" href="./leaflet.css">
<style>
body {
padding: 0;
margin: 0;
}
html, body, #map {
height: 100%;
width: 100vw; }
</style>
</head>
<body>
<div id="map"></div>
<script>
var map = L.map('map').setView([41.66, -4.72], 10);
L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
maxZoom: 18,
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
id: 'mapbox.streets'
}).addTo(map);
map.locate({setView: true, maxZoom: 16});
//L.control.scale().addTo(map);
L.marker([41.66, -4.71], {draggable: true}).addTo(map);
</script>
</body>
</html>
我希望完整的地图可以显示
答案 0 :(得分:0)
你可以试试吗?
width: 100%;
height: auto;
}
答案 1 :(得分:0)
我弄清楚了问题所在,当我测试Leaftlet库时我只是创建了Webview,但是我忘了给该应用程序提供Internet权限,这使得完整的地图得以显示