Отображение пользовательского локального маркера изображения в OSM с использованием OpenLayers

Я следовал руководству по отображению пользовательского изображения в качестве маркера из этой статьи: https://medium.com/attentive-ai/working-with-openlayers-4-part-3-setting-customized-markers-and-images-on-map-da3369a81941

Однако при использовании моей собственной локальной структуры проекта для ссылки на мое изображение png оно не отображается на карте.

Вот мой текущий код:

var aPoint = new ol.geom.Point(ol.proj.fromLonLat([0, 0]))
var aFeature = new ol.Feature({
  geometry: aPoint
})
var aFeatureStyle = new ol.style.Style({
  image: new ol.style.Icon({
    //src: 'https://upload.wikimedia.org/wikipedia/commons/2/2a/Dot.png'
    src: '../../../dott.png'
  })
})
aFeature.setStyle(aFeatureStyle)
var aSource = new ol.source.Vector({
  features: [aFeature]
})
var aLayer = new ol.layer.Vector({
  source: aSource
})



var map = new ol.Map({
    target: 'map',
    layers: [
        new ol.layer.Tile({
            source: new ol.source.OSM(),
        }),
        aLayer
    ],
    view: new ol.View({
        center: ol.proj.fromLonLat([0, 0]),
        zoom: 14
    })
})

При использовании варианта src:'https://upload.wikimedia.org/wikipedia/commons/2/2a/Dot.png' отображается нужная точка, но при использовании источник: '../../../dott.png' маркеры не отображаются.

Я определенно указал правильный путь к моему локальному файлу png, поэтому у меня нет идей, почему этот код не работает.

Я использую фреймворк Angular и запускаю его на локальном сервере разработки, используя Node.

Что говорит консоль ошибок вашего браузера?

scai 27.05.2019 15:11

В консоли браузера нет ошибок

elecstude 27.05.2019 15:22

Когда вы смотрите на вкладку сети в инструментах разработчика, загружается ли png?

bennos 27.05.2019 16:12

Там написано 404, но я уверен, что путь к моему png-файлу правильный. Я даже использовал полный путь, и он все равно дает 404

elecstude 27.05.2019 16:24

Я нашел причину проблемы. Локальный png-файл пытается получить доступ, используя следующий URL-адрес в HTTP-запросе GET: localhost:4200/<полный_локальный_путь>/Dot.png, и это явно не ссылка на внутреннюю структуру проекта, поэтому файл png не может быть найден по этому адресу. Однако я до сих пор не знаю, как правильно обеспечить ссылку на локальный png-файл.

elecstude 27.05.2019 19:05
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
5
1 783
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Это случилось со мной, я решил это, используя

import imagePath from '../../../dott.png' 

и чем использовать переменную imagePath вместо пути ../../../dott.png

Если я это сделаю, выдает ошибку «модуль не найден».

elecstude 28.05.2019 11:38
Ответ принят как подходящий

Итак, я, наконец, понял это, и я чувствую, что должен был знать это раньше, но, поскольку я новичок в Angular, я не сразу это заметил.

Любые изображения, на которые необходимо ссылаться в исходном коде в Angular, должны находиться в папке источник/активы/изображения в структуре проекта Angular. Затем, указав путь как источник: '../активы/изображения/Dot.png', изображение успешно загружается с ответом 200 OK, который отображается на вкладке «Сеть» инструментов разработчика браузера.

Другие вопросы по теме