Как реализовать карты для помещений
Я работаю над приложением для внутренней навигации, мне нужно построить карту с 3D-наложениями, кроме того, мне нужно перемещать, масштабировать и поворачивать карту, используя прикосновения. поэтому, когда я искал об этом, я нашел API карт Google и некоторые сильные библиотеки, такие как LibGDX, я работал над LibGDX с TiledMap, но я столкнулся с некоторыми проблемами касаний и анимации, поэтому я думаю, что API карт Google является более мощным. Могу ли я использовать Google Maps API только для карт в помещениях, например, это изображение:
если да, пожалуйста, скажите мне, потому что я еще не начинаю изучать это, иначе, какую лучшую библиотеку я могу использовать для этого и есть ли хорошие учебники?
Буду благодарен за помощь.
1 ответ
Хорошо, на мой взгляд, у вас есть два основных варианта:
- Вы делаете это соответствующим образом с реальным картографическим программным обеспечением. Тогда я бы предложил вам использовать cityGML или indoorGML, особенно если вы задумываетесь о навигации. Существуют такие инструменты, как Esris City Engine, 3D или 3D City DB, которые могут вам помочь. Кроме того, существуют такие вещи, как ArcGIS API для создания вашего приложения, но будьте осторожны, по моему опыту, реализация на мобильных устройствах очень ошибочна. Есть также бесплатные библиотеки Java city/indoorGML, которые вы можете использовать, хотя не уверены в их поддержке Android. Между тем, Google Maps API должен также поддерживать 3d, но я сомневаюсь, что он работает для реальных 3d, так как я еще не видел пользовательских зданий. Возможен компромисс с использованием Google Earth API и наложением его на модель KML для помещений. Возможности, конечно, ограничены с KML, с другой стороны, городской и внутренний GML довольно тяжелая рабочая нагрузка, в то время как SketchUp и KML легки.
- Возможно, лучший способ будет быстрым и грязным: создайте приложение для браузера, используя WebGL. Тогда вы можете использовать JS-библиотеки, такие как ThreeJS, что довольно просто. Преимущество этого подхода в том, что он не зависит от платформы, очень настраиваем и хорошо выглядит, браузер Android Chrome также поддерживает WebGL. Для навигации вам придется строить свою собственную логику.