The document compares different map APIs based on their architecture, technology, programming languages, databases, platforms, and other features. It finds that Google Maps uses Mercator projection and BigTable database, while Microsoft Bing, MapQuest, and others use REST architecture. Technologies used include JavaScript, XML, AJAX, and programming languages like C++, C#, Python. Databases include PostgreSQL, MongoDB, and proprietary ones. Most APIs support web and Android platforms. The study aims to help users choose an API based on its specific functionalities.
1. Comparative Study of diverse API Perspective of Spatial Data
Zainab Tariq1
and Umesh Chandra2
1
Research Associate, Computer Science, Glocal University, Saharanpur
2
Assistant Professor, Computer Science, Banda University of Agriculture and Technology, Banda
Abstract
Application Programming interface (API) is cipher which enables two software programs to interact with each other.
There are number of APIs available in the market like Map APIs, Facebook API, Amazon API, YouTube API, Flicker API,
Twitter API, Word press API, Drop box API etc. Present study deals with APIs related to Maps that is Map API. Map
APIs are used for navigation purposes, for finding real time locations like railways, road transport etc., and static
locations like eateries, movie theatres, shopping malls, book stores and what not. This study emphasises the
differences among various Map APIs on the basis of architecture used, technology followed, platform, programming
language, open source and android support. This review will help one to choose a particular Map API and take the
advantage by using its specific functionalities.
Keywords : Map API, navigation, architecture, technology.
1.1 Introduction
API is a structure that helps us to build an interface
for application programs to be run on various
platforms like android, IOS and other platforms.
An API equips us with certain subprograms, tools
and procedures for developing application
software. Moreover, API equips us with some
functions and classes which assist us to keep away
from composing of low level cipher to carry out
certain things. API is a set of functions called by
some programming language and not to be
confused with itself being programming language.
A number of APIs exist today for various purposes
– API for web Maps like Google Maps, API for
social media like Facebook, API for E-commerce
like Amazon, API for online videos like YouTube,
API for content management like WordPress, API
for photo sharing like Flickr, API for file or
document management like Drop box, and so
many others.
Web Mapping API is the API designed particularly
for creating maps on web. These APIs comprise of
classes for layers and maps which saves one from
composing the low level cipher for exhibiting
interactive images of map and representing it with
another layer. There is a number of Web mapping
APIs created like Google Map API, Microsoft Bing
API, Yahoo boss place finder API, Map box, Open
layers, Open street, etc.
Depending upon the characteristics, the API is
chosen and worked upon. Discussed are the
various differences based on parameters like
architecture used, technology used, programming
language and other characteristics of this Web
mapping APIs in this study.
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 16, No. 5, May 2018
163 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
2. ;
1.2 Architecture used in various APIs
Architecture of API implies to build a base for
developing an application which is robust and
scalable. The requirement here is that the
architecture should be able to enhance the
interactivity of the software or service.
Architecture of API ensures data to be frisky,
application to be aware of the conditions and
prognostic and should be able to administer
locally.
Basically the idea of architecture is to integrate
loosely coupled services in order to develop an
interface which is easily accessible through web,
android and other platforms. Enterprise Service
Bus (ESB); JavaScript Object Notation (JSON);
Representational State Transfer (REST) are some
standard patterns of design used in making
architecture of APIs.
Google Map uses Mercator projection as it tells
the shortest possible paths between places. In
Mercator, cylindrical projection is used which
draws an imaginary tangent line along the
equator to give constant directions and thus it
shows the shortest and best distance between
places. However, the areas at poles are greatly
distorted thus show larger than their actual
size[1]
. While Other APIs like Microsoft Bing,
Foursquare, Open street, Carto DB, Yahoo Boss
place finder, Mapbox GL and Mapbox APIs [2]
use
Representational State Transfer (REST) based
architecture which helps to geocode large sets of
spatial data through Distributed hypermedia [14]
.
REST allows better navigation by geocoding an
address, retrieving images, creating static maps
with pushpins and creating routes through GIS
like Geocoding, reverse Geocoding, routing and
Static imagery. REST provides Mapnik, a toolkit
for rendering images in these APIs[12]
. The
navigation program is calculated in Map quest via
Navteq architecture and eventually compared to
other feasible routes between the two spots in
order to choose the most appropriate route[3].
Navteq uses GDT (Geographic Data Technology),
DMTI Spacial (Digital moving target indicator),
and Tele Atlas in order to search data from which
is then used to depict the network of roads in a
specific geographic area. Open layers
uses map
renderer which is basically a camera, this camera
is shared by multiple maps and consists of layers
list. The layers have multiple supported
projections and each layer publicizes its
supported projection. The layer renderer options
object stores view-related states for a particular
layer and include features of hue, opacity,
Map API
Esriarc GIS
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 16, No. 5, May 2018
164 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
3. visibility, saturation, etc. Options of the layer
renderer object have a layer. Multiple layer
renderer options may share the same layer.
Therefore, a layer can be out looked in unlike
fashions. The map renderer communicates to
events and creates layer renderers. There is a
control that can listen to map events and camera
events. The map navigation control acts on the
camera. Its types can be described in MVC (Model
view controller) terms[4].
Mercator projection in Google Map [1]
1.3 Technology used
Google map, Microsoft Bing, Map quest, Open
layers, Open street, Mapbox, Carto db, Yahoo
boss place finder map APIs use JavaScript. Google
map and Microsoft Bing also use AJAX and XML
for web development. Ruby on rails and XML is
preferred by Open Street while designing web. In
addition to this Map quest uses Curl technology,
Open layers makes its work in HTML 5, CSS,
ecmaSCRIPT 5. Foursquare have Pilgrim/ Swarm
in terms of technology and uses php/scala when
it comes to programming. Mapbox GL prefers
Open GL 2.0 on web and C++ while programming.
Google Map is comfortable in C++ when it comes
to programming. Microsoft Bing uses Typescript,
C#, Interactive JSON and ASP. Net while Map
quest is multilingual. KML and GML find its
programming work in Open layers. Open street
and Carto db map API relies on Ruby while
programming while Mapbox uses Node.js.
Python, SDK, JSON. Esri arc GIS uses C++, C#,
Visual basic, .NET, Python, java. Yahoo boss place
finder makes use of C#, HTML and JSON on web.
1.4 Databases used in various APIs
In Google maps data is spread over vast region,
therefore we need a no SQL database which will
be able to manage such unstructured data.
Bigtable is a solution for such kind of data. Big
table has no limitation of data size and is highly
flexible for such kind of dynamic data[5].
Microsoft
Bing on the other hand uses its own product
Entity framework 5(dot net framework) to
manage its data. Entity framework 5 supports
domain specific data and not where the data is
actually being stored in the table. Map quest uses
Open Database connectivity, an open guideline
API to access a database management system.
There is no need for a database server as this map
API hosts the location data. There is a provision
of uploading new location data which can be
further modified with the help of web application
suite Map quest fast updateTM [13]
. Open Street,
Open layers, Mapbox, Carto db Map APIs use
PostgreSQL Also known as Postgres, an open
geospatial consortium acquiescent and complete
compliance of ACID [10]
. Post GIS used by Mapbox
GL is an extension of database for PostgreSQL, an
object relational database. Moreover, foursquare
map API prefers Mongo DB(a no SQL database)[9]
as this provides auto sharding layers facility
helping to scale over many nodes which enables
foursquare to manage its data spread over many
nodes[6].
ALTI database used by Esri arc GIS has a
unique memory feature which no other database
supports[8]
. It has a mixed structure that enables
tables residing in the disk with the tables in the
memory making use of a sole interface. SAP
HANA is also used by Esri arc GIS, a relational
database management system[11]
, facilitates ETL
proficiency and inquisitive data processing apart
from being an application server. Yahoo boss
place finder uses its own product Yahoo Query
Language (YQL) for database. This lets developers
run apps faster with very few lines of code and
relatively much smaller network footprint. YQL
helps developers’ access and shape data across
internet through one simple language eliminating
the need to learn how to call different APIs[7].
1.5 Accessible platforms
Google map, Map quest, Mapbox, Foursquare,
Open Street, Mapbox, Carto DB, Esri arc GIS and
Mapbox GL map APIs are supported by android
while Microsoft Bing map AP supports Windows
devices and foursquare both android and
Windows.
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 16, No. 5, May 2018
165 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
4. Most of the mentioned APIs are open source
except a few like Google MAP, Microsoft Bing,
Yahoo Boss place finder.
1.6 Comparative analysis of Different Map APIs
Map Architecture Technology
Database
Technology
Open
Source
Platform Language
Support
Android
Google map -Mercator
projection
-JavaScript
- XML
-Ajax
-Big Table No
-Android
-ios
-Web
-C++ Yes
Microsoft Bing
-REST based :
Geocoding, reverse
Geocoding, routing
and Static imagery
-JavaScript
-AJAX
-Typescript
-Interactive
SDK –JSON
-XML
.NET
-Entity
framework 5
No
-Windows
devices
- Web
-ASP .NET
-C#
No
Map Quest
-Navteq
-GDT
-DMTI Spacial
-AND data solutions
-Tele Atlas
-Curl
- JavaScript
-ODBC Yes
-ios
-Android -MultiLingual Yes
Open layers
-Tile grid,
-map renderer,
-camera layer and
-control MVC
-javascript
-HTML5
- CSS
- ecmasCRIPT
5
-KML (Keyhole
markup
language)
-GML
(Geography
markup
language)
-Post GIS Yes -Web Node.js No
Foursquare
- REST based :
Collects and
organises geo
tagged data
-
Pilgrim/swarm
-Mongo DB Yes
-ios
-Windows
–Android
-php/Scala Yes
Open street
- REST based :
rendering tiles
-rendering maps as
raster image -
mapnik
-XML
-javaScript
-Ruby on Ralis
-Postgre SQL Yes
-Web
- Android
-Ruby
Yes
Mapbox
- REST based :
Imagery tiles from
efficient
compression.
It has fast
compositing and
resilient architecture
-Python SDK
-JSON
-javaScript
-PostgreSQL
- Post GIS
Yes
-Web
- ios
- Android
-Python
-Node.js
Yes
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 16, No. 5, May 2018
166 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
5. Carto db
-REST based
-mapnik
-cartocss
-leaflet
-MBTiles
-JavaScript
-Ruby on Ralis
-Post GIS
-Postgre SQL
Yes
-Android
-Web
-Ruby
Yes
Esriarc GIS
-2D&3D
vector tile byers
renderess tasks
geometry
symbology popups
& navigation
-.NET
-ALTIBASE
-IBM DB2
-IBM
-Informix
Microsoft -
SQL Server
-Oracle
-PostgreSQL
- SAP HANA
-Teradata
database
Yes
- Android
- Web
-C++
-C#
-Python
-java
-Visual basic
Yes
Yahoo boss
place finder
REST based :
- customization of I
frame
-JSON
-JavaScript
-HTML
.NET
Yahoo query
language
No -Web -C# No
Mapbox GL
REST based : -
Vector Tile Format
-Open GL ES
2.0
Post GIS Yes
-ios
-Android
-C++ Yes
1.7 Conclusion
The study compares different Map API’s and highlights the differences in their architecture, technology, programming
language, database, platform, languages preferred in various APIs. Finally, this review shall study the prospects of
mentioned APIs and suggest one to take advantage of particular API’s functionalities.
References
[1] www.GISGeography.com
[2] www.programmableweb.com
[3] Mike Milici & Xue Tan
[4] http://tschaub.net/openlayers.github.io/en/master/apidoc/tutorial-ol3.html]
[5] www.ripublication.com/ijcir17/ijcirv13n8_22.pdf (IJCIR [Shagufta Praveen and Dr. Umesh Chandra)
[6] www.mongodb.com
[7] www.npmjs.com
[8] https://en.wikipedia.org/wiki/Altibase
[9] www.mongodb.com
[10] https://www.postgresql.org
[11] https://en.wikipedia.org/wiki/SAP_HANA
[12] https://en.wikipedia.org/wiki/Representational_state_transfer
[13] directionsmag.com
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 16, No. 5, May 2018
167 https://sites.google.com/site/ijcsis/
ISSN 1947-5500
6. [14] msdn.microsoft.com
International Journal of Computer Science and Information Security (IJCSIS),
Vol. 16, No. 5, May 2018
168 https://sites.google.com/site/ijcsis/
ISSN 1947-5500