Most of the modern-day applications have
the facility of Google maps and location-sharing. Whether a taxi-booking app or
a social media app or a food-ordering app, all have this vital feature embedded
in the apps. Since this feature has become essential, several businesses have
developed advanced location-sharing apps or at least embedded this feature in
diverse apps.
So, in this blog, we are going to look at
the basic procedure to build a location-sharing app or integrate this vital
feature in them. Here we will use Ionic, the popular cross-platform framework,
for this purpose. The reason to consider Ionic app development is that this
technology is easy to adopt, enables the development of captivating UI/UX, and
feature-rich performance-based apps. It is built on AngularJS which offers
various functionalities for development and a robust environment that makes the
code more manageable. Also, Ionic utilizes Cordova plugins and allows widget
development. Owing to such myriad benefits, a plethora of businesses hire Ionic
application development company for architecting enterprise applications.
So let’s get started, but before that, let
us have a quick look at the criteria that the Ionic developers would be
assuming before starting with the development.
- . We will be using Firebase
for saving the data.
- .We will create a custom
directive for integrating Google Maps into our application.
- . We will be creating a
mobile app for the Android platform.
Steps to Architect a Location-sharing
app with Ionic
Installations of relevant softwares
- The first step is to install
Node.js which automatically installs npm i.e. node package manager. Now you can
install Ionic with the use of npm.
- Also, install the required
dependencies for the Android platform. After installing them, you need to
create a blank Ionic project.
- Now navigate to the project
directory iMapApp. After this, you can add the desired platform, developit, and
emulate. Now, a blank app will probably be running in the Android emulator.
But, this process of running the app in the emulator every time will be
time-intensive. So, it is advisable to use Ionic CLI for running the
application in the browser. Once again, it is essential to install the required
dependencies with the use of npm.
- After installing the
dependencies, you need to run “ionic serve” in the terminal for the app to run
in the browser.
UI Creation
- You can begin with the addition
of a new template for showing the map. Now create a new folder known as
www/templates in the project directory. Also, create a file named map.html
inside templates.
- Google Maps will be rendered
inside the HTML map where a div known as #map will be present. Also, there will
be an input text box below the map for the users to fill the description and
also a button for the details to be saved.
- Now we will be using the
“ionNavView” directive to create different templates based on various states.
Add this directive to index.html page. The next step is the removal of the
current contents of the body tag and addition of the “ionNavBar” directive
above the “ionNavView” for building a top bar.
- The title for the “ionNavBar”
will be set from the rendered “ionView”.
- For the proper organization of
the app interfaces into multiple states, the Angular UI router module is utilized
by Ionic. Now open www/js/app.js as we will define a state for the map.html
template by writing the required code.
- After implementing this code a
new state for the URL “/map” is defined. This state will be rendering the
template map.html and will be controlled by “MapCtrl” controller. To set the
map as the default state, command “$urlRouterProvider.otherwise('/map')” is
used.
- Now create a file-
“controller.js” inside “www/js/” and also add its reference in the file called-
“www/index.html”
- Then define the angular module
first for defining controller code inside “controller.js”
- After this, define the
controller “MapCtrl” and then enter the “starter.controllers” module into the
starter app. After saving this, you can view the map.html template.
- Then you should add the Google
Map in map.html which can be done by the creation of a custom directive known
as “map”. Let us now define the directive in controller.js and add the
directive attribute to div #map in map.html.
Adding default parameters like longitude, latitude,
zoom in the Maps
- First, pass the longitude,
latitude, and zoom parameters to the google map directive. With the use of
parameter “attrs” you can access these attributes inside the link function of
the directive.
- For evaluation of AngularJS expressions,
“scope.$eval” is used.
- The next step is to include the
Google Maps API reference in index.html. Using the default values, Google Map’s
latitude and longitude can be defined. Also, define map options for Google Map.
- With appropriate code, add style
to “www/css/style.css” for styling the “#map” div.
- Lastly, save all the
modifications to view Google Maps on the map page.
Adding a marker to the Google Maps
- We need to modify the directive
with the right code. Marker’s default position is set as longitude and latitude
that is passed as an attribute. Also, the draggable option is set as true.
- After implementing the code and
saving the changes, a draggable marker will be visible in Google Maps.
Tracking the position of Marker
- For this purpose, we will be
attaching a “dragend” event to the Google Maps marker. Also, for attaching the
drag end event listener inside the directive, add the right code.
- After saving these changes,
just try to drag the marker. Now inspect the browser console which must include
the current longitude and latitude.
Saving all the details
- In “MapCtrl”, define a $scope
variable called “user” which will consist of information like longitude, latitude,
and the data that the user enters.
- In “MapCtrl” controller, create
a function known as “saveDetails” which will use “scope.user” variable for
fetching the required information.
- Update the variables-
“$scope.user.longitude” and “$scope.user.latitude” in the “dragend” event
listener’s callback function when the users will move the marker on the map.
- For updating the model
bindings, call the “scope.$apply” function. After this, you need to attach the
following:
o
a ngModel directive to the
description input text box
o
a ngClick directive to the save
button
- Now save the data to Firebase.
For this, you will first need to register with Firebase if you don’t have an
account. After logging in, you will get a unique firebase URL.
- After signing to the Firebase
account, in the dashboard, you will find a plus link next to this URL. Click on
that plus link and enter the below-mentioned inputs to get a sub URL-
/MapDetails.
o
value as 0
o
name as “MapDetails”
- To use firebase in the app,
Include the script references in index.html. Insert firebase in controller.js
and MapCtrl controller. Create a firebase object inside this controller. Create
an instance of the firebase object. Use the firebase push API inside the save Details
function, for saving the data to firebase. Once saved, refresh the application.
- Now just drag the marker to a
certain location on the Maps, enter some description and save this. All this
data should be present when you check the firebase dashboard.
- After the data is saved, using
the Ionic popup, create an alert for notifying the users. In the MapCtrl
controller, inject the $ionicPopup. Again, in the MapCtrl controller, add a
function known as “showAlert”.
- This function calls the
“$ionicPopup” service for showing a pop-up having a template and a title.
- After this, you should call
“showAlert” in the success callback of the push API call.
- Finally, save all the changes
and the details once again. After saving these details in Firebase,you will get
a pop-up showing a success message. This completed the process.
Conclusion:
We just saw the step-by-step method to
integrate Google maps in the Ionic Apps. We hope this will be useful to the
Ionic developers and also to an Ionic app
development company aiming to design impeccable apps with location-sharing
functionality.
Was this blog useful to you? Let us know
your vital thoughts in the comment section.
Nice post.Outsource React Native Development Company
ReplyDeleteReact Native Development Agency