我不得不接管和使用phonegap的Android应用程序 - 传单/ MapQuest / openstreetmap
它崩溃了,因为MapQuest停止了对瓷砖的直接访问,地图不再显示了。
然后我添加了密钥并修改了此处建议的代码:https://developer.mapquest.com/documentation/leaflet-plugins/maps/
我使用此代码:
<link rel="stylesheet" href="scripts/leaflet-0.7.7/leaflet.css" />
<script src="scripts/leaflet-0.7.7/leaflet.js"></script>
<script src="https://www.mapquestapi.com/sdk/leaflet/v2.s/mq-map.js?key=validKeyNumberThatIWontReveal"></script>
在以下结构中:
我的JS:
var popup = L.popup();
var geolocationMap = L.map(b, {
layers: MQ.mapLayer(),
center: [40.731701, -73.993411],
zoom: 12
});
当我在浏览器上试用时,哪种锻炼效果很好。
但是当我在安卓工作室的Android手机上编译时,我收到了这个错误:
'MQ未定义'
它曾经与script / vendor / leaflet-0.7一起使用。
我的猜测是:它以某种方式无法到达库脚本/传单-0.7.7,但我看不出原因。
答案 0 :(得分:0)
我最终遇到了两个问题,一个是我自己的,另一个可以帮助任何读者:
我没有在正确的地方宣布传单脚本(我宣布的页面)。有关参考,请参阅:https://developer.mapquest.com/documentation/leaflet-plugins/open/
其中描述的网址问题:mapquest direct tile access discontinued
为了方便起见,这就是答案
就像更改tileUrl一样简单。
替换它:
var tileUrl = 'http://otile {S} .mqcdn.com /瓦/ 1.0.0 / OSM / {Z} / {X} / {Y} .PNG X?';
用这个:
var tileUrl ='http:// {s} .tile.openstreetmap.org / {z} / {x} / {y} .png';
然后像以前一样使用:
L.tileLayer(tileUrl,{})。addTo(map);
@Joel Harris