Maps/GIS in Singapore Summary

I have few years of software development of various maps API, and I want to make a summary of my experience.

For simple website embedded maps, the most used is Google Maps, and it is the easiest one to implement. Users just need to tell a location in a map, and that is it.

For business usage like foursquare, streetdirectory, they are using customized OpenStreet maps, and 3rd party map API like OpenLayers, Mapbox, and Leaflet.

For government related applications, the most used is ESRI ArcGIS maps, which is so-far the most powerful player in enterprise GIS industry. ESRI ArcGIS is mostly for professionals, and they have fully packed GIS tools and  APIs targeting different platforms.

There is a rising trend using Tableau for Data Analytics interaction with maps, although they have really simple and slow maps.

Singapore Online Maps for normal users:

  1. Google Maps: easy to use and implement
  2. Gothere.sg: super fast and up to date
  3. Here.com/Bing Maps: minority usage
  4. Esri Maps: rare usage 

Government/Organization Maps:

  1. OneMap by SLA: flash based, but lots of accurate data up to date, the only one provides public JavaScript API in Singapore content
  2. Whereto.sg by ESRI Singapore: flash based, average map data
  3. URA Maps by URA: flash based, master plans, car park, private housing
  4. HDB Maps by HDB: simple but good for HDB data

Development Experience:

    1. Google Maps
      1. Google Maps JavaScript API V3
      2. ArcGIS Link for Google Maps JS V3: We use this link for consuming ArcGIS service and simple query tasks.
      3. For Google Maps, they also have Geocoding Service API, Places API, Static Map API and the Street View Image API, etc.
      4. If you have a good sense of design and lots of time, you can style Google Maps  online:  https://snazzymaps.com/explore, and it is very simple to display a styled map using JS API.
      
         var mapStyle = [....];
         var style = new google.maps.StyledMapType(mapStyle, { name: styleName });
         map.mapTypes.set(styleName, style); 
         map.setMapTypeId(styleName);
      
  1. Here/Bing Maps: no experience
  2. Esri Maps: a lot of fun..
    1. a. ArcGIS JavaScript API: most popular
    2. b. Native mobile APIs: not easy to do
    3. c. Flash/Sliverlight APIs: no longer popular as HTML5 rising
    4. d. .NET/C#, Java APIs for desktop application
    5. e. REST API: if you want to use a lot of AJAX, remember to set dataType to JSONP for IE….
  3. OneMap
    1. a. http://www.onemap.sg/api/help/, not really a help but all ugly documented, basically JavaScript
    2. b. Before you need to register http://www.onemap.sg/home/apireg.aspx
    3. c. They have lots of public data for displaying on map, which is avaiable through data.gov.sg. For instance, schools, hospitals, parks, sports centers, etc.

Spatial References: It is definitely a headache to parse points in different coordinates system.

  1. 4326 (WGS 1984 ) in decimal degrees: Google Map, common GPS data format
  2. 102100/3857 in meters: WGS84 Web Mercator
  3. 3414/SVY21 in meters Singapore SLA
  4. 4757 SVY21 in decimal degrees Singapore

For ArcGIS, there is a GeometryService which can convert coordinates in different projection, and you can use AJAX to accomplish this without using ESRI JS API.

Advertisements