首页 > 解决方案 > 为什么 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 无法处理特殊字符?

标签: javascriptphphtmlmapbox

解决方案


推荐阅读