A tile sent from Nokia Here-Map tiles API, contains at least two POIs that do not exists in real life and also not on other Map services like Google Maps and OpenStreetMap. How can i get accurate/fresh POIs with the Map Tiles Api?
I'm using the service with LeafletJs, and i use a hybrid.day base map and a base one, with the pois parameter set to true and map version set to "newest". The tiles i'm getting effectively contains POIs but it doesn't seem accurate. I wrote to the sales support at Nokia Here, i'm not sure they can help me, but the website also indicate to use stackoverflow for technical questions. Mine doesn't seem like a sales related question or a technical one but i see no other alternative contact.
This is a link to get a tile with incorrect POIs:
https://4.base.maps.cit.api.here.com/maptile/2.1/maptile/bd9e007617/normal.day/17/59178/60113/256/png8?app_id=mVrBstuYsfUVga31l6IX&app_code=xphvU-Uj071dI-UkNaxMrg&lg=fre&pois=true&style=default
The tile contains two POIs that do not exists in real life or on other map services like OpenStreetMap. The two are: "Ecobank" and "Restorant Aku".
The place the map shows is around these coordinates: lat:14.729235451930021
lng:-17.46165559897639
The returned tile shouldn't contains inexistant POIs.
This is an error in HERE database. You should report it through HERE Map Creator
It will go through some kind of quality moderation, so it may take a few weeks. Maybe adding a fresh photo would speed up things.
Related
I would like to know if the HERE map service allows a developer to configure the tiles to display road speeds in some way?
I see that HERE has APIs for road speeds, but I am not after fetching data, processing and drawing it myself. Rather, I have a map control in my project, and that map control uses the HERE service to fetch map tiles, and I wanted to simply have an option to fetch tiles that (also) displays speeds.
Is there such an option? I have been looking through the docs, but haven't found a way yet.
Regarding some volatility information the Map Tile(raster) API supports only
truck restriction tiles: https://developer.here.com/documentation/map-tile/dev_guide/topics/resource-base-truckonlytile.html
and traffic flow: https://developer.here.com/documentation/map-tile/dev_guide/topics/resource-traffic-flowtile.html
Vector Tile API supports only roads, topologies, cartos and labels - doesn't support also any speed info.
Therefore you can use only Fleet Telematics API that returns only speed limits data then push this info as markers into map, See please examples on https://tcs.ext.here.com/examples/v3.1/pde_speed_limits_in_view or https://tcs.ext.here.com/examples/v3.1/pde_speed_limits_along_route
or https://tcs.ext.here.com/examples/v3.1 - there search by keyword like 'speed'
Documentation:
https://developer.here.com/documentation/fleet-telematics/dev_guide/index.html
https://developer.here.com/documentation/content-map-attributes/dev_guide/index.html - we don't have any examples for this new api.
I want to write an application that gives me the exact route of a subway.
When you use Google Maps it just connects two stops linearly, but not the actual way.
Is there a way to move a route anywhere on a map without being bound to roads?
If there's any solution (doesn't have to be with the Google Maps API) please let me know.
Edit:
Example
Google shows the train route like the brown line, but the train actually drives the blue line. What I would like to do is get the blue line so that I can get the coordinates of the route and calculate the curves and elevation.
I know that I could add like 50 waypoint and get get a "fake" route with them, but I would like to have it automatic and not done by hand.
To show the transit directions (subway, bus, tram, etc.) Google Maps uses the data provided by transit agencies in the form of GTFS feeds. This is a responsibility of the agency to provide a detailed shape of the route for the transport according to the GTFS specification. You can have a look at GTFS documentation to figure out how does it work:
https://developers.google.com/transit/gtfs/
https://developers.google.com/transit/gtfs/reference/#general_transit_feed_specification_reference
I hope this helps.
I have an account for Nokia Maps API but am wondering what URL I should use to request tiles through the API correctly? I am using the Leaflet maps API and my URL string looks like this:
http://3.maptile.lbs.ovi.com/maptiler/v2/maptile/newest/normal.day/{z}/{x}/{y}/256/png8?app_id=XXX&token=XXX
It works, but I don't believe I am using the API correctly - I just stole the first part of the URL (http://3.maptile.lbs.ovi.com/maptiler/v2/maptile/newest/normal.day) from the Network tab of dev tools when I checked out Nokia maps in my browser.
In the documentation it tells me I can request based on lat, long and zoom, but not based on X and Y.
Is anybody familiar with Nokia Maps API?
Regarding the original question I'm guessing you have acquired credentials for the Map Image API: http://developer.here.net/docs/map_image/index.html There are a series of interactive examples available, which explain how to get back a static map image using latitude and longitude such as this one here: http://developer.here.net/apiexplorer/examples/api-for-rest/getting-started/basic-map-wh.html All the urls for the Map image API start with http://m.nok.it
Using URLs for the map tiles from the http://here.com website isn't the same service, it isn't an official API (hence the reason it is undocumented) and the URLs could be changed without notice.
Updated
HERE now offers three web-based Maps APIs, and since last year a TMS (Tile Map Service) a.k.a. Map Tile API, which is what I think you are after is now publicly available.
As noted by Luciano Issoe, the correct URLs for the Map Tile API are now publically documented see: https://developer.here.com/rest-apis/documentation/enterprise-map-tile
Alternatively, if you want to use an interactive map service with Nokia's mapping data, your best bet would be to use the Maps API for Javascript described here:
http://developer.here.net/docs/maps_js/index.html
It seems that it´s a documented service now: https://developer.here.com/rest-apis/documentation/enterprise-map-tile
To retrieve a map covering a specific area using the Map Image API, add two points of interest to the map for the top right and bottom left corner and then use the nomrk to make the POIs invisible:
http://m.nok.it/?w=512&poi=52.6764,13.7636,52.351,13.0185&nomrk
I am trying to get the distance traveled on a transit route -- particularly San Francisco MUNI, but the standards NextBus, GTFS, and Google Maps API appear to be universal. I'm comfortable using any of these APIs, I'm just not sure how to go about this problem.
The easy way - ask Google Maps (this using webservices, but there is also the javascript API):
http://maps.googleapis.com/maps/api/directions/json?origin=37.7954199,-122.397&destination=37.7873299,-122.44691&sensor=false&mode=transit&departure_time=1348109609&alternatives=true
this JSON includes distance traveled, but there are two issues:
Google does not allow you to use this data unless you're displaying a map, which I don't want to do
I would need to ensure that the distance returned is for the correct route/line, since it can/will give multiple routing options. This is probably doable but would require more logic.
EDIT: using alternatives=true (or provideRouteAlternatives: true using the javascript API) only returns a maximum of 3 routes, which here in SF often doesn't include the route I'm looking for (other transit agencies, multiple lines on the same route, etc). So this isn't such a great option.
NextBus:
example route config:
http://webservices.nextbus.com/service/publicXMLFeed?command=routeConfig&a=sf-muni&r=1
The coordinates for each stop are given, but connecting the dots on those is not the same as the route taken -- it will cut corners, etc, and I need this to be accurate. The actual route taken is given under <path>/<point>, but I don't see any obvious correlation between stop and path coordinates. Plus, NextBus says in their documentation (p.10 near the bottom) that you should NOT connect points between <path> segments, they're only meant for drawing on a map and can overlap.
GTFS:
The GTFS data also separates stop and "shape" coordinates (like NextBus paths). Unfortunately, the coordinates are slightly different for the same stops between NextBus and GTFS (rounding), though the stop ID/tags are the same. Also, the data files are in the megabytes, and I need to use this for a mobile app. I suppose I could put all the data in a database and query that, but that still leaves figuring out how to correlate the stops with the shape. The "shapes_distance_traveled" column in the shapes.txt file is especially promising. MUNI chooses to leave the optional "shapes_distance_traveled" field out of stop_times.txt, though.
Any advice would be appreciated, I understand this seems like an epic task to get a simple value. Maybe I'll just throw a map in to legitimately use the distance :)
Instead of using Google Maps, I would look into the un-encumbered licensing of OpenStreetMap. There are multiple
routing engines that can use OSM data. Personally, I would use routing in PostGIS or SQLite, but depending on your skillset you might choose another.
You've clearly done your research, (+1), and as you said, the easy way is to ask Google. If it is worth for you then you might want to look into purchasing a business licence to use the Google Maps API, and negotiate with them about the requirement of displaying a map. That's the only legal way I can think of with the Google API. Alternatively, you can try building you own routing engine with data from the TIGER data set, which is freely available from the US Census Bureau, but again, as you said, it may seem like an epic task. :-)
So what I'm trying to do is the following:
Have a map (such as Google Maps or questMaps). It doesn't matter at all which API I need to use.
On that map have an overlay on the streets. So say (for example) the street has bad lightning at night, it will be colored red. If it has good lightning it will have a green overlay.
Based on the overlay the map creates a custom route (for example the user only wants to walk on the green/well lit streets).
I have no idea how to accomplish this (especially step 3).
First, you'll have to decide what data you need. How do you categorize certain streets as lit or unlit? What if some parts of a street are well lit and some have no lights? Do you need to know the location of every streetlight in your area? What if lights burn out?
After figuring out what data you need, you need to build your dataset. I'd be VERY surprised if this data already exists, so you will probably need to gather it yourself. Either go around town and take notes, or crowdsource the project, or figure out some other way.
Once you have gathered your data, learn the drawing API of whatever mapping tool you wish to use. They all should have functions in their API for drawing colored lines (for streets) or points (for streetlights) on top of an existing map.
Finally, learn the navigational API of the mapping tool you chose. You're right, this is a hard step. I know Google Maps lets you specify certain waypoints when requesting directions; maybe your app can calculate well-lit waypoints and feed them to Google Maps' Directions service to influence the route it generates.
Good luck!
For custom routing, you need to read up on "Graph Theory". This ignores the geography of the street map, and considers it as a set of junctions (nodes or vertices in the graph theory jargon) connected by edges. You can assign weights to edges - these could be lengths, travel times, ones and zeroes etc. Anything. They can have no relation to the position on the map.
So for your application, you'd assign a large weight to unlit streets, and a small weight to lit streets, then use a standard minimum-weight algorithm to get a route from one node to another.