任务是:
- 旋转的 3d 地球仪,上面标有带有签名的点形式的标签(例如,莫斯科、英格兰等)。
- 它们必须从城市列表中加载。
- 当您单击它(地球)时,它应该会转换为具有相同标签的 2d 地图,但正是在此投影中,当您将鼠标悬停在标签上时,会出现标签的签名(例如,以人口和建筑特征的简短列表)。
- 此外,当您单击标签或城市名称时,它会重定向到所需的页面。
做这个的最好方式是什么?
- SVG
- 帆布
我以前没有使用过 Canvas 或 SVG。开始学习画布,但发现它无法提供我需要的一切。我找到了很多关于地球仪的例子,但我没有找到正常的文档(也请踢它)。
不同公司为不同目的制作了许多开源网络地球仪/地图。我将列出我必须与之共事的人,您可以选择:
就源代码和抽象的数量而言,这是一个非常大的地球,它更专注于实时渲染。他可以开箱即用地做很多事情,但是如果没有计算机图形知识,与他一起工作可能会很困难。它经常被使用,你可以找到很多关于它的例子。很好地利用了处理器和显卡的资源,因此它的性能处于最佳状态。
也是一个地球仪,内部更简单,比 Cesium 慢,实现的芯片更少,更易于理解和定制。在一个线程中工作,不加速显卡上的计算,几乎不使用着色器。
非常强大的东西,更适合SVG,但可以以不同的方式呈现,包含许多地理投影及其扩展的数学运算,非常适合创建2D地图和除 mercator / wgs84 之外的各种奢侈投影中的地图,它们几乎用于所有其他映射引擎。
这个奇妙的东西的特点是在 2D 和 3D模式下实时渲染矢量图块(在 3D 中它不是地球,而是一个角度的平面地图,就像
columbusview在铯中一样),但它也可以与栅格数据源一起使用. 你不能真正改变投影。用于2D地图的小型远程库。它不使用直接显卡,重量也很适中,但它拥有庞大的社区和许多不同的扩展。非常适合移动卡和弱电脑。支持各种投影。
很棒的传单替代品,更多源代码,更多功能,更多入门门槛,许多示例,对各种投影的正常支持。二维。
Прилагаю Вашему вниманию расширенную версию использования WebWorldWind
Что тут представлено:
前一个片段的一个变种,这里所有的城市都被折叠成一个kd-tree,并搜索距离半径为 1 度的点击站点最近的城市,然后绘制在地图上......
Если нужен именно глобус а не карта, то можно использовать такую связку: Leaflet + WebGL Earth 2.0, которая расширяет базовые возможности Leaflet и добавляет 3D

Плюсом такого решения является то, что при таком подходе доступны все инструменты Leaflet. К примеру для работы с метками, их кластеризация, обработка кликов, отображение атрибутивной информации.
Плюс появляется возможность показа в 3D. Поддерживает различные стили от MapBox:
Также есть возможность создавать собственные стили.
Данные могут быть получены с серверов MapBox или с собственных гео-серверов, а также из файлов GeoJson или csv.
Ссылки:
GitHub WebGL Earth 2.0 https://github.com/webglearth/webglearth
Документация и API WebGL Earth 2.0 http://www.webglearth.org
Пример WebGL Earth 2.0 https://www.webglearth.com
Документация API и примеры Leaflet https://leafletjs.com
一个单独的帖子专门讨论铯。
在这里,它
topojson以俄罗斯联邦主体的边界和集群城市的边界绘制。PS:这个地球仪有足够的功能,我有时会补充这个帖子......