Using Bing Location API with 3rd party map - openlayers-3

I'm trying to determine if it is allowed to use Bing Map's Location API and display and use the results in conjunction with a 3rd party map, such as OpenLayers.
I've dug through their license agreement and can't find clear direction one way or another.
The primary portion dealing with this seems to be section 3.2. General Restrictions.
(d) Use Content, including geocodes, other than via an authenticated call to the Services and/or in conjunction with a Bing Map.
(i) Use Content other than in combination with the Services and not separately.
I've focused on these two restrictions in particular. (d) implies to me that it is possible to use without Bing Map, as long as the Content is being access through the appropriate, authenticated Service. However, does (i) exclude independent use?
Google is much more plain text about this:
If your application displays Google Places API Web Service data on a map, that map must be provided by Google.

You can use any of the Bing Maps services with 3rd party map controls provide they use the Bing Maps map tiles. OpenLayers, Leaflet, and many other 3rd party map controls provide a way to use Bing Maps tiles already. Here is an example of using the Bing Maps tiles in OpenLayers: http://openlayers.org/en/latest/examples/bing-maps.html

Related

Styling the traffic in Xamarin.iOS

Is there a way to change the style of the default traffic lines that appear when MKMapView.ShowsTraffic is set to true?
Thank you.
As you have probably already found out, the farthest you can go with traffic styling is exactly that one boolean variable showsTraffic that either shows it or not. MapKit is not really customizable apart from annotations and that's what you have to live with if you're not willing to use a 3rd party map provider. In my mind you have two choises:
Use a custom tile renderer with MKMapView
You can use the MKTileOverlay class coupled with the MKTileOverlayRenderer to fetch map tiles from a 3rd party service that supports tile fetching and customization, and then show those tiles instead of the default Apple map. One such service is Google Maps Tiles API but you need to request access to it from Google (it's not part of the normal Google Maps API) and it's paid.
If you're still willing to go that route, you can follow the Customize MapKitā€™s MKMapView with Google Maps styling wizard article on how to create your custom style and use it to request tiles from the Google Server. However, you should NOT use the Google Maps API address mentioned in the article, as circumventing the official Google API's and making requests straight to their servers is strictly not allowed and will get you banned and/or in trouble. Instead, you should use the official API I linked to above.
Use another map control altogether
I'm fully aware that the above is a lot work for just customizing the traffic lines, so if you're not willing to invest a lot of time and money, I'd suggest that you use another (customizable) map control instead of MkMapView. There are plenty of different options available, both free and paid.

I need an API to plot waypoints and give me a route through them, and to give me city population. Which API should I use?

I'm making an iOS app that needs to be able to find the most populated cities within a radius from a certain point, and to calculate a route that passes through a certain number of those cities, that satisfy a certain time constraint. I'm planning to use Google to give me polylines that I can put directly on an Apple Map in the Mapkit for Xcode. I've looked into the Google Maps SDK for iOS, and Google Places. Google also has a Directions API, and a Distance Matrix API. With so many API's, I'm slightly confused about which one I should use, and for what.
Additionally, do Google API's provide city population, or should I find that via another database?
You can use Google Maps URL Scheme to get directions for Google Maps iOS.
If you are ever confused about which API to use for Google Maps, you can use API picker.
There is no Google API that give city population, so you would need to find it with a another database.

Accessing Map Tiles of MKMapView

I'm currently developing an app that needs to display a map of where the user is currently located in the world. For technical reasons, I need to access every map tiles as an image (png/jpg) before going in the rendering pipeline.
I have tried 3rd party services like MapBox, MapQuest as they have a REST api that enables me to receive a png/jpg of a tile according to the requested location. The issue here is that MapBox isn't free, so I was wondering if there was a way to access the tiles that Apple provides in it's maps app. What service are they using under the hood? Would I be violating some terms of use by going with this approach.
Please note that using some integrated "do-it-all" UIMapView is not an option for me, I need the image directly.
Thanks
Google has a REST API. You can see the details here https://developers.google.com/maps/documentation/staticmaps/?csw=1. It does cost money if you go over the usage limits.
I manually download Map Tiles for my app, but I don't use MKMapKit. I have my own MapView and I am using a combination of MapBox, Thunderforest, CalTopo, OSM, and map tiles that I generated and host on AWS. All of them have a pretty easy map tile URL scheme, but you do have to pay for most of them.

Which Maps API should I use?

I am creating a webpage that includes maps for my software engineering thesis. The page will include following features:
Show a specific location and save it to a database;
Showing different roads in the same map and save then to database;
Getting the nearest road that passes nearby a specific location pointed by a user - a little search function;
Users might be allowed to create different roads, which can be saved in a database.
The thing is that the service (API) used should be free. For this reason, we might not be using Google Maps.
We are using Java for the Model Classes.
Which maps API can I use?
How can I ask it which of the roads is nearest to a certain point (location) on the map?
Google Maps API is Free as long as you are not using more than a certain amount of traffic. If its for a class project it should be fine, but if that project turned into a commercial site, it would become expensive.

How can i download individual map tiles from the Google Maps SDK (for iOS)?

I've been checking out the new Google Maps SDK for iOS that allows you to bypass Apple Maps for map related features in your app!
https://developers.google.com/maps/documentation/ios/intro
The SDK seems fairly easy to use, but i want to know:
If it is possible to use the SDK (are there API's) to download individual Map tiles?
If so, how?
Ive looked at the documentation given on their developer portal and it says the following:
https://developers.google.com/maps/documentation/ios/map
The key class when working with a Map object is the GMSMapView class. GMSMapView handles the following operations automatically:
Connecting to the Google Maps service.
Downloading map tiles.
Displaying tiles on the device screen.
Displaying various controls such as pan and zoom.
Responding to pan and zoom gestures by moving the map and zooming in or out.
Responding to two finger gestures by tilting the viewing angle of the map.
It seems like the downloading of the tiles happens automatically, or are there API's that allow manual access to the tiles?
If not, any workarounds would also help!
The documentation and header files do not indicate any way to download individual map tiles.
Even if you would find a workaround, you would not be allowed to use it. See clause 10.1.1 (a) in the Terms of Service:
No Access to Maps API(s) except through the Service. You must not access or use the Maps API(s) or any Content through any technology or means other than those provided in the Service, or through other explicitly authorized means Google may designate. For example, you must not access map tiles or imagery through interfaces or channels (including undocumented Google interfaces) other than the Maps API(s).

Resources