ЗДЕСЬ карта пуста во внешних системах - PullRequest
0 голосов
/ 05 октября 2018

Я пытаюсь реализовать веб-приложение, используя карты ЗДЕСЬ на инструменте Outsystems.

В приложении У меня есть веб-блок, который содержит Контейнер (где будет отображаться карта), выражение (с Escape-контентом как «нет» и сценариями ниже в качестве значения, чтобы его можно было вставить вHTML-код страницы) и кнопка, которая пытается запустить тот же сценарий снова (только для тестовых показателей и посмотреть, была ли проблема в выполнении сценария до того, как div был готов).

<script src="http://js.api.here.com/v3/3.0/mapsjs-core.js"type="text/javascript" charset="utf-8"></script>
<script src="http://js.api.here.com/v3/3.0/mapsjs-service.js"
  type="text/javascript" charset="utf-8"></script>
<script type ="text/javascript">
    // Initialize the platform object:
    var platform = new H.service.Platform({
        'app_id': '{APP_KEY}',
        'app_code': '{APP_CODE}'
    });

    // Obtain the default map types from the platform object
    var maptypes = platform.createDefaultLayers();

    // Instantiate (and display) a map object:
    var map = new H.Map(
        document.getElementById('" + MapContainer.Id + "'),
        maptypes.normal.map,
    );

    map.setBaseLayer(maptypes.satellite.traffic);
</script>

(MapContainer.Id возвращает идентификатор контейнера, как в HTML, поскольку инструмент автоматически создает идентификатор элементов)

На изображении вы можете увидеть структуру, которую я использую навеб-блок:

Проблема в том, что этот код, который я использую, не работает на внешних системах, оставляя пустую страницу .Но тот же код в HTML-файле работает нормально.В консоли браузера нет ошибок, и после проверки кода с помощью инструментов разработки (Chrome) я заметил, что холст создается, но имеет высоту = 0 (редактирование этого значения ничего не меняет).

Если кто-то знаетспособ обойти эти проблемы, о которых я хотел бы услышать.Спасибо за внимание.

1 Ответ

0 голосов
/ 08 октября 2018

Кажется, что стили контейнера карты не были вычислены и отображены, когда создается карта.Следовательно, карта есть, но имеет высоту ноль пикселей.Вероятно, это связано с тем, как представление создается в Outsystems.

Запрос браузера изменить размер карты в следующем кадре анимации должен помочь:

requestAnimationFrame( () => map.getViewPort().resize() );
...