ArgGIS Online is a powerful web platform that provides map services.
You can use one of the many ArcGIS APIs to render maps on web browser or from within a desktop application, or on a native mobile device.
I use the ArcGIS javascript API, and my experience is:
- if you use the javascript API, and have a LOT of data points (say more than 10,000) to draw at one time, then consider hosting the data on your own Web Service.
this is because:
- javascript API does not provide a clustering service
- ArcGIS server will by default, only serve 1,000 items per request. This can leave areas of your map unpopulated.
- requests that are longer than 2,048 characters, require a custom proxy to be hosted, which can be difficult in a production environment
An alternative to using your own Web Service to host data, is to try to re-configure the ArcGIS map to serve more items per query. You can then run a Query using the javascript API, and draw the items individually. You may also want to implement a custom clustering algorithm, to save the browser from having too many points to draw.
However, in my case, the ArcGIS server is outside my control, and so the server only serves 1,000 items per request.
So for my next map, I will be using ArcGIS server to serve up only basemaps and layers.
The data points will be sourced from a custom Web Service.
I will probably also implement some server-side clustering in the Web Service. This is more development work than using ArcGIS server, but gives more control over how the clustering is performed.
If there is one thing I have learned about maps, it is that maps are difficult, and the more control you have over how the map appears and behaves, the better !
references:
ArcGIS online: http://www.arcgis.com/about/
ArcGIS javascript API: http://help.arcgis.com/en/webapi/javascript/arcgis/index.html
ArcGIS proxy: you need to download the javascript API, in order to read about the proxy
You can use one of the many ArcGIS APIs to render maps on web browser or from within a desktop application, or on a native mobile device.
I use the ArcGIS javascript API, and my experience is:
- if you use the javascript API, and have a LOT of data points (say more than 10,000) to draw at one time, then consider hosting the data on your own Web Service.
this is because:
- javascript API does not provide a clustering service
- ArcGIS server will by default, only serve 1,000 items per request. This can leave areas of your map unpopulated.
- requests that are longer than 2,048 characters, require a custom proxy to be hosted, which can be difficult in a production environment
An alternative to using your own Web Service to host data, is to try to re-configure the ArcGIS map to serve more items per query. You can then run a Query using the javascript API, and draw the items individually. You may also want to implement a custom clustering algorithm, to save the browser from having too many points to draw.
However, in my case, the ArcGIS server is outside my control, and so the server only serves 1,000 items per request.
So for my next map, I will be using ArcGIS server to serve up only basemaps and layers.
The data points will be sourced from a custom Web Service.
I will probably also implement some server-side clustering in the Web Service. This is more development work than using ArcGIS server, but gives more control over how the clustering is performed.
If there is one thing I have learned about maps, it is that maps are difficult, and the more control you have over how the map appears and behaves, the better !
references:
ArcGIS online: http://www.arcgis.com/about/
ArcGIS javascript API: http://help.arcgis.com/en/webapi/javascript/arcgis/index.html
ArcGIS proxy: you need to download the javascript API, in order to read about the proxy
Comments
Post a Comment