0

I am using this plugin for autocomplete of location input field.

What I have done so far is-

$(function()
{
 $("#find_product_location").geocomplete(
 {
  map   : "#product_location",
  mapOptions :
  {
   mapTypeId : 'roadmap',  //roadmap, satellite,hybrid, terrain,
   scrollwheel : true,
   zoom: 10,
   center : new google.maps.LatLng(37.42152681633113, -119.27327880000001),
  },
  markerOptions:
  {
   draggable: true
  },
 })
  .bind("geocode:result", function(event, result)
  {
   console.log('Success');
   //console.log(result);
  })
  .bind("geocode:error", function(event, status)
  {
   console.log('Error');
   //console.log(status);
  })
  .bind("geocode:multiple", function(event, results)
  {
   console.log('Multiple');
   //console.log(results);
  });
});
#product_location
{ 
 width: 100%; 
 height: 400px;
}
<input id="find_product_location" type="text" placeholder="Type Your Address"/>
<input id="find" type="button" value="find" />

<div id="product_location"></div>

<script src="http://maps.googleapis.com/maps/api/js?sensor=true&amp;libraries=places"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/geocomplete/1.7.0/jquery.geocomplete.min.js"></script>

But the problem is, when a location is selected, there is a marker created and the marker is showed in the map.

My requirement is I don't want the marker here.

enter image description here

I just want to have other functionalities (auto zoom set, change location in map etc).

Can anyone please help?

Abrar Jahin
  • 13,970
  • 24
  • 112
  • 161

1 Answers1

0

You can use the Official Google Maps API - Place Autocomplete Autocomplete is a feature of the Places library in the Google Maps JavaScript API. You can use autocomplete to give your applications the type-ahead-search behavior of the Google Maps search field. When a user starts typing an address, autocomplete will fill in the rest.

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    center: {lat: -33.8688, lng: 151.2195},
    zoom: 13
  });
  var input = /** @type {!HTMLInputElement} */(
      document.getElementById('pac-input'));

  var types = document.getElementById('type-selector');
  map.controls[google.maps.ControlPosition.TOP_LEFT].push(input);
  map.controls[google.maps.ControlPosition.TOP_LEFT].push(types);

  var autocomplete = new google.maps.places.Autocomplete(input);
  autocomplete.bindTo('bounds', map);


    var address = '';
    if (place.address_components) {
      address = [
        (place.address_components[0] && place.address_components[0].short_name || ''),
        (place.address_components[1] && place.address_components[1].short_name || ''),
        (place.address_components[2] && place.address_components[2].short_name || '')
      ].join(' ');
    }

  });

  // Sets a listener on a radio button to change the filter type on Places
  // Autocomplete.
  function setupClickListener(id, types) {
    var radioButton = document.getElementById(id);
    radioButton.addEventListener('click', function() {
      autocomplete.setTypes(types);
    });
  }

  setupClickListener('changetype-all', []);
  setupClickListener('changetype-address', ['address']);
  setupClickListener('changetype-establishment', ['establishment']);
  setupClickListener('changetype-geocode', ['geocode']);
}
Android Enthusiast
  • 4,826
  • 2
  • 15
  • 30