I have been assigned a task to help build a mobile app, which only shows terrain view of map with a fixed (min/max) zoom level based on mobile phone position and moveable markers which are provided by our server in json format (vector with speed, directions, etc) .
Since I haven't a big experience dealing with GIS data, how could I serve the tiled images to client without having to query a 3rd party service?
I only need the static images plus a custom json to client, should i build a server or use a 3rd party service(gmap,etc).
Given the amount of expected load and the restrictions set by 3rd party services on limitation of storing or even caching data on local machines is what i try to avoid. Contribution to the 3rd party such as a Google map is something I personally dislike, OpenStreetMap though is better from my point of view.
Example
I have the London Territory which it isn't required to maximize Zoom, need to serve its Terrain point of view, based on OSM data for highways/rivers etc, a special json is generated from server-side which both tiles+custom json are supposed to be delivered to client, in order to sync and present a response to clients action.
Since it rather unlikely for the terrain view (tile) to change for like the next year, and I can't cache from 3rd parties, how can I serve this?
Conclusion just for the record
Well after a review and research we decided to go with Leaflet at client side since it looks mature, build our tilesets with TileMill and serve PNGs.
The application will use own tiles for rendering terrain view of major cities, with availability for zoom (at fixed levels) , if any user wants to view other cities the application will try to connect to server and start caching tiles that it receives, but in favor of NOT consuming all of phone memory or ram, it will limit its caching on <100MB (guess that is enough).