Knowledge Base
  • Introduction
  • Events and Actions
  • Action Panel
  • sending email
  • calling a SQL action from a client side js action
  • Accessing to translations form a server
  • Executing SQL statements from within an action
  • How to invoke a generic SQL statement defined through a SQL action
  • How to show a message dialog
  • checking for "undefined" values
  • How to add spaces to the right of a text
  • How to create a docx report and show it on the web browser Enterprise Edition only
  • How to get or set a value from the graphics control
  • How to invoke a generic SQL query defined through a business component
  • How to remove spaces to the left and right of a text
  • How to support multiple themes in a single application, accoding to a rule
  • How to set content to a Google Map linked to a grid or form
  • How to replace all occurences of a pattern from a text
  • Utility methods
  • Link auto login
  • Creation of a link for the first access of a new user without give the user a password and forcing
  • Forgot password
  • setting up default values from values coming from a filter panel
  • identifing the modified record after the alteration
  • enabling/disabling checkboxes in a grid
  • Filtering a Lookup
  • formatting a column
  • using checkboxes to select rows in grid
  • showing a summary row in grid
  • Disabling a toolbar button
  • Configuring grid exports
  • Adding filter conditions to a grid
  • Filtering the grid content from a tree
  • Filtering the tree content, starting from a filter panel linked to a grid
  • collapsing a panel
  • validating a lookup
  • accessing the authorizations set for a specific grid
  • How to design a web service
  • How to remotelly invoke an action or business component or perform a write operation through a Restf
  • how to feed a grid from a JS business component
  • converting a JS object to a JSON string
  • executing a query
  • passing parameters to a server side JS action
  • return value
  • scheduling and frequency
  • finding the right filter panel
  • checking out if a component has been defined
  • Deploying an application
  • Enquiring a table belonging to the Platform repository
  • Adding a where clause to a business component linked to grid
  • Integrating Mailchimp lists
  • Formatting a number as a currency value to use it inside an email template
  • sending email from a template
  • How to send an email
  • Error 'smtpHost' is empty
  • Linking two windows
  • How to open manually a window from another window
  • How to open manually a popup window
  • How to hide a panel in a window dinamically
  • How to manage folder panels
  • How to manage card panels
  • Predefined variables supported by Platform
  • Accessing the application parameters
  • Application Log
  • How to design a web service
  • How to import java classes in server
  • How to import java classes in server
  • How to dynamically set a value on a combo
  • 4WS.Platform
  • How to listen to events in a mobile HTML panel
  • Issues with HTTPS requests
  • How to manage row totals in grid
  • How to send to the UI a notification to execute code automatically
  • How to filter a chart by date interval
  • How to filter a grid by date interval
  • How to read a text or csv file and save data on the database
  • How to write text or csv files
  • Reading an xls file stored in the specified path
  • How to create a report with Jasper Report
  • How to customize the alert message content
  • Setting up a cluster
  • Uploading and downloading files
  • How to listen to user definition changes
  • How to auto-show a window from login
  • How to manage encrypted fields
  • How to change CSS settings for a grid row
  • Customizing a Tree Panel
  • How to execute complex queries on Google Datastore
  • Theme customization
  • Retrieve and send the log of a mobile app
  • Import Roles and Users
  • How to synchronize multiple Form panels in the same window
  • Anchor buttons
  • Properties of subpanels
  • Bulk import
  • How to display the data not found message in a grid
  • How to setup an LDAP based authentication
  • How to synchronize data from Datastore to BigQuery
  • How to synchronize data from Datastore to Google Spanner
  • How to synchronize data from Datastore to CloudSQL
  • Scrollable form list
  • How to setup SAML authentication
  • How to export data from BigQuery in streaming
  • Update Google Spreadsheet
  • How to setup OAuth2 authentication
Powered by GitBook
On this page

Was this helpful?

How to set content to a Google Map linked to a grid or form

A Google Map panel is automatically filled starting from the business component linked to it:

  • if it is connected to a list business component, it will show a list of pins, one for each record read

  • if it is connected to a detail business component, it will show one pin only, related to the record read

In any case, the record must provide some fields:

  • latitude

  • longitude

  • label linked to the pin

It is possible to manage the map content dynamically, for instance by reloading the pin in the map each time a row in another grid is selected. The same is possible if latitude and longitude coordinates are provided dynamically from a detail form, which contains these two fields too. In these scenarios, the business component linked to the map is not useful: it is used just to define the fields definition the map is supposed to read. In case of a map connected to a grid, a javascript action must be defined and connected to a row click event. This is an example of the javascript action:

try {

/* the markers must be defined "globally" */

if (googleMap181.mmarkers==null)

googleMap181.mmarkers = [];



/* used to remove any previous pin */

for (var i = 0; i < googleMap181.mmarkers.length; i++) {

googleMap181.mmarkers[i].setMap(null);

}



var rec = grid161.getSelectionModel().getSelected();

var myLatLng = new google.maps.LatLng(

rec.data['latitudine'],

rec.data['longitudine']

);



var marker = new google.maps.Marker({

position: myLatLng,

map: googleMap181.getMap()

});



googleMap181.mmarkers.push(marker);



var mapBounds = new google.maps.LatLngBounds();

mapBounds.extend(myLatLng);



googleMap181.getMap().fitBounds(mapBounds);

googleMap92.getMap().setZoom(16);



} catch(e) {

}

The value "googleMap181" reported in the example above must be replaced with your own value: 181 represents the id of the map panel.The variable "vo" reported above is the value object related to the grid’s row currently selected. Moreover, a second javascript action must be defined an linked to the map’s event "map rendered": this event ensures that the map’s pin is set only when the map has been correctly created and rendered. This is an example of such a kind of action:

try {


/* the markers must be defined "globally" */

if (googleMap181.mmarkers==null)

googleMap181.mmarkers = [];


/* used to remove any previous pin */

for (var i = 0; i < googleMap181.mmarkers.length; i++) {

googleMap181.mmarkers[i].setMap(null);

}


googleMap181.cache.marker = [];



var rec = grid161.getSelectionModel().getSelected();

var myLatLng = new google.maps.LatLng(rec.data['latitudine'], rec.data['longitudine']);



var marker = {

lat: rec.data['latitudine'],

lng: rec.data['longitudine'],

marker: {title: rec.data['note']},

listeners: {click: function() {}}

};


googleMap181.mmarkers.push(marker);


var mapBounds = new google.maps.LatLngBounds();

mapBounds.extend(myLatLng);



googleMap181.cache.marker = [];

googleMap181.clearMarkers();

googleMap181.addMarkers(markers);



googleMap181.getMap().fitBounds(mapBounds);

googleMap181.getMap().setZoom(16);

} catch(e) {}

The value "grid161" reported in the example above must be replaced with your own value: 161 represents the id of the grid panel. In case of a detail panel who manages the map content, a similar javascript action should be defined, where the starting record is retrived in the classical way:

formPanelXXX.getForm().record

Typically, this action is then linked to a "after form loading" event.

PreviousHow to support multiple themes in a single application, accoding to a ruleNextHow to replace all occurences of a pattern from a text

Last updated 5 years ago

Was this helpful?