I'm trying to visualize GPS points on PowerBI maps offline and wonder what would be the best way to achieve that.
Ideally, I'd like to see the offline mapping to have the same effect as directly using the "Map" visualization - GPS points (in data as longitude and latitude columns) plotted on the Bing map. However, our team will need this function offline, because our users are usually under bad internet connections. Also we are wary about Bing's data sharing policy as our GPS information is highly confidential.
So far I've tried PowerBI's shape map function, which allows me to upload a TopoJSON file and use it offline. However, it looks like shape map is better used for highlighting a region on the map, instead of plotting individual GPS points - shape map doesn't seem to allow longitude/latitude. Besides that, shape map does not have as much information like Bing map, such as showing city/road names and etc.
Is there a way to visualize GPS points offline on PowerBI, but still get enough information about what are around the GPS points? I'm referring to PowerBI here but all things I've been doing are on PowerBI Desktop. I don't plan to publish on the web as this will be my company's internal tool. Thanks in advance!
The built-in mapping functions such as the Map visual powered by the Bing maps API and the Eris mapping do not have an offline mode. Both require an online connection. Depending on the level of detail that you require, I would suggest looking into an R or Python visual with one of the mapping libraries. Here are some examples of the R mapping libraries. But getting the map json files into Power BI will also be an issue and may not meet your requirements on the level of detail that you need.
Also we are wary about Bing's data sharing policy as our GPS information is highly confidential.
I wouldn't worry about it, Bing & Power BI mapping is used by a wide number of organisation including heath and military customers. Your confidential data is more at risk with some one copying your Power BI report and sticking it on a USB drive.
However, our team will need this function offline, because our users are usually under bad internet connections
I would try some other options for offline mapping, for example Google Maps has the ability to down load a section of the map for offline/bad connections. I've downloaded the whole UK and its about 100meg.
Hope that helps
Related
I am working on a GSM based tracking device . i have successfully able to plot the approximate location on google maps using Gmap.net library for windows application and google maps api for android application.I want to mainly do the tracking of the Rail coach .with my current device i gets the approximate location near the railway track.I want to shift that Location /Maker on the near by Rail track.i need help and suggestions on how to achieve this task.please help.
Afaik the gmap.net library does not provide any feature around pinning tracking data, so I guess some manual work might be necessary.
The naive approach is to map your track on your own, google maps etc. is fine. I fact I've used gmap.net once itself to create exactly that.
Then all you need to do is some math (useful key word here is 'shortest path'), to locate the closest matching tracking point and use interpolation to distinguish your anticipated position on the track. You can also add some plausibility checks to speed up the whole process such as "knowing" where on your track you've already been.
I've got experience in real-time tracking for TV events and can go in deeper detail if you want.
I am trying to use HERE Maps to implement the eco-routing algorithm which we developed in our lab that requires real time traffic data as an input to the routing algorithm. So far, we were using INRIX dataset to verify our algorithms, but we decided to move to HERE Maps, and use the Traffic API to harness the power of real time traffic data.
Traffic API was very simple to use, and I managed to get the traffic data for a bounding box. It seems like that the traffic flow is passed for each TMC. My question is how to assign the traffic flow data to the links of the map using TMC. More specifically, I am wondering if there is a way to transform the TMC values to an adjacency matrix so that I can assign the traffics to each link and run my optimization algorithm over that graph? Also is it possible to overlay Open Street Maps (OSM) with the HERE Maps traffic data?
Thanks
You can associate the TMC data you get from the traffic data response to a particular link by using PDE layers LINK_TMC_FC1..5. You have look into our PDE documentation in developer site and tcs.ext.here.com/pde/maps?url_root=pde.api.here.com to see the list of layers provided.
Below is a sample PDE request for the Link TMC. Replace app id and code placeholders with actuals:
https://pde.api.here.com/1/tile.json?&layer=LINK_TMC_FC1&level=9&tilex=496&tiley=358®ion=WEU&release=18131&url_root=pde.api.here.com&app_id={YOUR-APP-ID}&app_code={YOUR-APP-CODE}
For all your other questions on creating a matrix and OSM overlay, you have to write your own algorithm. There is no straight forward function provided by Here.
Can i use osmdroid to save my offline maps in a sqlite db and after show offline some POIS and get distances beetween my location and the location of the POIS?
From a research i figure out that osmdroid not support offline searching for POIS. Is that true?
Its better to search for the lip Mapforge?
With osmdroid, you can
View downloaded, prerendered, map tiles offline via database or several other mechanisms
Plot icons, lines, polygons, etc and attach on click handers for each item
Show your location on the map
So that said, you can get the point for a specific item on the map. If you can get your location, then it's a simple equation to calculate straight line distance.
If you want the points to be offline and searchable, you'll need a database of some sort, a way to populate it and some strategy to search it. This is pretty much what mapsforge is doing. I've done similar things with wikimapia data and it can definitely be done, but there's nothing provided out of the box since osmdroid only handles raster images.
If online is an option, osmbonuspack provides a number of drivers to search several online resources for POIs, including turn by turn directions.
I realize that the question is pretty complicated and may require much research. Hope anybody can help me to get useful resources to achieve my goal.
I want to have a Google or Bing map on my ASP.NET 4 application (C#) to display all my logged in users as points on the map.
I understand that this involves five major problems
Get the location of the device (most likely standard laptop with IE9 browser) based on its unique IP address.
Integrate Google or Bing map with ASP.NET or Silverlight application.
Display the right portion of the map with the right Zooming depending on logged-in users locations.
Finally, mark the addresses as points on the map.
Note that the locations points should be dynamically reflected when any of the locations is changed.
The database is implemented using SQL SERVER 2005/2008R2
There are geo location services that can give you the latitude and longitude given an ip address.
As you mention you would be storing these in a database, getting all the current users would be simple database call.
Integrating a google map into a html page is very simple. You would only have to emit the necessary javascript from your page.
You should mark the points on the map first.
Google maps api has calls to fit the map to show all current points(fitBounds). I am guessing bing would have something similar.
To reflect the current points, you would have to fresh your locations from the database. I highly recommend an ajax call that returns json and using that to replot the points.
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. :-)