"use strict"; var input_lat = $("#input-lat"), // latitude input text input_lng = $("#input-lng"), // longitude input text map = new GMaps({ // init map div: '#map', lat: -6.5637928, lng: 106.7535061 }); // add marker var marker = map.addMarker({ lat: -6.5637928, lng: 106.7535061, draggable: true, }); // when the map is clicked map.addListener("click", function(e) { var lat = e.latLng.lat(), lng = e.latLng.lng(); // move the marker position marker.setPosition({ lat: lat, lng: lng }); update_position(); }); // when the marker is dragged marker.addListener('drag', function(e) { update_position(); }); // set the value to latitude and longitude input update_position(); function update_position() { var lat = marker.getPosition().lat(), lng = marker.getPosition().lng(); input_lat.val(lat); input_lng.val(lng); } // move the marker when the latitude and longitude inputs change in value $("#input-lat,#input-lng").blur(function() { var lat = parseInt(input_lat.val()), lng = parseInt(input_lng.val()); marker.setPosition({ lat: lat, lng: lng }); map.setCenter({ lat: lat, lng: lng }); });