We need a graphical component (view) for rendering maps from any WMS services for Android andn iOS. My researches only show that there is basically only the Google Maps API available as Android/iOS library (MapView).
Before programming a WMS view lib by ourselves, are there any (free or licensed) WMS view libraries for those OSses available, which can be used in own apps? We tried using OpenLayers in a WebView, which is not really satisfying from a performance point of view.
thanks for your help
I think this will fit your requirements:
https://confluence.prodevelop.es/display/GVMN/Home
From their homepage:
gvSIG Mini is a free viewer of free access maps based on tiles
(OpenStreetMap, YahooMaps, Microsoft Bing, ...), with a WMS, WMS-C
client, address and POI search, routes, hybrid location and many more
things. It runs with both on/off-line modes.
While it is packaged as an application rather than a library, the source is available (GPL) so you should be able to extract what you need:
https://confluence.prodevelop.es/display/GVMN/Android+Download
https://svn.prodevelop.es/public/gvsigmini/
I have tried using Osmdroid API for this, but still without success. This requires modifying several java classes as XYTileSource and BitmapTileSourceBase.
osmdroid - OpenStreetMap-Tools for Android
There are applications in the Android Market that can make this work perfectly as OruxMaps but not have an API for development. : (
Nutiteq SDK can do this. WMS sample works with EPSG:4326, but SDK supports also other projections and you can modify the map class to use those. Disclaimer: I'm the developer of it.
Update in 2016: updated links, removed obsolete 3 year old references
Look at OpenStreetMap. It provides maps for both iOS and Android
http://wiki.openstreetmap.org/wiki/Apple_iOS
http://wiki.openstreetmap.org/wiki/Android
Api - http://wiki.openstreetmap.org/wiki/API_v0.6
Hope, this helps you.
We are using the openlayers client. Yes I know it's a Web Client but you can use it in your WebView.
http://openlayers.org/
https://openlayersbook.github.io/ch10-openlayers-goes-mobile/example-01.html
I have a few apps with openlayers maps. Some of these uses online map servers and some uses tiles stored inside the app (offline maps).
For interactions with webView, we use JavaScriptInjections
Related
I'm working on indoor navigation application, I need to build map with 3D overlays, in addition I need to move, zoom and rotate the map using the touches.
so when I searched about that I found google maps API and some strong libraries such as LibGDX, I worked on LibGDX with TiledMap, but I faced some problems in touches and animation, so I think the google maps API is more powerful.
can I use google maps API for indoor maps only, like this image:
if yes, please tell me because I'm not starting to learn it yet, else, what the best library can I use to do that and if there is good tutorials?
I will be grateful for help.
Alright, in my opinion you have tow major choices:
You do it appropriatly with a real mapping software. Then I would suggest you to use cityGML or indoorGML, especially when you have navigation in mind. There are tools like Esris city engine, deegree 3D or 3D city DB which might be of help. Then there are things like the ArcGIS API for building your application - but beware, the implementation on mobile devices is very buggy in my experience. There are also free Java city/indoorGML libraries that you can use, not sure on their support for Android though.
Meanwhile Google Maps API is supposed to support 3d as well, but I doubt it works for real 3d as I've not seen custom buildings yet. There might be a compromise using Google Earth API and overlay it with a KML indoor model. The possibillities are of course restricted with KML, on the other side, city and indoor GML is fairly heavy workload while sketchup and KML is lightweight.
The maybe better way would be quick and dirty: Make a browser application using WebGL. Then you can use JS libraries like ThreeJS which is fairly easy. This has the advantage to be platform independent, very customizable and well looking, the Android Chrome browser supports WebGL as well. For navigation you would have to build your own logic.
In our app we do use the Google Maps API a lot. The app (web) is build in Jquery, CSS, HTML.
The app runs in the browser.
But we like to add the navigation functions like the Android Google Maps native in our webapp.
Is that possible with the Google Maps API or do we need to convert to native to realise
something like that?
I just wrote a long winded answer introducing the Directions service, luckily I re-read the question before answering...
No there is no Javascript equivalent of the android navigation services unless I'm very much mistaken. I imagine it would be possible to create a custom solution (I presume you want the route to update as you travel based on your gps coords etc) leveraging the route-parts returned from a directions request but this would be none trivial.
I would have thought the simplest solution would be to pass the start and end points of your route to the native maps app, however I am no expert at Android development (or interaction between a web app and a phone).
First of all, I would like to ask, CAN YOU integrate Bing Maps within an Android app?
Secondly, if possible, what are the advantages Bing has over Google Maps API and vice versa?
Updates
This Android SDK v1.5is now deprecated
see this link for proper use of BingMap using AJAX controller
Open Source Bing Maps SDK of course it's not official so there is a con right off the top, looks a bit dated but then again the google map api for android in my opinion is a bit dated, but you can work around most limitations.
Seems like both of them want to keep the really "good stuff" to themselves, built in competitive advantage for them.
As far as pro's and con's it depends on what you are trying to do. I don't think there is any perfect solution out there, Decarta which is a bit more free in it's usage restrictions than Google or Bing Decarta Dev Zone and they have a broader range of use API's in my opinion, for instance I like their POI Api vs. using places or yelp etc.
I'm currently working on migrate the legacy Android SDK v1.5 to modern Android platforms, also I'm trying to port the capabilities of Android SDK 1.5 to Bing Maps SDK v8 (v1.5 uses Bing Maps SDK V7).
Please see my Github repository, the master branch is only used for compacibility of Android SDK v1.5, if you want use Bing Maps v8, check out the V8WebControl branch
https://github.com/pengan1987/BingMapsAndroidSDK
Also you can see the video shows how the SDK v8 working
https://www.youtube.com/watch?v=wfMLfyjMTuw
In addition to the Open Source Bing Maps SDK you can use the Bing Maps V7 AJAX control in Android apps. This is the recommended approach as the open source app is old and designed for older versions of Android. Also it is basically just a wrapper of the AJAX control anyways. If you are using PhoneGap then take a look at these blog posts:
http://www.bing.com/blogs/site_blogs/b/maps/archive/2013/06/28/cross-platform-development-with-bing-maps-and-phonegap.aspx
http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/797/Getting-the-shortest-route-directions-to-items-using-the-Directions-Module.aspx
http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/795/Showing-GPS-position-on-Bing-Maps-with-PhoneGap-Apache-Cordova.aspx
http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/794/Bing-Maps-on-IPhone-with-Phone-Gap-Apache-Cordova.aspx
First of all, I would like to ask, CAN YOU integrate Bing Maps within an Android app?
Secondly, if possible, what are the advantages Bing has over Google Maps API and vice versa?
Updates
This Android SDK v1.5is now deprecated
see this link for proper use of BingMap using AJAX controller
Open Source Bing Maps SDK of course it's not official so there is a con right off the top, looks a bit dated but then again the google map api for android in my opinion is a bit dated, but you can work around most limitations.
Seems like both of them want to keep the really "good stuff" to themselves, built in competitive advantage for them.
As far as pro's and con's it depends on what you are trying to do. I don't think there is any perfect solution out there, Decarta which is a bit more free in it's usage restrictions than Google or Bing Decarta Dev Zone and they have a broader range of use API's in my opinion, for instance I like their POI Api vs. using places or yelp etc.
I'm currently working on migrate the legacy Android SDK v1.5 to modern Android platforms, also I'm trying to port the capabilities of Android SDK 1.5 to Bing Maps SDK v8 (v1.5 uses Bing Maps SDK V7).
Please see my Github repository, the master branch is only used for compacibility of Android SDK v1.5, if you want use Bing Maps v8, check out the V8WebControl branch
https://github.com/pengan1987/BingMapsAndroidSDK
Also you can see the video shows how the SDK v8 working
https://www.youtube.com/watch?v=wfMLfyjMTuw
In addition to the Open Source Bing Maps SDK you can use the Bing Maps V7 AJAX control in Android apps. This is the recommended approach as the open source app is old and designed for older versions of Android. Also it is basically just a wrapper of the AJAX control anyways. If you are using PhoneGap then take a look at these blog posts:
http://www.bing.com/blogs/site_blogs/b/maps/archive/2013/06/28/cross-platform-development-with-bing-maps-and-phonegap.aspx
http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/797/Getting-the-shortest-route-directions-to-items-using-the-Directions-Module.aspx
http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/795/Showing-GPS-position-on-Bing-Maps-with-PhoneGap-Apache-Cordova.aspx
http://www.soulsolutions.com.au/Blog/tabid/73/EntryId/794/Bing-Maps-on-IPhone-with-Phone-Gap-Apache-Cordova.aspx
I'm looking for a platform for showing custom maps on android mobile phones and tablets.
It seems like Google's MapView is the most common (or the only?) maps platform for the Android, but my problem with it is that I can't use my own custom maps with it.
Is there any 3rd party custom maps platform for the Android? If not, can someone please try to lead me into a way to implement my own solution?
I need all the basic map features such as - Panning, zooming, layers.
I'm still very flexible with methods of how to implement my map data, so every suggestion counts!
Thanks!
OpenStreetMap supports offline and online maps. OSM API has all the features that Google Maps API has, same (almost) principles apply on OSM as they do on Google Maps.
For the #Spacedman answer, yes you can integrate the HTML that contains the js with OpenLayers in WebView
OpenLayers (mobile version) plus Javascript? Assuming you are making a mostly standalone app then I'm not sure about how well it all works running off local URLs instead of a web server, but I can't see any problems that can't be solved one way or another.
Can you tightly integrate it into Android apps? I don't know, I assume you need some kind of web page view part and send it to your HTML that uses OpenLayers javascript for the mapping...