Google's Places service can be attached to any display map, but if you want to do things with it, such as preset the search you can:

First ensure that the service is enabled but not used, so the the library is loaded but getlocations_search_places.js is not loaded.

In your theme (or bespoke module) create the following javascript file, we will call it mytheme_search_places.js

(function ($) {

  var mytheme_sp_markers = [];
  var mytheme_places_service;

  Drupal.mytheme_search_places = function(key) {

    // edit this to suit your map
    if ($(".view-display-id-page_1").is('div')) {
      mytheme_places_service = new google.maps.places.PlacesService(Drupal.getlocations_map[key]);
      var t = 'grocery_or_supermarket';
      var minmaxes = (Drupal.getlocations_data[key].minmaxes ? Drupal.getlocations_data[key].minmaxes : '');
      var minlat = '';
      var minlon = '';
      var maxlat = '';
      var maxlon = '';
      if (minmaxes) {
        minlat = parseFloat(minmaxes.minlat);
        minlon = parseFloat(minmaxes.minlon);
        maxlat = parseFloat(minmaxes.maxlat);
        maxlon = parseFloat(minmaxes.maxlon);
        var minpoint = new google.maps.LatLng(parseFloat(minlat), parseFloat(minlon));
        var maxpoint = new google.maps.LatLng(parseFloat(maxlat), parseFloat(maxlon));
        var b = new google.maps.LatLngBounds(minpoint, maxpoint);
        var s = {bounds:b, types:[t]};
        mytheme_search_places_clearmarkers(key, false);
        mytheme_places_service.search(s, function(places, status) {
          if (status == google.maps.places.PlacesServiceStatus.OK) {
            mytheme_sp_do_places(places, key);
          }
        });
      }
    }
  };

  function mytheme_do_sp_bubble(marker, p, key) {
    var ver = Drupal.getlocations.msiedetect();
    var pushit = false;
    if ( (ver == '') || (ver && ver > 8)) {
      pushit = true;
    }
    var main = '<p>';
    if (p.formatted_address !== undefined) {
      main += '<span class="sp_address">' + p.formatted_address + '</span><br />';
    }
    if (p.formatted_phone_number !== undefined) {
      main += '<span class="sp_phone">' + Drupal.t('Phone') + ': '  + p.formatted_phone_number + '</span><br />';
    }
    else if (p.international_phone_number !== undefined) {
      main += '<span class="sp_phone">' + Drupal.t('Int. Phone') + ': ' + p.international_phone_number + '</span><br />';
    }
    if (p.website !== undefined) {
      main += '<span class="sp_web">' + Drupal.t('Web') + ': ' + '<a href="' + p.website + '" target="_blank" >' + p.name + '</a></span><br />';
    }
    if (p.url !== undefined) {
      main += '<span class="sp_web">' + Drupal.t('Google') + ': ' + '<a href="' + p.url + '" target="_blank" >' + p.name + '</a></span><br />';
    }
    // link to Getdirections or google
    if (p.geometry !== undefined) {
      var scheme = 'http';
      if (Drupal.settings.getlocations[key].is_https) {
        scheme = 'https';
      }
      if (Drupal.settings.getlocations[key].getdirections_enabled) {
        main += '<span class="sp_web"><a href="' + Drupal.settings.basePath + 'getdirections/latlon/to/' + p.geometry.location.lat() + ',' + p.geometry.location.lng() + '/' + p.name + '" target="_blank">' + Drupal.t('Directions') + '</a></span><br />';
      }
      else {
        main += '<span class="sp_web"><a href="' + scheme + '://maps.google.com/maps?f=d&ie=UTF8&daddr=' + p.name + '@' + p.geometry.location.lat() + ',' + p.geometry.location.lng() + '"  target="_blank">' + Drupal.t('Google Getdirections')  + '</a></span><br />';
      }
    }
    main += '</p>';

    var photo = '';
    if (p.photos !== undefined && p.photos.length > 0 ) {
      if (p.photos.length > 1)   {
        // pick one at random
        var rn = Math.floor((Math.random() * p.photos.length )+1);
      }
      else {
        var rn = p.photos.length;
      }
      var ph = p.photos[rn - 1].getUrl({'maxWidth': 75});
      photo += '<img class="sp_picture" src="' + ph + '" alt="' + p.name + '" title="' + p.name + '" />';
    }
    var sp_content = "";
    sp_content += '<div class="location vcard">';
    sp_content += '<div class="container-inline">';

    sp_content += '<div class="sp_left1">';
    sp_content += '<img class="placeIcon" src="' + p.icon + '"/>';
    sp_content += '</div>';
    sp_content += '<div class="sp_left2">';
    sp_content += '<h4>' + p.name + '</h4>';
    sp_content += '</div>';
    sp_content += '</div>';
    sp_content += '<div class="sp_main">';

    if (photo) {
      sp_content += '<div class="container-inline">';
      sp_content += '<div class="sp_left3">';
      sp_content += photo;
      sp_content += '</div>';
      sp_content += '<div class="sp_left4">';
      sp_content += main;
      sp_content += '</div>';
      sp_content += '</div>';
    }
    else {
      sp_content += main;
    }
    sp_content += '</div>';
    sp_content += '</div>';
    google.maps.event.addListener(marker, 'click', function() {
      // close any previous instances
      if (pushit) {
        for (var i in Drupal.getlocations_settings[key].infoBubbles) {
          Drupal.getlocations_settings[key].infoBubbles[i].close();
        }
      }
      if (Drupal.getlocations_settings[key].markeraction == 2) {
        if (typeof(infoBubbleOptions) == 'object') {
          var infoBubbleOpts = infoBubbleOptions;
        }
        else {
          var infoBubbleOpts = {};
        }
        infoBubbleOpts.content = sp_content;
        var sp_iw = new InfoBubble(infoBubbleOpts);
      }
      else {
        if (typeof(infoWindowOptions) == 'object') {
          var infoWindowOpts = infoWindowOptions;
        }
        else {
          var infoWindowOpts = {};
        }
        infoWindowOpts.content = sp_content;
        var sp_iw = new google.maps.InfoWindow(infoWindowOpts);
      }
      sp_iw.open(Drupal.getlocations_map[key], marker);
      if (pushit) {
        Drupal.getlocations_settings[key].infoBubbles.push(sp_iw);
      }
    });
  }

  function mytheme_sp_getdetails(m, p, k, i) {
    mytheme_places_service.getDetails({reference: p.reference}, function(result, status) {
      if (status == google.maps.places.PlacesServiceStatus.OK) {
        mytheme_do_sp_bubble(m, result, k);
      }
      else {
        mytheme_do_sp_bubble(m, p, k);
      }
    });
  }

  function mytheme_sp_do_places(places, key) {
    for (var ip = 0; ip < places.length; ip++) {
      var place = places[ip];
      var image = {
        url: place.icon,
        size: new google.maps.Size(71, 71),
        origin: new google.maps.Point(0, 0),
        anchor: new google.maps.Point(17, 34),
        scaledSize: new google.maps.Size(25, 25)
      };
      var sp_marker = new google.maps.Marker({
        map: Drupal.getlocations_map[key],
        icon: image,
        title: place.name,
        position: place.geometry.location
      });
      mytheme_sp_markers[ip] = sp_marker;
      mytheme_sp_getdetails(sp_marker, place, key, ip);
    }
  }

  mytheme_search_places_clearmarkers = function(key, state) {
    // clear out existing markers
    for (var i = 0; i < mytheme_sp_markers.length; i++) {
      sp_marker = mytheme_sp_markers[i];
      sp_marker.setMap(null);
    }
    mytheme_sp_markers = [];
    var ver = Drupal.getlocations.msiedetect();
    if ( (ver == '') || (ver && ver > 8)) {
      for (var i in Drupal.getlocations_settings[key].infoBubbles) {
        Drupal.getlocations_settings[key].infoBubbles[i].close();
      }
    }
  };

  Drupal.behaviors.mytheme_search_places = {
    attach: function() {
      var key = 'key_1';
      Drupal.mytheme_search_places(key);
    }
  };

}(jQuery));

Enable it in your theme's .info file and edit it, replacing "mytheme" with the name of your theme. You will also want to edit the page id (".view-display-id-page_1" in the above example) and which service to show ("grocery_or_supermarket" in the above example).