javascript - 为什么 Mapbox 有时只能在某些浏览器上运行?
问题描述
我在网站上使用 mapbox 对从 MySQL 数据库中获取的德国地址进行地理编码。到目前为止,代码工作得很好,但我遇到的问题是我无法预测它何时在不同的设备上工作。
例如:昨天它在 macOS 上的 Chrome 和 Firefox 上运行,但在 Windows 10 PC 上的 Microsoft Edge 上抛出错误。今天它在 Windows 10 上的 Microsoft Edge 上工作,在 Windows 10 PC 上的 Chrome 上工作,但它不能在 macOS 或 iOS 上的 Safari 上工作,而昨天它过去工作得很好。
我的 mapbox 代码如下所示:
mapboxgl.accessToken = myAccessTokenInHere;
var mapboxClient = mapboxSdk({ accessToken: mapboxgl.accessToken });
var el = document.createElement('div');
el.className = 'marker';
mapboxClient.geocoding.forwardGeocode({
query: <?= $searchstring ?>,
autocomplete: false,
limit: 1
})
.send()
.then(function(response) {
if (
response &&
response.body &&
response.body.features &&
response.body.features.length
){
var feature = response.body.features[0];
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/myCompaniesStyleInHere',
center: feature.center,
zoom: 16
});
new mapboxgl
.Marker(el)
.setLngLat(feature.center)
.addTo(map);
}
// Add zoom and rotation controls to the map.
map.addControl(new mapboxgl.NavigationControl());
});
$searchstring
是一个 .php 变量,它以以下模式回显地址:'street houseNumber , Postal code/ZIP city'。
Safari 中的错误如下: 在这种情况下,特定的街道名称将是Nürnberger Straße - 我猜 mapbox 无法处理特殊字符?
解决方案
推荐阅读
- java - 这是Java中的通用数组吗?
- reverse-proxy - 如何将 apache 反向代理与 express 路由器一起使用
- c++ - 如何在 GDB cli 中调整源代码突出显示?
- google-chrome - 尝试从 Firebase 存储加载时,某些设备出现 SSL 错误/密码不匹配?
- python - 为什么我不能让 pandas 正确显示我的列表?
- javascript - 错误:设置嵌套对象的值时无法设置未定义的属性
- javascript - 如何禁用 HTML 视频播放器播放速度/三个点
- php - 不能在 laravel 中添加超过 1 个错误包
- javascript - 如何将对象属性组合在一个数组中,该数组在javascript中有一个共同的属性
- javascript - javascript (<) 中的小于运算符的工作方式为小于或等于