My application completely on maps which show pins and route information and distance between two pins.
For this i am trying to do using OSM maps instead of Google Maps because google maps had certain
limitations if user are increased.So my client wants other maps instead of Google maps.Then after research i came to know OSM is other approach.But it has some limitations for using tile server.But i do not understand what it is.Can any one please tell me what it is and is it better to go with OSM
A tile server is the service that generates rendered images (tiles) from a database. Hence it requires a lot of storage capacity for both the database and the rendered tiles. Bandwidth and CPU are required, too, but depend mostly on the access frequency of your tile server.
There are also several non-official OSM tile servers with a less restrictive usage policy. However, if they don't fit your needs and you want to know more about setting up your own tile server, visit switch2osm.org.
As far as I know, a Tile Server is a server that hosts the OSM map. You can create your own Tile Server and replicate data to that server from another Tile Server.
Related
I am currently developing an Android app which will show online maps relating to point of interests nearby the current location of end-users. I am using osmdroid, osmdroidbonuspack and MAPNIK as tile provider.
My main concern is the tiles providers' usage policy as I would like to avoid the "forbidden" responses when users start using the app. I don't expect to have too many users but just in case.
Checking the OSM (MAPNIK) usage policy, it says that it is not allow to use the maps in an app that is distributed without prior permission. I asked for that permission but in case I did not get it, I was thinking to use MAPQUEST maps so I registered in mapquest website to get a private key to be used in the app. The problem is that I don't see any way to add the MAPQUEST KEY when using osmdroid.
Summarising I have two questions:
What is the best tile provider in terms of usage policy to publish an android app?
In case to select MAPQUEST, how can I add a private key? Why does it not required to add a MAPQUEST key when using MAPQUESTOSM? Is completely open free?
Thank you very much,
Regards,
Since you're talking about OSM, I assume you are referring to MapQuest Open (OSM-based), not standard MapQuest (proprietary data).
MapQuest Open doesn't require a dev key for tile download. You just specify the base URL for MapQuest and you're ready to go. Details can be found on the OSM Wiki.
MapQuest has asked to be notified by devs who intend to deploy anything that might request larger volumes of tiles. For an app, this obviously depends on the user base. Back when I built MapQuest tile support into my own app, I notified them and asked if they needed anything else for me, and I was simply told to go ahead – no further steps required.
The tile usage policy wiki page already lists several alternative OSM tile providers. The best one depends on your specific requirements.
I'm creating an application to allow user to use both online and offline map, online map i use Google map API, offline i use open street map (as Google map cannot be downloaded or cached according to their policy), how do I download the map partially ?
For example, now i have one destiny with coordinates x, y, how do I download map area around this coordinate and save on my device for later use, and later how do i load it out ?
Currently I can only display and zoom in - out with map view.
I recommend mapsforge, you can do offline maps for Android and even for the Desktop. It requires a lot less bandwidth compared to tiles with high zoom levels. Downside is that you'll have to create one map per area on your own servers like I do for graphhopper.
Are you talking about a raster map consisting of tiles or a vector map? Downloading large amounts of tiles from the official OSM servers is against their tile usage policy because these servers run on funded resources. However you can render your own tiles, for example with TileMill and Maperitive.
If you instead want to use a vector map then just go to the OSM wiki and follow the Download link on the front page.
For really small areas, say some streets, you can use the regular API. For larger areas, say a city, you should try the Overpass API. And for anything larger the best is to use an area or country extract. Afterwards you can use tools like osmosis, pbftoosm and osmconvert to process the data further.
Note that you still need to render this raw map data to a vector map.
You should have a (deep) look at the wiki of openstreetmap.org and search the web for "tiles offline osm".
And there is a project called osmdroid. It has a widget with most of the features of the Google Maps Widget. There is a offline tiles provider which can leverage downloaded tiles (cached and zip-files created with special tools).
One of the biggest problems in this area is that most tiles-server do not allow to download big areas of tiles for offline usage. If you use a tool like Mobile Atlas Creator you will get blocked by the tiles server and only download pictures which tell you "you are blocked".
So if you want to provide really big areas for your app-users with higher zoom levels (>14), you have a problem. But if you just provide a map for a small city, you could try to use one of the open tiles servers (AFAIK MapQuest is one of those with more liberate download policy) or buy a certain amount of tiles from the commercial providers (see wiki, I don't want to advertise here).
It would be nice if there was some kind of peer-to-peer file sharing of current maps. Because the license of OSM (at least how I understood it) says, that it's possible to sell maps based on OSM data, but those maps can be shared and published in any way.
If anybody finds a solution for sharing maps (without much costs of AWS/provider/cloudfront/...) this would be interesting for many Android App programmers. The advantage of osmdroid is that all installed apps can reuse the same maps.
I can't find relevant answer in the internet.
I want to use Openstreet Map offline as getting the map inside the sdcard and develop for Android app.
I can't find step by step guide how to save into sdcard. Then develop offline map.
Many thanks.
Not sure if this is a good question, but I will try to answer:
As #scai says, there is the #osmdroid toolbox that adds a widget to display OSM map tiles. This rendered tiles can be cached or downloaded from the OSM servers (respect TUP) and shared offline.
There are also other solutions to realize it https://wiki.openstreetmap.org/wiki/Frameworks
But please keep in mind, that it's usually not that easy:
maps get outdated and you wan't to update them at client side
map servers are shared goods and high speed bulk download is a shame
quickly your users will request geocoding, routing and all the features of Google Maps
quickly you want tot display more complex information on top of your widget
So I encourage you to think about what needs to be done first (also for further versions) and then pick the right toolbox :)
I want to develop an Android Application the gives the distinct map of my college. Can anyone tell me what it takes to develop such a service. Is OpenGL necessary for such an application? The basic idea is to have something like Google maps that shows where the user is and directions.
My college is situated in a hilly region so the google maps images are not very clear. Can I use Google Maps and perhaps modify it in some way so as to build a crisp clear application? Or is it better to start afresh?
OpenGL isn't necessary for a mapping application (although it can be used), in fact most mapping applications, Google maps included, use pre-rendered image "tiles". Each tile covers a set geographical area and includes all the information that the user may need.
A good application for generating tiles is TileMill. Tilemill needs mapping data to generate the tiles and a good source for this data is OpenSteetMap. Once you have created your custom tiles you can use the android location api to get the users location and display the relevant tiles with a marker.
Another option is to use something like Mapp although this costs money.
Within my Android application I display some data within a map. To do that I currently download some map data from an OpenStreetMap tile server and store it locally (so that users can access an already used map without causing traffic again).
Now I have seen some Android apps using other map data/sattelite pictures (perhaps from Google?). Unfortunately I could not find any tile servers that offer the same principle like OSM where it is possible to cache the map tiles locally. So does anybody know of similar projects/tile servers that are not OSM but provide the same functionality?
Elmi...
I didn't use tiles images of map for google..
But I have one sample link which provide tile image from google
Tile Image of Google Map
Maybe on MapQuest : http://developer.mapquest.com/web/products/open/map
Aerial view and others
In case somebody has the same problems: there exists some Android code at http://sourceforge.net/projects/libwlocate/ which already uses OpenStreetMap, Google Map and Google Sattelite view optionally for drawing Maps.