Updated Sep 05, 2025

Step-by-Step Guide: Building a Google Maps Clone with Adalo

Table of Contents
Text Link

This comprehensive tutorial will walk you through building a Google Maps-style application using Adalo's no-code platform. While some features like real-time tracking and turn-by-turn navigation aren't possible, you'll create a functional mapping app with location search, place discovery, and user positioning features.

Prerequisites and Initial Setup

Step 1: Create Your Adalo Account

  1. Go to Adalo.com and sign up
  2. Click "Create New App"
  3. Choose Responsive App (Adalo 2.0). Mobile App also works; Responsive is recommended for modern layouts
  4. Name your app (e.g., "MapsClone")
  5. Select "Start from Scratch"

Step 2: Configure App Settings

  1. Choose primary colors (Google Maps uses blue/white)
  2. Select light theme for map visibility
  3. Pick a clean, modern font (Roboto works well)
  4. Click "Continue" to enter editor

Step 3: Get Your Google API Key

  1. In Google Cloud Console, create/select a project
  2. Enable: Maps JavaScript API, Places API, Geocoding API (and if you'll build native apps, also Maps SDK for iOS and Maps SDK for Android)
  3. Go to APIs & Services → Credentials → Create credentials → API key
  4. In Adalo, open App Settings → API Keys and paste the key
  5. On your map, paste the same key in the Maps component's API Key field

Learn how to get your Google API Key

Setting Up the Database

Step 4: Enhance the Users Collection

  1. Click Database icon in left sidebar
  2. Select the default "Users" collection
  3. Add these properties (click "+ Add Property"):
    • Current Location (Location)
    • Home Address (Location)
    • Work Address (Location)
    • Saved Places (Relationship to Places - Many to Many)
    • Preferred Map Type (Text - default: "roadmap")
    • Location Sharing (True/False - default: false)
    • Last Location Update (Date & Time)

Learn more about Location Property Type

Step 5: Create Places Collection

  1. Click "+ Add Collection"
  2. Name it "Places"
  3. Add properties:
    • Name (Text)
    • Location (Location) - Primary address
    • Category (Text) - Values: "restaurant", "gas", "hotel", etc.
    • Photo (Image)
    • Rating (Number - 1-5)
    • Price Level (Text) - "$", "$$", "$$$", "$$$$"
    • Phone Number (Text)
    • Website (Text - URL)
    • Hours (Text - Multiline)
    • Description (Text - Multiline)
    • Created By (Relationship to Users)
    • Created At (Date & Time - Automatic)

Step 6: Create Search History Collection

  1. Click "+ Add Collection"
  2. Name it "Search History"
  3. Add properties:
    • Search Query (Text)
    • Search Location (Location)
    • Search Type (Text) - "place", "address", "coordinate"
    • Timestamp (Date & Time - Automatic)
    • Selected Result (Relationship to Places)

Step 7: Create Reviews Collection

  1. Click "+ Add Collection"
  2. Name it "Reviews"
  3. Add properties:
    • Rating (Number)
    • Comment (Text - Multiline)
    • Photos (Image)
    • Created At (Date & Time - Automatic)
    • Helpful Count (Number - default: 0)

Step 8: Create Routes Collection (For saved directions)

  1. Click "+ Add Collection"
  2. Name it "Routes"
  3. Add properties:
    • Start Location (Location)
    • End Location (Location)
    • Waypoints (Text - for JSON array)
    • Distance (Number) - in kilometers
    • Estimated Time (Number) - in minutes
    • Route Name (Text)
    • Is Favorite (True/False)

Step 9: Set Up Relationships

  1. In Search History:
    • Add "User" → Users (Many to One)
  2. In Reviews:
    • Add "Place" → Places (Many to One)
    • Add "Author" → Users (Many to One)
  3. In Routes:
    • Add "User" → Users (Many to One)
    • Add "Start Place" → Places (Many to One)
    • Add "End Place" → Places (Many to One)

Learn more about Databases

Building the Main Map Interface

Step 10: Create Map Screen

  1. Add new screen "Map"
  2. Make it the home screen
  3. Delete default App Bar
  4. Set background color to white

Step 11: Add Maps Component

  1. Open the Marketplace (left sidebar)
  2. Search "Maps" and click Add (installs immediately)
  3. Drag the Maps component onto your Map screen and make it full-bleed

Learn how to integrate Maps Component

Step 12: Configure Map Settings

  1. Select the Maps component
  2. API Key: paste your Google API key
  3. What does this map show?
    • Choose Single Marker (one address) or Multiple Markers (from a collection)
  4. Map Style: pick Roadmap, Hybrid, Satellite, or Terrain (this is a component setting, not bound via Magic Text)
  5. (Optional) Custom Style JSON for a styled map

Step 13: Add Map Markers

  1. In Maps settings, open What does this map show? → Multiple Markers
  2. Records: select your Places collection
  3. Address for each marker: bind the Location (or address fields via Magic Text)
  4. (Optional) Filter the records (e.g., by Category)
  5. (Optional) Max number of records and Sort (e.g., by Rating)
  6. Add a Click Action on marker press (e.g., go to Place Details)

Step 14: Create Search Overlay

  1. Add Rectangle at top of screen
  2. Style: White background, shadow, rounded corners
  3. Add Text Input inside:
    • Placeholder: "Search Google Maps"
    • Icon: Search icon on left
  4. Add Icon Button (GPS/location icon)
    • Action: Update Logged In User → Current Location → Current Device Location

Implementing Search Functionality

Step 15: Build Search Results Screen

  1. Add a Search Results screen
  2. Add a Custom List of Places
  3. Filter: Name contains the text input value (from the previous screen)
  4. If you use a Location Input (Step 17), you can also filter by distance (see Step 16)
  5. Each list item: image, name, category/rating, and a distance label

Step 16: Add Distance Calculations

  1. In the list item, add a Text component
  2. Set Magic Text to:
    KILOMETERS(Current Device Location Latitude, Current Device Location Longitude, Current Place Location Latitude, Current Place Location Longitude)
  3. Format as: X.X km away

Location Formulas documentation

Step 17: Implement Location Search

  1. On your Map (or a dedicated Search) screen, add a Location Input
  2. Bind it to Search History → Search Location (optional)
  3. Turn on Autocomplete and optionally Show current location
  4. Add a Search button that:
    • (a) Creates a Search History record (optional), then
    • (b) Navigates to Search Results (or refreshes Map) with the chosen location in params

Step 18: Configure Search Filters

  1. Add a Dropdown (or segmented control) labeled "Category"
  2. Options: Restaurants, Gas, Hotels, ATMs, Parking
  3. Apply the dropdown's value directly in your Places list Filter:
    • Category equals [Dropdown > Value]
  4. (Optional) add a second filter using Comparing Locations to keep results within a chosen distance
  5. Add a Clear Filters button that sets the dropdown back to "All"

Creating Location Features

Step 19: Request Location Permissions

  1. After login (e.g., on Home/Map), add an Action → Permissions → Request Location Permissions
  2. If granted → continue; if denied → show an explanation screen with a retry
  3. Note: Users must be logged in for permission actions to work

Learn how to access User's Location

Step 20: Build "My Location" Button

  1. Add a floating Icon Button on the Map screen
  2. Action: Change Data → Update Logged-In User → Current Location = Current Device Location
  3. Lists/markers that are filtered relative to the user's location will refresh on tap. (The Maps component does not expose actions to change map center or zoom.)

Step 21: Create Saved Places

  1. Add new screen "Saved Places"
  2. Add tabs: Home, Work, Favorites
  3. For Home/Work:
    • Add Location Input component
    • Save to User's Home/Work Address
  4. For Favorites:
    • Show list of Saved Places relationship
    • Add/remove places with bookmark icon

Step 22: Implement Place Details

  1. Add new screen "Place Details"
  2. Add components:
    • Image (full width hero image)
    • Text (place name, large)
    • Rating component
    • Text (address, phone, website)
    • Map (small, showing single location)
  3. Add action buttons:
    • Directions (link to external maps)
    • Save place
    • Share

Building Navigation Features (Limited)

Step 23: Create Directions Screen

  1. Add new screen "Get Directions"
  2. Add two Location Input components:
    • Start location (default: Current Location)
    • End location
  3. Add transport mode selector:
    • Car, Walk, Transit, Bike (visual only)
  4. Note: Cannot calculate actual routes

Step 24: Add Distance Display

  1. Below inputs, add Text component
  2. Show straight-line distance:
    Distance: KILOMETERS(Start Latitude, Start Longitude, End Latitude, End Longitude) km
  3. Add disclaimer: "Straight-line distance"

Step 25: External Navigation Links

  1. Add "Start Navigation" button
  2. Create URL with Magic Text:
    https://maps.google.com/maps?saddr=[Start Lat],[Start Long]&daddr=[End Lat],[End Long]
  3. Action: Open website (external browser)

Adding User Features

Step 26: Build Profile Screen

  1. Add new screen "Profile"
  2. Display user information:
    • Profile photo
    • Name and email
    • Home/Work addresses
    • Saved places count
  3. Add settings section:
    • Map type preference
    • Location sharing toggle
    • Search history management

Step 27: Create Location Sharing

  1. Add toggle in Profile
  2. When enabled:
    • Update User → Location Sharing → True
    • Update User → Current Location periodically
  3. Note: Only updates on user actions, not real-time

Step 28: Implement Search History

  1. On Profile, add "Search History" link
  2. Create Search History screen
  3. Show list of Search History records:
    • Grouped by date
    • Show query and timestamp
    • Click to repeat search
  4. Add clear history button

Implementing Business Features

Step 29: Add Place Reviews

  1. On Place Details screen
  2. Add Custom List for Reviews:
    • Filter by Current Place
    • Sort by Created At (newest first)
  3. Show:
    • Author name and photo
    • Star rating
    • Comment text
    • Review photos

Step 30: Create Review Form

  1. Add "Write Review" button
  2. Create Review Form screen:
    • Rating input (1-5 stars)
    • Text Input (multiline comment)
    • Image Picker (optional photos)
  3. On submit:
    • Create Review record
    • Update Place average rating
    • Navigate back

Step 31: Build Business Hours Display

  1. In Places, add properties for structured hours (e.g., Mon Open (Time), Mon Close (Time), … for each day)
  2. On Place Details, show an expandable Hours section bound to those fields
  3. Show current status using visibility rules/conditions:
    • Show "Open now" (green) when Current time is between today's open/close
    • Otherwise show "Closed" (red) and Next opening time

Optimizing Performance

Step 32: Limit Map Markers

  1. Limit markers (Max number of records) and keep list items light
  2. Use distance-based filtering for markers
  3. Add a "Search this area" button that always shows; on tap, re-run your list filters based on the map's visible center the user selected (e.g., via a Location Input or saved coordinate)

Step 33: Implement Caching Strategy

  1. Prefer coordinates (lat/long) you already store over re-geocoding addresses to reduce API calls
  2. Store frequently accessed locations:
    • Recent searches
    • Viewed places
    • Common destinations
  3. Use stored coordinates instead of addresses

Step 34: Configure API Usage

  1. Use smaller thumbnails and keep list items light
  2. Monitor usage in Google Cloud and tune queries/filters
  3. Set up billing alerts at 80% of free tier

Learn more about Estimating API Usage

Working with Platform Limitations

Step 35: Handle Missing Features

Cannot Implement:

  • No built-in turn-by-turn routing or traffic layers inside the component
  • No real-time background location tracking; update location via actions when users interact
  • Map events (drag/idle) aren't exposed as triggers. (Use buttons like "Search this area" to re-query.)

Workarounds:

  • Use external map links for navigation
  • Update location only on user interaction
  • Show static distance calculations
  • Link to Google Maps for advanced features

Step 36: Platform-Specific Considerations

iOS:

  • Location permission is requested by your Request Location Permissions action; handle denial gracefully
  • App Store submission requires a privacy policy explaining location use

Android:

  • Adalo configures manifests during builds; you don't edit the manifest directly
  • Test location accuracy across devices

PWA/Web:

  • Browser handles location permissions; HTTPS is required for geolocation

Testing and Launch

Step 37: Test Core Features

  1. Test on multiple devices:
    • Location permission flow
    • Map loading and markers
    • Search functionality
    • Distance calculations
  2. Test edge cases:
    • No location permission
    • No internet connection
    • Many markers performance

Step 38: Monitor API Usage

  1. Check Google Cloud Console daily
  2. Track usage patterns:
    • API calls per user
    • Most expensive operations
    • Peak usage times
  3. Optimize based on data

Step 39: Prepare for Publishing

  1. Use Adalo's Starter/Professional/Team/Business plans as needed for publishing and collaboration
  2. Configure app store settings
  3. Add required policies:
    • Privacy policy (location data usage)
    • Terms of service
  4. Set up support email

Step 40: Launch Considerations

  1. Start with limited user base
  2. Monitor API costs closely
  3. Gather user feedback on limitations
  4. Include a Privacy Policy that explains location use; for iOS, add required permission text when submitting if prompted

Additional Resources

Important Considerations

Cost Breakdown:

  • Use Adalo's Starter/Professional/Team/Business plans as needed (check current Pricing)
  • The Maps component is an Adalo Marketplace component; pricing varies by listing
  • Google API costs: $200/month free credit

Marketplace Components:

  • The Maps component is an Adalo Marketplace component; pricing varies by listing
  • Additional components available for enhanced functionality

API Cost Management:

  • Prefer stored coordinates over re-geocoding addresses
  • Cache recent searches & popular places to reduce calls
  • Monitor usage in Google Cloud; set billing alerts
  • See Estimating API Usage for Adalo-specific guidance

Note: This Google Maps clone will provide core mapping and location search functionality within Adalo's constraints. While it won't match Google Maps' advanced features like real-time navigation or traffic data, it serves as a solid foundation for location-based discovery apps, business directories, and local search platforms.

‍

Start Building With An App Template
Build your app fast with one of our pre-made app templates
Try it now
Read This Next

Looking For More?

Ready to Get Started on Adalo?