I need to implement a GIS using an exported map from OpenStreetMap.
Is it georeferenced? In that case, is the precision enough to show GPS tracked devices over it without any additional georeferencing work?
Yes, of course it is. OSM is used in tons of web services, routers, mobile devices, desktop software and so on. A non-georeferenced map is pretty worthless, not only since recently.
Related
I need to render video from multiple IP cameras into several controls within the client application.
On top of the video, I should be able to add some OSD such as timestamp and camera name.
What I'm trying to do has nothing to do with 3D since we're talking about digital video with some text on it.
Which API is more suitable for this purpose? Direct3D or Direct2D?
Performance should also be a consideration here.
It used to be that Direct2D was a poor choice for Windows Phone (if you care about that system) because it wasn't supported, but Win Phone 8.1 has it now, so less of an issue.
My experience with D2D was that it offered fast, high quality 2D rendering, and I would say it is a good choice.
You might want to take a look at this article on Code Project. That looks appropriate for your purposes.
If you are certain you only need MS system support, then you're all set.
Another way to go would be a cross platform system like nanovg, which offers nice 2D rendering and would work on a Mac. Of course, you'd need to figure out how to do the video part on non windows systems.
Regarding D3D, you could certainly do it that way, but my guess would be it would make some things trickier to do. Don't forget you can combine the two as well...
Anybody know good solution for offline routing on iOS?
I read some posts but no solution. I know that ArcGis can do it, but they have an expensive plan.
Another good idea, we have an offline map and when we need routing we will go to internet.
But it should be the same map. If anybody know how to do this tell me please.
Offline Map With Routing - iOS
Offline iPhone Map with offline routing
Offline maps with routing for a particular place
Offline maps on IPhone
In my opinion, Graphhopper is the best choice for offline routing. The project is quite active, relies on OSM data, can be embedded or consumed as a service sharing the same core logic.
I have successfully integrated it in a few projects (mostly foot routing in indoor/urban areas).
Depending on your needs, you might have to adapt a few lines of Java code.
About your second subject, think of map and routing as two different features, even if a few SDK provide both.
You can rely on graphhopper to compute an itinerary then represent it on a Arcgis's AGSMapView.
https://github.com/graphhopper/graphhopper-ios
See http://wiki.openstreetmap.org/wiki/Frameworks and http://wiki.openstreetmap.org/wiki/Routing. The entries for some of the frameworks specify whether they can do off-line routing. These wiki pages refer to systems which use OpenStreetMap data, but some of the frameworks can handle other data (e.g., ESRI shapefiles) as well.
Disclosure: I am the author of one of the mapping SDKs mentioned.
I'm looking into a solution that will allow to use OpenStreetMap data to render a 2D top-view vector-based map in iOS, instead of using pre-rendered tiles from a server. Similar to Apple and Google Maps in iOS6+.
I've done extensive research on this matter, but didn't found too much information.
There are a number of iOS apps that do this, but no information on how they implement it. A couple of these apps are:
ForeverMap 2 by skobbler
Galileo Offline Maps
OffMaps 2
The first 2 apps work similar to Apple and Google Maps. The map is drawn in real time whenever the zoom changes.
The last one appears to be using a slightly different approach. It renders the vector data at specific zoom levels and creates tiles which are then used as normal tiles downloaded from a tile server. So the rendering engine could actually be a tile source for the Route-Me library, but instead of downloading the tiles it renders them on the fly.
The first method is preferred.
[Q] I guess one could switch between methods fairly easy, once the OpenGL ES renderer is in place. I mean you could use the renderer as a source for Route-Me to create tiles, or you could use it as a real-time drawer, similar to a game. Am I right?
The closest solution I found is OpenStreetPad. However, it is using Core Graphics instead of OpenGL ES, so the rendering is not hardware accelerated.
Mapbox stated they are working on vector tiles and they'll probably provide an iOS solution for rendering, however it may use Mapnik so I am not sure how efficient will that be. And there's no ETA on since mid 2013.
[Q] Do you know of any other libraries, papers, guides, examples, or some other useful information on how to approach this? Basically how to handle the OSM data and how to actually use OpenGL ES / GLKit to draw that data on the device. Maybe some of the people who have done it can share a few things?
Old question, but there's a new answer.
WhirlyGlobe-Maply will render tile based vector maps on iOS. http://mousebirdconsulting.blogspot.com/2014/03/vector-maps-introduction.html
The technology that powered skobbler's ForeverMap 2 and their current GPS Nav & Maps app is now available on a pay-per use basis. See their developer platform.
Note: they also have a free tier that can be used to develop/launch small apps.
They render the map using OpenGL and "vector data tiles". This vector data tiles contain information regarding road geometry (so you can have routing), POI data & other map features. (eg. boundary limits).
There is a list of OSM-based applications for iOS. It also includes a few open source projects, for example Navit. Navit seems to render the map using SDL/OpenGL. See the Navit iOS wiki page for more information.
I am working on a mobile mapping application (currently iOS, eventually Android) - and I am struggling with how to best support reverse geocoding from lat/long to Country/State without using an online service.
Apple's reverse geocoding API depends on Google as the backend, and works great while connected. I could achieve similar functionality using the Open Street Maps project too, or any number of other web services.
What I really want however is to create a C library that I can call even when offline from within my application, passing in the GPS coordinates, and having it return the country and/or state at those coordinates. I do not need finer granularity than state-level, so the dataset is not huge.
I've seen examples of how to do this on a server, but never anything appropriate for a mobile device.
I've heard Spatialite might be a solution, but I am not sure how to get it working on iOS, and I wonder if it may be overkill for the problem.
What are some recommended techniques to accomplish this?
Radven
You will need to get the Shapefiles (lat/lng outline) of all the administrative entities (US states, countries, etc). There are a lot of public domain sources for these. For example, the NOAA has shapefiles for US states and territories you can download:
http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm
Once you got the shapefiles, you can use a shapefile reader to test if a lat/lng is within a shape. There are open source readers in C, just google. I seen stuff at sourceforge for shapefiles, but have not used these myself.
The Team at OpenGeoCode.Org
If you're looking for an approach based on a quadtree, try Yggdrasil. It generates a quadtree based on country polygon data. A Ruby example script can be found here.
I can suggest good written offline geocoding 3rd party library.
https://github.com/Alterplay/APOfflineReverseGeocoding
I will start on a private project that will require some GPS software on my computer, so far I have been contacting Garmin and Destinator to ask if they have some sort of SDK kit for theire map services. however they could not offer me this in Norway.
I am therefore asking here if anyone here know any kind of map software, capable of GPS and have some decent updates on maps every year, that also can provide me with some ActiveX component which I can embed in my application.
I really only need the most basic functions to setup a destination address and drive.. maybe turn on or off some various switches.
You should be able to get some stuff done with Google Maps.
It's slow, and you'll have to interact with a browser. I'm putting up an open source project to wrap all of it into an easy-to-use component, but until that time, using Google Maps from Delphi is just painful.
Alternatively, you could embed Google Earth into your application. Read here how to do that.
Or generate KML files in Delphi and serve it Google Earth either via a webserver via your local machine. You can have the KML refresh itself, and you can have users click links in the KML that's shown in GE. It's basically a stateless approach like normal webbrowsers. I've done that, and it works ok for simple stuff.
As Francois suggested, MapPoint is quite easy to use from Delphi, but it's not free, and it's slooooooooooow. I remember that adding pins took half a second or so. I'm talking about 5 or 6 years ago, so maybe nowadays things are better. The cool thing about MapPoint is that it renders the map for you in realtime, so it places labels intelligently so that they never clip at the borders of your map.
I've used MapWindow GIS from Delphi too. That was also slow and not very stable, but it's quite easy to use. If you don't know the application, just check it out, it's free.
For all of the tools that are mentioned here, there are ways to import GPS data, and all of them (except for Google Maps) will let you connect a GPS receiver, either directly (GE), or via a plugin (MapPoint, MapWindow).
Last but not least, you could always roll your own mapping solution, which is the route that I decided to take a long time ago.
You have the big names like MS Mappoint, ArcGIS from ESRI...
I remember using Mappoint from Delphi was very easy. Not free though!