An Evaluation of Map Engines
Total Page:16
File Type:pdf, Size:1020Kb
Institutionen för datavetenskap Department of Computer and Information Science Final thesis An Evaluation of Map Engines by Alexander Magnusson LIU-IDA/LITH-EX-G—12/022—SE 2012-10-08 Linköpings universitet Linköpings universitet SE-581 83 Linköping, Sweden 581 83 Linköping Linköping University Department of Computer and Information Science Final Thesis An Evaluation of Map Engines by Alexander Magnusson LIU-IDA/LITH-EX-G—12/022—SE 2012-10-08 Supervisors: Erik Berglund Johan Hagelin Examiner: Erik Berglund På svenska Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare – under en längre tid från publiceringsdatum under förutsättning att inga extra- ordinära omständigheter uppstår. Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner, skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för ickekommersiell forskning och för undervisning. Överföring av upphovsrätten vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av dokumentet kräver upphovsmannens medgivande. För att garantera äktheten, säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ art. Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i den omfattning som god sed kräver vid användning av dokumentet på ovan beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan form eller i sådant sammanhang som är kränkande för upphovsmannens litterära eller konstnärliga anseende eller egenart. För ytterligare information om Linköping University Electronic Press se förlagets hemsida http://www.ep.liu.se/ In English The publishers will keep this document online on the Internet - or its possible replacement - for a considerable time from the date of publication barring exceptional circumstances. The online availability of the document implies a permanent permission for anyone to read, to download, to print out single copies for your own use and to use it unchanged for any non-commercial research and educational purpose. Subsequent transfers of copyright cannot revoke this permission. All other uses of the document are conditional on the consent of the copyright owner. The publisher has taken technical and administrative measures to assure authenticity, security and accessibility. According to intellectual property law the author has the right to be mentioned when his/her work is accessed as described above and to be protected against infringement. For additional information about the Linköping University Electronic Press and its procedures for publication and for assurance of document integrity, please refer to its WWW home page: http://www.ep.liu.se/ © Alexander Magnusson Disclaimer This report is the culmination of a bachelor thesis. The company Saab AB has provided me with a working environment and the necessary equipment (software and hardware). All opinions, judgements and subjective thoughts presented in this report belongs to the author and does not necessarily reflect the views of Saab. Acknowledgements I would like to thank my two supervisors, Johan Hagelin at Saab AB, and Erik Berglund at Link¨opingUniversity, for their assistance and guidance during this work. Furthermore I extend my thanks to Mattias Lindblad for helping me with various technical issues, Henrik Nyberg for providing me with necessary test data, Patrik Andersson for information and material regarding OGC, and all my other co-workers at Saab. Also I would like to thank the involved companies: Carmenta, Envitia, Esri and Luciad for lending their products and giving helpful support, and everyone contributing to WorldWind. Abstract Geographic data is often used and a necessary part for various tasks, examples could be city planning, air-traffic control and navigation. In today's modern world computer systems are an integral part for accomplishing such tasks. Consequently, software is required to handle geographic data. This report is a study of a number of map engines used in such software. The choice of which map engine to use for producing the desired software is important. A particular map engine might not live up to the requirements set up. First I will examine the map engines from a more subjective point of view by developing a basic application. This phase evaluates how easy it is for a software developer to use this map engine. Once a basic application using this map engine has been produced it will be tested. The testing consists of both evaluating the functional capabilities and performance. Summary Different philosophies Investigating the map engines led to an important discovery regarding their reliance of preprocessed data. LuciadLightspeed and WorldWind are intended to produce entirely standalone applications that function by themselves. The other three, Carmenta Engine, MapLink Pro and ArcGIS Runtime to varying degrees relies on a studio application that takes data, processes it, and delivers it in a format for the client application to use. The degree of reliance corresponds to the to the order they were mentioned in, Carmenta Engine is the least dependent and ArcGIS Runtime the most. Comparing the map engines is sometimes difficult due to this fundamental difference. Format support LuciadLightspeed performs the best, followed by Carmenta Engine. Both map engines can read all the formats looked at in this project. LuciadLight- speed can use all OGC services while Carmenta Engine cannot use WFS services and the support for WCS services have some issues. It should be said that all map engines can use a WMS service. Trying to give a simple ranking of MapLink Pro, ArcGIS Runtime and WorldWind is a bit difficult, WorldWind is intended to produce a standalone application whereas the two other to varying degrees relies on a studio application to "preprocess" data. WorldWind has some shortcomings in format support, ArcGIS Runtime relies almost wholly on its studio application and MapLink Pro does that too for some formats while reading data straight away requires a high degree of effort. This test and judgement is biased in favour of map engines that directly reads data formats. MapLink Pro and ArcGIS Runtime has quite good support when also taking the studio application into account. Performance In the test on handling symbols WorldWind performs the best, closely followed by MapLink Pro and LuciadLightspeed. Carmenta Engine and ArcGIS Runtime perform relatively poorly compared to the others and end up second last and last respectively. When it comes to handling imagery LuciadLightspeed performs the best overall. There are some dissimilarities between the map engines that make a further ranking difficult, but by large they perform equally well. However WorldWind processes images before displaying them. If an image is relatively "small" this is not an issue, but if the image is "large" the processing takes some time. ArcGIS Runtime cannot directly read images so this aspect is not applicable to it, instead it reads package files which would have been more appropriate to test with. This was however not done in this project. Ease of use & quality of documentation This judgement regarding ease of use is primarily derived from the supplied documentation and my ability to use it. LuciadLightspeed has the best documentation. The documentation for Carmenta Engine and ArcGIS Run- time is generally equal in quality. The documentation for MapLink Pro seems to be targeted for a technically experienced audience with familiarity of this particular field of software. WorldWind is a special case, there is not much in the way of a conceptual documentation or a developer's guide. However all the source code and a javadoc reference is available. In terms of ease of use I would place Carmenta Engine and ArcGIS Runtime in a tied first place mainly due to the simplicity of the map engines. Luciad- Lightspeed comes second place because of its complexity but outstanding guides. WorldWind and Maplink Pro are tied, as WorldWind is pretty complex and the documentation for Maplink Pro did not provide much help. Which Map Engine is the best? No map engine can be said to be absolutely superior in every conceivable way. Depending upon the particular situation the requirements set forth might favour one map engine while disfavouring another one that could have been suitable in another situation. Contents 1 Introduction 8 1.1 Goal . .8 1.2 Limitations . .8 1.3 Structure of the report . .9 2 Carmenta Engine 10 2.1 General introduction . 10 2.2 Developing the application . 10 2.2.1 A simple example . 11 2.2.2 Reading Data . 14 3 MapLink Pro 18 3.1 General introduction . 18 3.2 Developing the application . 18 3.2.1 A simple example . 19 3.2.2 Reading data . 20 4 ArcGIS Runtime 22 4.1 General introduction . 22 4.2 Developing the application . 22 4.2.1 A Simple Example . 22 4.2.2 Reading Data . 24 5 LuciadLightspeed 26 5.1 General introduction . 26 5.2 Developing the application . 26 5.2.1 A simple example . 26 5.2.2 Reading data . 27 6 WorldWindJava 42 6.1 General introduction . 42 6.2 Developing the application . 42 6.2.1 A simple example . 43 6.2.2 Reading data . 44 7 Testing 50 7.1 The testing platform . 50 7.2 Identifying test cases . 50 7.3 Symbols performance . 50 1 7.4 Carrying out the test . 51 7.5 Image handling . 52 7.5.1 Carmenta Engine . 53 7.5.2 MapLink Pro . 53 7.5.3 ArcGIS Runtime . 54 7.5.4 LuciadLightSpeed . 54 7.5.5 WorldWind . 56 7.6 Carrying out the test . 56 8 Test results 57 8.1 Symbols performance . 57 8.1.1 The quality of the measurement . 57 8.1.2 Comments on the findings . 58 8.2 Reading raster data . 58 8.2.1 Carmenta Engine . 58 8.2.2 MapLink Pro . 59 8.2.3 ArcGIS Runtime . 59 8.2.4 LuciadLightspeed . 59 8.2.5 WorldWindJava . 60 8.2.6 Summary: Image handling .