Моя цель проста, я хочу добавить маркеры направления на пути (как так).
Код, который я реализовал, дает результат при начальной нагрузке. < /p>
lineCoords.forEach(coords => {
for (let i = 1; i < coords.length; i++) {
const A = (coords);
const B = (coords);
const interpolateA = d3.interpolate(A[0], B[0]);
const interpolateB = d3.interpolate(A[1], B[1]);
const spacing = 3;
const distance = Math.hypot(A[0] - B[0], A[1] - B[1]);
const numPoints = Math.max(1, Math.floor(distance / spacing));
const range = d3.range(1, numPoints + 1);
const points = range.map(j => {
const t = j / (numPoints + 1);
const interpolatedA = interpolateA(t);
const interpolatedB = interpolateB(t);
return [interpolatedA, interpolatedB];
});
onewayCoords.push(points);
}
})
< /code>
Однако, когда я увеличиваю карту, маркеры образуют дугу вместо прямой.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... d-of-a-str
D3.JS Интерполирует координат между двумя точками, образующими дугу вместо прямой линии ⇐ Javascript
Форум по Javascript
1743361684
Anonymous
Моя цель проста, я хочу добавить маркеры направления на пути (как так).
Код, который я реализовал, дает результат при начальной нагрузке. < /p>
lineCoords.forEach(coords => {
for (let i = 1; i < coords.length; i++) {
const A = (coords[i - 1]);
const B = (coords[i]);
const interpolateA = d3.interpolate(A[0], B[0]);
const interpolateB = d3.interpolate(A[1], B[1]);
const spacing = 3;
const distance = Math.hypot(A[0] - B[0], A[1] - B[1]);
const numPoints = Math.max(1, Math.floor(distance / spacing));
const range = d3.range(1, numPoints + 1);
const points = range.map(j => {
const t = j / (numPoints + 1);
const interpolatedA = interpolateA(t);
const interpolatedB = interpolateB(t);
return [interpolatedA, interpolatedB];
});
onewayCoords.push(points);
}
})
< /code>
Однако, когда я увеличиваю карту, маркеры образуют дугу вместо прямой.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79545047/d3-js-interpolate-coordinates-between-two-points-forming-an-arc-instead-of-a-str[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия