Alternative framework to Google map API which is "offline" - google-maps

I need to develop a feature where I need to show the directions between two zipcodes on a map offline. Is there any such framework which can display directions between two zipcodes ? I tried Highmaps, but it doesn't show directions between tow point. I looked at the below apis too. But I think they cannot work offline. Thanks in advance
MapTiler Cloud: https://cloud.maptiler.com/
Microsoft Maps API: http://www.microsoft.com/maps/developers/web.aspx
MapQuest: http://developer.mapquest.com/
(provided by TuxGeek)
Mapjam: http://mapjam.com
OpenStreetMap API: http://wiki.openstreetmap.org/wiki/API_v0.6
Osmdroid: http://wiki.openstreetmap.org/wiki/Osmdroid
OpenStreetMap Android http://wiki.openstreetmap.org/wiki/Android
(provided by AGrunewald)
GraphHopper Directions and Matrix API https://graphhopper.com/#directions-api
(provided by karussell)

The GrapHopper API that you mention is based on their SDK:
https://github.com/graphhopper/graphhopper
and it allows to perform routing in offline mode, in Java, and, more in particular, in Android.
There's a sub-project where GrapHopper is integrated with Mapsforge (library for rendering OpenStreeMap data offline) for Android:
https://github.com/graphhopper/graphhopper/tree/0.8/android

Try hosting your own open-source instance, for example Graphhopper.

Related

Is there a traffic API for desktop apps?

I help develop a desktop app that displays map information with various layers on top. Now we want to add the Google Maps traffic layer. We do have a developer API key.
How can I use the Google API without a website, to generate just the data layer I need and download it in KML or GeoRSS or any other format so I can use it in the desktop app on top of my own map?
We already use the distance matrix, geocode, and directions API. Is there a traffic API as well, or are traffic data only available for embedding on a website?
Traffic data is not available as separate API. You can only use TrafficLayer of Maps JavaScript API or Android SDK.
There is a feature request in Google issue tracker to expose these data as an API:
https://issuetracker.google.com/issues/36537583
However, it looks like Google didn't set high priority on this task. Feel free to star the feature request to add your vote and subscribe to notifications from Google.
I hope my answer clarifies your doubt.

How to get Google maps 3d building terrain for my project?

TL;DR
How do I get Google maps 3d building terrain for my project?
They provides it?
I want to draw 3d buildings of my neighborhood on my project.
Ideally I wish I could do something on Web but App is Ok too.
For example
https://www.localize.city/address/new%20york/new%20york/manhattan/west%2047%20street/505/insights?itemIndex=0&itemOpen=false
Thanks.
Currently, Maps Javascript API doesn't have this feature, however, this can be done using the Maps SDK for Android with Camera and View, you may visit the documentation to further understand, you may also check the sample in this repository. Hope this helps.

Geofencing and offline maps in Android

It's amazing how easy it is possible to use geofencing with Google Maps API. However for that you have to be "connected" and use online maps. However I can not find how to use geofencing functionality for offline maps and what, if any, offline map provider supports it on Android. Would be thankful for any help here.
Well, I ended up with some hybrid solution. I used MapBox and Open Street Maps for offline map functionality together with Google Play services that allowed me to add geofencing functionality. Somehow I was thinking that geofencing requires to use Google Maps and that was obviously not correct.

Esri Feature Services and Google Maps API v3

Is it possible to overlay an Esri Feature service onto a Google Map using the Google Maps API?
I am using feature services hosted on ArcGIS Online. Keep in mind these are feature services, not tiled map services.
From all that I've gathered, Google Maps only appears to only support tiled map rest services. Is this correct? Has anyone had success overlaying feature services?
If you've made it this far I'll give you a little background. Our systems developer has produced numerous applications using the Google Maps API, so it would be a burden at this point to rewrite everything in OpenLayers, ESRI API, Leaflet, etc. He wants to be able to consume our ArcGIS Online mapping services, which we store as features, aka. WFS. We really do not want to go the route of having to upkeep additional versions (tiles, KML, geoJSON, etc) of the same layers. I've been experimenting with on-the-fly Esri JSON to GeoJSON conversions, but I haven't had success. I'm about ready to call it and rebuild everything with the Esri API, but I figured I'd ask first. Our staff is really in love with Google Maps so it's going to be a hard sell.
Thanks
Yes, it's possible with ArcGIS Server Link for Google Maps JavaScript API V3
https://github.com/googlemaps/v3-utility-library/tree/master/arcgislink
You can retrieve both geometries and attributes from AGS through the REST API, using the Feature Class.
Alternatively, you can implement a Geometry Service on the server side and access it through GeometryService Class.
Check arcgislink documentation:
https://htmlpreview.github.io/?https://github.com/googlemaps/v3-utility-library/blob/master/arcgislink/docs/reference.html
It is viable, but it may have performance issue.
You can make a call to the feature service endpoint and get all the features back as JSON response. As Esri GeoJSON is different from the common one, you need to translate the JSON response to the standard GeoJSON format, and then add to the feature collection in google maps Data Layer and apply styles.
This works if you have simple datasets. However if it is complex large polygon datasets, it will be causing network traffic when making the call. Also Google maps data layer always have performance issue when dealing with large dataset.
I recommend to use dojo/esri js API to develop the app if the data is hosted with ArcGIS server. It just doesn't make sense to buy both licenses for visualization.
Another option is to enable your ArcGIS online data to serve WMS layer too. Through that way your developer can use google maps overlay layer to overlay tiles from ArcGIS online. You can also make standard XMl request to the WMS service to get feature information.
Ok. You can convert to GeoJSON, but you're right, there's some big performance issues.
I found the easiest solution to the problem was to rewrite all our Google Maps API using ESRI Leaflet.
https://esri.github.io/esri-leaflet/
Leaflet is much easier to implement than the standard ESRI API. Didn't take long to rewrite and have the same functionality.

Offline Google Maps in an Android app

Recently Google released a new version of their Google Maps which lets you save an offline version of a particular chunk of the map. At the same time I've been playing around with making an Android app which uses the Google Maps API, and I was just wondering... is it possible in some way to get that offline map and get my application to use it? So that my application doesn't need an internet connection either?
I'm aware that OpenStreetMap is an alternative but I don't think it'll work with the project I have in mind.
Cheers
that may be a violation of Google's Terms of Service.
Have a look at this: How to cache Google map tiles for offline usage?