I am planning to develop a hybrid mobile app using ionic. One of the features i need is offline google map. Is there a way how to do it?
Is there a way to save offline google map on hybrid mobile app on ionic?
2.1k views Asked by Arelancelot At
1
There are 1 answers
Related Questions in MOBILE
- How to create an ActionScript 3.0 in Flash to display Current Date, Time and Day of Week
- textinput.needsSoftKeyboard does not work (air for android)
- Flash erase image with mask - gotoandplay next frame
- Flash CS3: Text appears on button mouse over or text mouse over
- import a sound externally or from the library? AS3
- How to use Database in Flash App?
- undefined method loadCompressedDataFromByteArray through a reference with static type flash.media:Sound
- Cam streaming Flash client/widget
- Pairing a draggable object to a target object in AS3
- update flashVars of flowplayer to change video via swfObject
Related Questions in GOOGLE-MAPS-ANDROID-API-2
- How to create an ActionScript 3.0 in Flash to display Current Date, Time and Day of Week
- textinput.needsSoftKeyboard does not work (air for android)
- Flash erase image with mask - gotoandplay next frame
- Flash CS3: Text appears on button mouse over or text mouse over
- import a sound externally or from the library? AS3
- How to use Database in Flash App?
- undefined method loadCompressedDataFromByteArray through a reference with static type flash.media:Sound
- Cam streaming Flash client/widget
- Pairing a draggable object to a target object in AS3
- update flashVars of flowplayer to change video via swfObject
Related Questions in HYBRID
- How to create an ActionScript 3.0 in Flash to display Current Date, Time and Day of Week
- textinput.needsSoftKeyboard does not work (air for android)
- Flash erase image with mask - gotoandplay next frame
- Flash CS3: Text appears on button mouse over or text mouse over
- import a sound externally or from the library? AS3
- How to use Database in Flash App?
- undefined method loadCompressedDataFromByteArray through a reference with static type flash.media:Sound
- Cam streaming Flash client/widget
- Pairing a draggable object to a target object in AS3
- update flashVars of flowplayer to change video via swfObject
Related Questions in ICONIC
- How to create an ActionScript 3.0 in Flash to display Current Date, Time and Day of Week
- textinput.needsSoftKeyboard does not work (air for android)
- Flash erase image with mask - gotoandplay next frame
- Flash CS3: Text appears on button mouse over or text mouse over
- import a sound externally or from the library? AS3
- How to use Database in Flash App?
- undefined method loadCompressedDataFromByteArray through a reference with static type flash.media:Sound
- Cam streaming Flash client/widget
- Pairing a draggable object to a target object in AS3
- update flashVars of flowplayer to change video via swfObject
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Popular Tags
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
It depends on the requirements of your application whether this will be possible. Are your users on "modern" devices A.K.A is HTML5 fully supported? Do your users need to view/edit the map globally, or just in a specific area? Does the map really need to be provided by google? I'll address some issues below to point you in possible takes on this problem.
Do you really need google maps? (Most optimal scenerio)
First of, do you really need google maps? Also relevant: how far do your users need to zoom their maps? If it can be any maps, and zooming is not really of high priority (if it is, including all map tiles will make the app eat all storage), you could probably use map-tiles as a packaged part of your app, and display them with a library like http://leafletjs.com/. The library is well documented, and provides a map-interface for a variety of map-providers. It will be do-able to configure this to use your own local map-tiles. You could include map-tiles for multiple zoom levels if necessary, and limit the min/max zoom-levels to the tiles you actually have available. This will make your maps work offline.
I can't or don't wan't to provide my own tiles make sure that you really looked into the option, there is systems out there that provide map-tiles you could use (check https://www.mapbox.com/ for example)
Okay, so you really don't want to do what I suggested. What are the options now? Javascript mapping-solutions typically render tiles based on the location of the map you want to see and the zooming level. These tiles are requested to the tile-provider. I do not know how to implement this for google exactly, you might need some research on this - I'll try to help you see a direction. There will be requests to get the tiles from the servers. I checked with http://maps.google.com what images are loaded when trying to navigate the map: (example (click)). Find out what url's are used in your situation, we will need these kind of url's later (just inspect the network tab in your browser console and see which requests are made when scrolling in your map). When we only need our users to work in a certain area when offline we could use service workers to cache the responses of these requests when we are online, and serve those caches when we are offline. Read more on service workers here (click).
Advantage: Real offline map-functionality for any tile you visited before (as long as your cache wasn't overflown, depending on your implementation of the service workers, and for service-worker supported browsers/devices).
Disadvantages: No support for tiles that were never put in the cache (AKA: never seen before). Another one: this will only work for devices that support service workers. Might be an option in situations where you either don't care about users using "older" devices, or where you can control the user's device choices. Note that using crosswalk could ease your developing efforts here, since you only have to consider one browser-runtime then: but crosswalk also doesn't support older devices.
However: This solution could be fine for people that will need to work in a specific area, which might be true for the case provided by @vipul-r If you or your users know in advance where they need their maps to work, you can instruct/help them in loading & caching their maps correctly.
If you can't work on either of these 2 solutions, then I highly doubt there will be a way to do it. I don't see any other way to the best of my knowledge.