We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

Glob3 Mobile (Mobile Map Tools)

00:00

Formal Metadata

Title
Glob3 Mobile (Mobile Map Tools)
Title of Series
Number of Parts
188
Author
License
CC Attribution 3.0 Germany:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language
Producer
Production Year2014
Production PlacePortland, Oregon, United States of America

Content Metadata

Subject Area
Genre
Abstract
Glob3 Mobile is an API for the development of native map applications on mobile devices.The main capability of this library is the Multiplatform approach, it have the very same API in all environments thanks to coding translation.Developing with Glob3 Mobile you can save time and resources when you face a mobile development having all advantages of native development (Performance, UI, Access to disk, sensors, etc) and the simplicity of an API thought for GIS developers.During 2013-2014 G3M has been growing in capabilities and is now a solution to face the development of any map application on any device.In this presentation We will explain the architecture and the main capabilities of this library and we will show some examples and demos and use cases with the API working.Glob3 Mobile has been developed thinking in the usability and the UI of mobile devices.Currently Glob3 Mobile is working in the next platforms:* iOS* Android* Google Glass* html5-webgland it is planned to add others like Windows 8 or Java Desktop.Currently also g3m has been used as offline AR engine for wearable devices.The capabilities list is huge but the main are:* Raster data* Vectorial data* Point Clouds* 3D models (Buildings, cities, vehicles, ...)* 4D Data* Real Time* Simbology* Offline - Online -> Cache Handling* 3D- 2D - 2,5D views* Scenarios* Animations* Cameras* TasksDuring 2014 Glob3 Mobile will become part of Location Tech (Eclipse Foundation) and will change the name and license:Glob3 Mobile --> Mobile Map toolsBSD -> EPLA different use cases of Mobile Map Tools.Vazz: http://www.vazz.tv/start Galileo: http://galileo.glob3mobile.com http://galileo.mobilemaptools.comAero Glasses: http://glass.aero/
Keywords
25
74
Thumbnail
29:15
Visualization (computer graphics)Software frameworkComputing platformMultiplicationMappingOpen sourceOpen sourceMappingCartesian coordinate systemComputing platformEnterprise architectureUniform resource locatorRepository (publishing)Cross-platformMetropolitan area networkEuler anglesComputer animation
EmailCodeUsabilityMenu (computing)Metropolitan area networkRepository (publishing)Source codeCodeoutputAndroid (robot)Moment (mathematics)Cartesian coordinate systemSoftware developerFinite differenceFunctional (mathematics)Mobile appBranch (computer science)Line (geometry)Multiplication signTouchscreenWeb browserTranslation (relic)Physical systemShared memoryComplex (psychology)Core dumpComputing platformSemiconductor memoryImage resolutionMappingProduct (business)UsabilityCASE <Informatik>Java appletNormal (geometry)Different (Kate Ryan album)Enterprise architectureMereologyOperating systemSign (mathematics)Process (computing)InformationWaveFamilySocial classSystem callCondition numberMathematical analysisForm (programming)VideoconferencingFrequencyACIDArithmetic meanGenderComputer animation
MultiplicationComputing platformDifferent (Kate Ryan album)Graph (mathematics)Translation (relic)RhombusBuildingCurveSurvival analysisComputing platformCartesian coordinate systemWordMorphingPower (physics)Process (computing)Moment (mathematics)Shared memoryKeyboard shortcutCodeSoftware testingAndroid (robot)Source codeData modelMultiplication signJava appletoutput
Computing platformMultiplicationCurvatureView (database)Data modelReal numberCache (computing)TrailTransformation (genetics)Task (computing)Client (computing)Server (computing)Vector spaceMenu (computing)MathematicsWeb 2.0View (database)MereologyWaveSoftware developerCartesian coordinate systemMultiplication signCASE <Informatik>InformationFlow separationSocket-SchnittstelleSocial classIntegrated development environmentTransformation (genetics)SynchronizationFile formatStandard deviationPhase transitionComputing platformPoint cloudServer (computing)Utility softwareBoss CorporationClient (computing)Process (computing)Parameter (computer programming)Programming paradigmParsingAndroid (robot)Library (computing)Raster graphicsMobile appParsingCache (computing)outputScaling (geometry)Endliche ModelltheorieMoment (mathematics)Point (geometry)Real-time operating systemData modelComputer animation
Vector spaceMenu (computing)Point cloudPoint (geometry)Point (geometry)BootingNumberPoint cloudClient (computing)Parameter (computer programming)Server (computing)Inheritance (object-oriented programming)Physical systemJava appletRaster graphicsLibrary (computing)Process (computing)Revision controlStreaming mediaComputer animation
Point (geometry)Arithmetic meanScripting languageMereologyShape (magazine)Bus (computing)4 (number)Sampling (statistics)Point cloudProcess (computing)Computer animation
Menu (computing)Point cloudPoint (geometry)Shape (magazine)Process (computing)Server (computing)Client (computing)MultiplicationVisualization (computer graphics)Computing platformSoftware frameworkMappingOpen sourceVector spaceMountain passStreaming mediaEntire functionLibrary (computing)Connected spacePoint cloudShape (magazine)Point (geometry)Server (computing)InternetworkingProcess (computing)Order (biology)Marginal distributionComputing platformVideoconferencingParameter (computer programming)Software developerMereologyMoment (mathematics)Form (programming)Pattern languageWave packetWord
Connected spaceNeuroinformatikVideoconferencingVideo gameSoftwareLecture/Conference
Speech synthesisCartesian coordinate systemPhysical systemMappingData storage deviceMobile appRepository (publishing)VideoconferencingCuboidReal numberNormal (geometry)Machine code
User interfaceDemo (music)Discrete element methodComputer fontPoint cloudVector spaceRight angleMultiplication signLibrary (computing)Vector spacePoint (geometry)Task (computing)outputAndroid (robot)Data modelPoint cloudPopulation densityNormal (geometry)InternetworkingShape (magazine)Power (physics)ArmSpacetimeSystem callNumberRegular graphSound effectSymbol tableCASE <Informatik>Ultraviolet photoelectron spectroscopyPlotterComputer fileWaveTemporal logicJSONComputer animation
PlanningInternetworkingConnected spaceServer (computing)Demo (music)InformationRaster graphicsCartesian coordinate systemPoint (geometry)MappingPosition operatorView (database)Level (video gaming)Letterpress printingArmNormal (geometry)Computer animationLecture/Conference
MultiplicationDimensional analysisMoment (mathematics)Point cloudFile formatPoint (geometry)Computer programmingForcing (mathematics)Lecture/Conference
Transcript: English(auto-generated)
Thank you. Now our new name is mobile map technology because trademark is used and as we are now in location tech we have this new name. My name is Manuel Delacalle.
What is mobile map technology? We are using exactly the opposite approach to the talk before.
First of all we are an open source API but this is obvious here in FOS4G. We build native maps application that runs on any device. We have developed an architecture to have a native API in all the platforms.
We have an SDK cross platform that you can build very fast native maps application and also in 3D.
Our repository is here. Our license is, we are using a very open license. We are using a VSD of two clauses. Now we are going to change to an APL that is the same license, we are going to change
because we are going to the Eclipse Foundation. This is our source code, our repository. We develop directly here. We have thousands of branches that is where we are improving but our main branch is the repository. If anyone wants to try it, the repository is there.
When we start with this product two years ago we are talking different things about the mobile devices. First of all was the fragmentation.
This problem I suppose to everybody that are developing mobile applications now about this problem. This problem is every day is worse because the Android devices are failing with different
screens, different processors, different memory and also different operating systems. Every day we have a new fork of Android. We have the same problem with browsers. Now every browser has a different engine so we have other problems with that.
The only platform that seems stable is iOS but is absolutely closed. For the development, we only have two or three screens. One of the biggest problems for developers is the fragmentation.
We face it in this problem. Other problem is the performance. In the talk before, they have talked about the problems with these 30 moments like the running or thumming.
Maps are a high-performance application. We need all the resources on the mobile device. The browsers are working better and better in the last times but for most of the applications it is not enough.
We are trying to do every day more complex applications on mobile. The performance is absolutely important. We are absolutely performance obsessed. We are working all day in the performance and our work works very fine in all platforms.
Our worst case is Android because we have more problems but the performance is so good. Other problems is usability. The usability on the mobile, everybody knows that the resolution of my finger is not the
same as my mouse. On the mobile you use the finger. We can't make smaller applications and things are going to work in the same way on the mobile. From the beginning, we have designed our IPA thinking and usability.
Easy to code. We want to have good applications in a very short period of time. At the end of the day, we have the very same API in all platforms.
Android and WebGL shares 75% of code when you are developing an application. If you are familiar with Android developer or iOS developer, to have a map with a globe is two lines of code.
After that, you need to add your functionality but it is a normal Android functionality or iOS functionality. The architecture is complex but for the developer, it doesn't mean because at the end of the day,
he has a native API. This is our architecture. It is the way that we have the same API in all platforms because we don't want to code three different APIs.
Our solution was we have developed a core in C++ where we manage all the more important things of our tool. We were in the core with OpenGL and all the complex stuff.
This core is translated with a very simple translator to Java. At that moment, we have a Java API. After that, we translate another timer with Google Web Toolkit. We have HTML5 application.
As Google Web Toolkit is developing Java, the applications in Android on HTML5 share a lot of source code. Seems a little complex but works really fine.
It is easier to maintain the bindings and we have better performance. Translate code is a brain test thing because when we have a problem in HTML5 or Android
and we fix it in the C++ part, the whole solution is improving. If we have a problem on Android, I improve the iOS solution at the same time. For the developer, at the end, it is the same. It always has a native API.
Now we have a C++ core, we can add new platforms. We are adding now Windows 8 platform. This is a different screenshot. Now I'm going to show you the work working.
This is the first iOS, Android with 3D buildings and 3D model moving. This is working on Google Glass. This is in the web.
You can work with different views. You have the globe view. You have a view that we call scenario that is simply a part of the terrain. In our case, it is called a sector. Also a platform.
We can add any kind of data. We don't have developed parsers. We only have developed one parser for JSON. We changed the format. We have some problems with 3D model formats. There are no standards at the moment.
We can put MDTs, raster information, point cloud, any kind of data. Some of the capabilities. We can work offline or online.
Always the mobile solutions, the mobile application are always a trade-off between server development and client development. We face that. We have part of the things we make on server and part of the things we make on the client. Also, we have developed a server for real-time.
We have implemented this server. It works fine. We can push real-time information on our applications. We manage the cache. You can work absolutely offline or absolutely online. We use SQLite that could be shared between the platforms.
Now we are adding support for MDTiles. You can manage the cache. You can decide if you want to cache for a time that you need. For example, if you are making a web application, you don't want to cache. You only have to say in the definition of the layer that you always want to refresh.
It's more fine. We have camera and models animation. You can do 2D or 3D applications. In 2D applications, you don't need to move the camera. But in 3D applications, you can move the camera where you want.
The concept of scale or things like that are absolutely different. Moreover, we have other utilities classes in the API that you need to develop the applications. For example, we have problems with the tasks because in the HTML version, it's an asynchronous environment.
The iOS and Android are asynchronous. Most of the time, you need to do tasks in background. To do that, we have classes that make the developer mind about that.
We have developed that for the classes because we need to put things over the camera. We have several tools for data transformation because we don't want to do the parts.
The tools that we use for that normally is using other libraries, very good libraries because data transformation is one of the things that we have better libraries in the market. The last new thing that we have done is, for example, a vector-type library. This releases all the tools.
We have a server part and a client part. It's a vector-type library.
We import the data we want to prepare the parameters in a POSGIS. We have a process, a Java process that builds a parameter. That parameter is a GeoJSON parameter that could be consumed in Overliers or in our library.
Of course, in our library, it's very easy to consume. You only have to indicate where is the server. You can put the parameter where you want. It's like the raster parameter but in GeoJSON.
At least in our client, it works very nice and very fast. Now, one of the last things that we are doing is the streamings of point clouds. This is in absolutely beta.
Our first version was two days ago but I want to show it. The original point clouds are 3 billion points. We have reduced the sample of the clouds. Here we have 160 million points.
It's HTML. I have the other person working also. The important thing here is that we are showing only meaningful points. All the points that we are showing are saving the shape.
Here we are showing 40 points. These points are not arbitrary. Exactly with the shape that we have to. While we are near, the points are common.
Of course, it's 3D.
Impossible with the mouse here. This is the idea.
This is 3D. We are at the process.
This library that we are in development is now working on the three platforms. We have to improve the performance. We are sure that we have the margin to improve.
We have a process that imports the entire point cloud on a Berkeley DB. We import the whole point cloud with parameters. How we want the order point cloud that we want to show.
We have a server part for this. Finally, we have a server that gives us the point cloud streaming. Depending on where we are on the point cloud, what points have to give us.
All points are ordered with a quadtree. It works really, really nice. We have native support on the whole tool. It's really easy to add the point cloud. As I said before, the closed-sided shape.
I have here a small video. This is not working.
I have no internet connection.
I have the copy of the video on my computer. No problem.
In this video, I want to show different things that the API can do. It's a real video with normal speed. This is the Go3 mobile application.
This application can be downloaded on the Play or on the iTunes store. We use this application to show what you can do with the API. The code that produces all these things is on the repository.
If you want to have this application deployed for you, you only have to go off in the repository and use it. You can see how we make these maps. These are raster maps, normal maps. This is the map box.
We can put any raster layer. No problem with that. We have a kind of layer called template layer where you can parameterize. You can use any template layer.
These are two gloves working at the same time. No special internet. You can put 11 gloves or whatever you want. This is a scenario with a terrain model near my hometown.
This is working on Android and on iOS works in the same way and on the WebGL also. We have vector. This is not vector layer. It's normal vector.
You can click on the markers. You can have all the normal things in a vector library. We have a very powerful symbology library. It's very interesting. One of the things of a 3D library is you can symbolize it in this way. This is very easy to do
and it's very easy for performance, this kind of symbology with shapes or with robes. This is a point cloud, but this point cloud is not like the other. This point cloud is offline. This point cloud is on the device.
We can show the same density points with the streaming, but there are very large point clouds we can show. This is a 3D model moving with the tasks.
This application is a demo that we made for an island. We get the data from the plane instruments.
The plane is giving us all the information about the position of the plane, about the pitch, all the things that the plane is doing. We move the plane. This is a point of interest where you can go.
There are a lot of views. This is the idea for the maps into the plane for the near future where the company is probably going to have an internet connection, a server and an internet connection on the planes. In the States, most of the companies have internet connection and Europe is not normal.
It's not a normal thing, but the idea here was that all the tiles, raster tiles, was on the plane in a little server, a small server, and all the movement is produced with the plane instruments. You can go where you want with the plane.
I think it's all. Questions, please.
For the point clouds, are you reading native point cloud formats and are you reading all the dimensions? Are you just XYZ and treating them that way? We can do it, but in this moment we get a last point cloud.
I don't remember the name of the tool. We're translating to XYZ to import, but it's not a big deal to read different formats. The problem is to order and all that stuff,
but we think that it's not very hard to do that. For this thing, like other things about formats, we don't develop anything. We use other good readers that there are a lot on the market, on the false market.
Any other questions? Thank you. If anyone wants to question me something, I'm everywhere. Until Friday.