Open Street Map API - Open Layers / MapQuest - openstreetmap

I try to understand what is what but I am a bit confused :
OpenStreetMap is free to use map . Possible APIs for this map are :
-OpenLayer
-MapQuest
Why OpenLayer use MapQuest code in OpenLayer example :
http://openlayers.org/en/v3.1.1/doc/quickstart.html
<script type="text/javascript">
var map = new ol.Map({
target: 'map',
layers: [
new ol.layer.Tile({
source: new ol.source.MapQuest({layer: 'sat'})
})
],
view: new ol.View({
center: ol.proj.transform([37.41, 8.82], 'EPSG:4326', 'EPSG:3857'),
zoom: 4
})
});
</script>
Maybe this question is strange but I'd like to know why one API use expresion from others?

You are mixing up APIs with frameworks, services and companies.
MapQuest is a company. MapQuest Open provides various services based on OSM data, for example routing, geocoding and tiles. Consequently MapQuest Open offers various APIs for these services, too, but these APIs are not for interacting with raw OSM data directly.
OpenLayers is a javascript library for displaying maps in web browsers, similar to Leaflet. OpenLayers and Leaflet don't belong to OSM in any way, they just support displaying OSM among other maps. Both have their own API for constructing and displaying interactive maps but mostly these APIs are neither for interacting with raw OSM data directly. OpenLayers and Leaflet can be used to embed all kind of map tiles, for example the one provided by MapQuest Open or even Google Maps.
OSM, in contrast, offers APIs for editing and retrieving raw map data. There is the regular editing API which is mainly for editing raw map data, but not for retrieving it. If you want to retrieve specific features then take a look at the Overpass API instead and the nice interactive frontend overpass turbo.
Also take a look at the list of OSM-based services in the OSM wiki as well as OSM software.

Related

How to using layers of another basemap in a Mapbox basemap

I am using a Mapbox map pad on my website. I would also like to add the footers of maps such as bing-maps or yandex-maps to my mapbox layers to give the user more options. So I want to use layers of other maps while continuing to use mapbox is it possible?
Bing Maps can be added as a raster tile layer. Details on how to directly access Bing Maps tiles is documented here: https://learn.microsoft.com/en-us/bingmaps/rest-services/directly-accessing-the-bing-maps-tiles
If you want vector tiles from Microsoft, there is also Azure Maps (they have traffic data tiles available in vector and raster format too):
https://learn.microsoft.com/en-us/rest/api/maps/render-v2/get-map-tile
https://learn.microsoft.com/en-us/rest/api/maps/traffic/get-traffic-flow-tile
https://learn.microsoft.com/en-us/rest/api/maps/traffic/get-traffic-incident-tile
https://samples.azuremaps.com/?search=vector%2520tile
Note that the Azure Maps Web SDK, uses MapLibre under the hood (a fork of Mapbox) and wraps it with an easier to use developer API. https://learn.microsoft.com/en-us/azure/azure-maps/how-to-use-map-control

Is mapbox geocoder API available for usage without a map?

I am reading through mapbox JS api but don't seem to find any the geocoding API call that would enable me to provide place lookup using my own typeahead component. So basically I am after sending out a query and receiving an array of results.
I do not mean the example on how to place geocoder Control on or off the map, but rather how can I provide places lookup in my own form [Angular, React, whatever] that does not display any map. Is that possible at all?
[UPDATE May 2020]
Mapbox now does allow you to use a Geocoder without using a map (search form with autocomplete)
July 1, 2019: Removed the default restriction that Services have to be
used in conjunction with a Mapbox map. Point of interest results from
the Geocoding API and Enterprise Boundaries must still be used in
conjunction with a Mapbox map.
Examples can be found from the Mapbox website and from Mapbox Github page.
This previous answer shows an alternative plugin/ service called Algolia that you can use to create a Geocoder.
Another alternative is to use Geocodio.
However, both Geocodio AND Mapbox Geocoder (without a map present) do not support POI (Point of Interest)
E.g. A named place including commercial businesses, public buildings, monuments, and parks, etc.
Hope this helps someone in the future!
This is apparently the violation of Mapbox's terms of service:
You may only use responses from the Geocoding API ("Geocodes") in
conjunction with a Mapbox map.
That's the reason why mapbox-gl-js MapboxGeocoder control (which consumes Mapbox Geocoding API) comes in conjunction with a Mapbox map only and means your scenario is not supported.
July 1, 2019: Removed the default restriction that Services have to be used in conjunction with a Mapbox map. Point of interest results from the Geocoding API and Enterprise Boundaries must still be used in conjunction with a Mapbox map.

DashDB ArcGIS Online Integration

Is there a means of integrating the ArcGIS Maps to my BlueMix webapp and integrate it to DashDB? I want to use the Map Layer in my web app and integrate it with DashDB.
I understand there is a possibility of integrating dashDB with ArcGIS Desktop. Can this be done in a way that i can show the maps on my web app?
You should be able to achieve what you want to do in the following way:
Create map layers with ArcMap (or ArcGIS Pro) accessing and displaying data from a DashDB database
Publish the map layers to ArcGIS online
Consume the map layers using an esri leaflet.js layer in the web/mobile app.
You may need to host the map layers on an ArcGIS server in case you want to display live data (in contrast to copy the data from the database).
There are other options to consume the data published at ArcGIS Online, e.g. the ArcGIS API for JavaScript.
Have you read this article? dashDB tables can be made to look like Esri geodatabases.
https://developer.ibm.com/clouddataservices/docs/dashdb/get/load-geospatial-data-into-dashdb-to-analyze-in-esri-arcgis/

Map rendering using OpenStreetMap

Does OpenStreetMap just provide GIS data? To render maps and have a browser based UI to show maps with data, would a developer need to use something like Mapnik?
OpenStreetMap provides data yes, and you'll need specific tools to make map with them. You first need to put the data in a true GIS format, which OSM is not. Think about PostGIS, an osm2pgsql tool is designed for that. Then, you'll need a rendering tool, i.e. a cartographic engine. You can use Mapnik or MapServer. Tilemill or Kosmtik can help you designing your map styles.
Take a look here.
yo can export data form OpenStreetMap and render your own map.
Take a look at
http://www.slideshare.net/jones139/rendering-openstreetmap-data-using-mapnik
http://www.slideshare.net/artemp/mapnik-sotm-2007
There's a fuller list of rendering libraries for OpenStreetMap data here, both free and commercial.
http://wiki.openstreetmap.org/wiki/Renderer
Disclosure: I am the developer of one of them.
OpenStreetMap provides map data out to a wide sprawling ecosystem of different downloads and tools offering developers different map-making and map using possibilities. Here is a diagram I drew which captures some of this:
So the data comes out of the core of OpenStreetMap, in the form of 'planet downloads', one big unwieldy blob of XML (and diffs), but from there it fans out into a range of other offerings to developers, many of which are provided by 3rd parties. Taken together "OpenStreetMap & Friends" provide lots of possibilities.
If you are inclined to run your own rendering system, then yes, Mapnik is a good choice. Powerful and scaleable (most successful OSM tile servers run Mapnik), but takes a bit of setting up. You normally load OSM XML data into PostGIS, and run mapnik from that (tutorials on switch2osm.org)
If you are not inclined to run your own rendering system (for more lightweight web development tasks this seams reasonable!) you don't have to! You can configure LeafletJS or OpenLayers or others to fetch map tiles from a tile server run by somebody else. There are many providers. See the providers list on switch2osm.org and the Tile Servers list.

using external maps with bing map

can i use bing map platform with an external mapping source ?
for example, i want to use bing map siverlight client with my own map files instead of the provided maps. (some areas coverage is insufficiant with bings provided mapping)
Thanks.
Another useful tool you may want to utilize if you don't have ArcGIS Server is MapCruncher, which will take a raster image, allow you to georeference it and produce Virtual Earth compatible tiles.
If you need to display vector data, you can either convert it to a format like KML or use a product called SharpMap to render tiled images.
I am assuming that since this was tagged ESRI, that you want a method to use ESRI products for your data sources... There are a lot of ways you can create your own tiles and use them in Bing Maps. If you have ESRI ArcGIS Server, you can use the ESRI JS API to add your own services to Bing Maps.
you can rewrite TileSource class and override GetUri method