{"id":39685,"date":"2016-08-02T11:00:42","date_gmt":"2016-08-02T08:00:42","guid":{"rendered":"http:\/\/examples.javacodegeeks.com\/?p=39685"},"modified":"2019-04-09T12:57:08","modified_gmt":"2019-04-09T09:57:08","slug":"vaadin-maps-example","status":"publish","type":"post","link":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/","title":{"rendered":"Vaadin Maps Example"},"content":{"rendered":"<p>Google Maps is a Web-based service that provides information about geographical regions and sites around the world.<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;\n<\/p>\n<div class=\"toc\">\n<h3>Table Of Contents<\/h3>\n<dl>\n<dt><a href=\"#toc100\">1. The tools<\/a><\/dt>\n<dt><a href=\"#toc200\">2. Introduction<\/a><\/dt>\n<dt><a href=\"#toc300\">3. Prerequisites<\/a><\/dt>\n<dt><a href=\"#toc400\">4. Set up the project<\/a><\/dt>\n<dt><a href=\"#toc500\">5. Coding the example<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toc510\">5.1 Configure the add-on<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toc511\">5.1.1 Edit ivy.xml<\/a><\/dt>\n<dt><a href=\"#toc512\">5.1.2 Edit ivysettings.xml<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#toc520\">5.2 Edit the styles<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toc521\">5.2.1 Windows contents<\/a><\/dt>\n<dt><a href=\"#toc522\">5.2.2 Windows header<\/a><\/dt>\n<dt><a href=\"#toc523\">5.2.3 Error labels<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#toc530\">5.3 Main Class<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toc531\">5.3.1 Local Variables<\/a><\/dt>\n<dt><a href=\"#toc532\">5.3.2 The layout<\/a><\/dt>\n<dt><a href=\"#toc533\">5.3.3 Create the map<\/a><\/dt>\n<dt><a href=\"#toc534\">5.3.4 Create the tool box window<\/a><\/dt>\n<dt><a href=\"#toc535\">5.3.5 Add the widgets to the window<\/a><\/dt>\n<dt><a href=\"#toc536\">5.3.6 Button to add markers<\/a><\/dt>\n<dt><a href=\"#toc537\">5.3.7 Button to move the view<\/a><\/dt>\n<dt><a href=\"#toc538\">5.3.8 Button to clear the markers<\/a><\/dt>\n<dt><a href=\"#toc539\">5.3.9 Add a default marker<\/a><\/dt>\n<dt><a href=\"#toc5310\">5.3.10 Add the window contents<\/a><\/dt>\n<\/dl>\n<\/dd>\n<\/dl>\n<\/dd>\n<dt><a href=\"#toc600\">6. The complete source code<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toc610\">6.1 Main class<\/a><\/dt>\n<dt><a href=\"#toc620\">6.2 Styles<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#toc700\">7. Running the example<\/a><\/dt>\n<dt><a href=\"#toc800\">8. Results<\/a><\/dt>\n<dd>\n<dl>\n<dt><a href=\"#toc810\">8.1 Start application<\/a><\/dt>\n<dt><a href=\"#toc820\">8.2 Input error<\/a><\/dt>\n<dt><a href=\"#toc830\">8.3 Range error<\/a><\/dt>\n<dt><a href=\"#toc840\">8.4 Move view<\/a><\/dt>\n<dt><a href=\"#toc850\">8.5 Add Marker<\/a><\/dt>\n<\/dl>\n<\/dd>\n<dt><a href=\"#toc900\">9. Download the Source Code<\/a><\/dt>\n<\/dl>\n<\/div>\n<h2><a name=\"toc100\"><\/a>1. The tools<\/h2>\n<ul>\n<li>Java JDK 8<\/li>\n<li>Latest Eclipse Mars<\/li>\n<li>Vaadin 7.6.8<\/li>\n<li>Tomcat Server 8<\/li>\n<\/ul>\n<h2><a name=\"toc200\"><\/a>2. Introduction<\/h2>\n<p>In this example we are going to use Google maps from our Vaadin application.We are also going to use an add-on to make Google maps available in our application.<br \/>\nThe application is going to load Google maps and then go to a specific location in the world.&nbsp;We are going to create a window with a few widgets to navigate in Google maps using Vaadin.<br \/>\nWith the controls we can introduce the latitude and the longitude and then navigate to that place in the map.&nbsp;You can set markers to a specific location and delete these markers.<\/p>\n<h2><a name=\"toc300\"><\/a>3. Prerequisites<\/h2>\n<ul>\n<li>JDK installed<\/li>\n<li>Eclipse Mars installed and working<\/li>\n<li>Vaadin plug-in installed<\/li>\n<li>Tomcat 8 installed and running<\/li>\n<\/ul>\n<h2><a name=\"toc400\"><\/a>4. Set up the project<\/h2>\n<p>In the file menu choose File -&gt; New -&gt; Other<\/p>\n<p><figure id=\"attachment_34378\" aria-describedby=\"caption-attachment-34378\" style=\"width: 646px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/01-New-Project-1.png\" rel=\"attachment wp-att-34378\"><img decoding=\"async\" class=\"size-full wp-image-34378\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/01-New-Project-1.png\" alt=\"01 New Project\" width=\"646\" height=\"422\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/01-New-Project-1.png 646w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/01-New-Project-1-300x196.png 300w\" sizes=\"(max-width: 646px) 100vw, 646px\" \/><\/a><figcaption id=\"caption-attachment-34378\" class=\"wp-caption-text\">1 New Project<\/figcaption><\/figure><\/p>\n<p>Now from the list choose Vaadin 7 project<\/p>\n<p><figure id=\"attachment_34379\" aria-describedby=\"caption-attachment-34379\" style=\"width: 524px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/02-Vaadin-Project-1.png\" rel=\"attachment wp-att-34379\"><img decoding=\"async\" class=\"size-full wp-image-34379\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/02-Vaadin-Project-1.png\" alt=\"02 Vaadin Project\" width=\"524\" height=\"499\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/02-Vaadin-Project-1.png 524w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/02\/02-Vaadin-Project-1-300x286.png 300w\" sizes=\"(max-width: 524px) 100vw, 524px\" \/><\/a><figcaption id=\"caption-attachment-34379\" class=\"wp-caption-text\">2 Vaadin Project<\/figcaption><\/figure><\/p>\n<p>Click&nbsp;next and name your project then click finish.<\/p>\n<h2><a name=\"toc500\"><\/a>5. The example<\/h2>\n<h3><a name=\"toc510\"><\/a>5.1 Configure the add-on<\/h3>\n<p>We are going to use this wonderful add-on from here.<\/p>\n<ul>\n<li><a href=\"https:\/\/vaadin.com\/directory#!addon\/googlemaps-add-on\" target=\"_blank\" rel=\"noopener noreferrer\">Vaadin Maps add-on<\/a><\/li>\n<\/ul>\n<p>To configure the add-on we are using Ivy, but you can use Maven or configure the add-on manually.<\/p>\n<h4><a name=\"toc511\"><\/a>5.1.1 Edit ivy.xml<\/h4>\n<p>Edit the file <code>ivy.xml<\/code> in the project root. Then&nbsp;add the following lines inside the dependencies tag.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>dependencies<\/em><\/span><\/p>\n<pre class=\"brush:xml\">\t&lt;!-- Google Maps Addon --&gt;\t\n\t&lt;dependency org=\"com.vaadin.tapio\" name=\"googlemaps\" rev=\"1.3.2\" \/&gt;\n<\/pre>\n<p>This tells ivy what is the name of the plugin.<\/p>\n<h4><a name=\"toc512\"><\/a>5.1.2 Edit ivysettings.xml<\/h4>\n<p>Edit the file <code>ivysettings.xml<\/code> in the project root, and add the following lines inside the resolvers tag.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>resolvers<\/em><\/span><\/p>\n<pre class=\"brush:xml\">\t&lt;!-- Vaadin Google Maps Add On --&gt;\t\n\t&lt;ibiblio name=\"vaadin-addons\" usepoms=\"true\" m2compatible=\"true\" \n   \t\troot=\"http:\/\/maven.vaadin.com\/vaadin-addons\" \/&gt;\t\t\t\n<\/pre>\n<p>This tells ivy where to find the plugin.&nbsp;Now ivy is going to download all dependencies needed by the add-on.<\/p>\n<h3><a name=\"toc520\"><\/a>5.2 Edit the styles<\/h3>\n<p>We are going to use some custom styles in our application.<br \/>\nOpen the styles file:<br \/>\n<code>[PROJECT_ROOT]\/WebContent\/VAADIN\/Themes\/[PROJECT_NAME]\/[PROJECT_NAME].scss<\/code><\/p>\n<p><figure id=\"attachment_39687\" aria-describedby=\"caption-attachment-39687\" style=\"width: 296px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/3-Styles.png\"><img decoding=\"async\" class=\"size-full wp-image-39687\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/3-Styles.png\" alt=\"3 Styles\" width=\"296\" height=\"525\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/3-Styles.png 296w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/3-Styles-169x300.png 169w\" sizes=\"(max-width: 296px) 100vw, 296px\" \/><\/a><figcaption id=\"caption-attachment-39687\" class=\"wp-caption-text\">3 Styles<\/figcaption><\/figure><\/p>\n<h4><a name=\"toc521\"><\/a>5.2.1 Windows contents<\/h4>\n<p>The window&#8217;s contents is the client area of the window widget.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Windows contents<\/em><\/span><\/p>\n<pre class=\"brush:java\">\t.v-window-mywindowstyle .v-window-contents {\n\t\tbackground: #f8f8cd;\n\t}\n<\/pre>\n<p>We set the color to a light yellow.<\/p>\n<h4><a name=\"toc522\"><\/a>5.2.2 Windows header<\/h4>\n<p>The header is the top of the window when we put the title.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Header<\/em><\/span><\/p>\n<pre class=\"brush:java\">\t.v-window-mywindowstyle .v-window-outerheader {\n\t\tbackground: #0c2640;\n\t} \n\n\t.v-window-mywindowstyle .v-window-header {\n    \tfont-weight: bold;\n\t\tcolor: white;\n\t}\n<\/pre>\n<p>We set the background color to a dark blue and the text white with a bold font.<\/p>\n<h4><a name=\"toc523\"><\/a>5.2.3 Error labels<\/h4>\n<p>We are going to create two labels to show the input errors.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Error labels<\/em><\/span><\/p>\n<pre class=\"brush:java\">\t.v-label-mylabelstyle {\n    \tcolor: white;\n    \ttext-align: center;\n    \tbackground-color: red;\t\n    \tborder-color: white;\n    \tfont-weight: bold;\n\t}\n<\/pre>\n<p>We set the background color of the label to red and center the text.&nbsp;We also set the text bold and add a border to the label.<\/p>\n<h3><a name=\"toc520\"><\/a>5.3 Main Class<\/h3>\n<h4><a name=\"toc531\"><\/a>5.3.1 Local Variables<\/h4>\n<p>We are going to use two local variables in our application.&nbsp;The variable for the map itself and a variable for the api key.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Local variables<\/em><\/span><\/p>\n<pre class=\"brush:java\">    private GoogleMap googleMap;\n    private final String apiKey = \"api-key\";\n<\/pre>\n<p><code>private GoogleMap googleMap;<\/code> A local variable to the map instance.<br \/>\n<code>private final String apiKey = \"api-key\";<\/code> The api key from Google.<\/p>\n<p>The Api key is a key that allows you to use the Google Maps product. To obtain this key you need to log in, in Google developers and create a new project, generate the key for Google maps and activate the project.<\/p>\n<h4><a name=\"toc532\"><\/a>5.3.2 The layout<\/h4>\n<p>We are going to use a vertical layout as our main layout.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Create the layout<\/em><\/span><\/p>\n<pre class=\"brush:java\">        VerticalLayout rootLayout = new VerticalLayout();\n        rootLayout.setSizeFull();\n        setContent(rootLayout);\n<\/pre>\n<p><code>VerticalLayout rootLayout = new VerticalLayout();<\/code>&nbsp;Creates a vertical layout.<br \/>\n<code>rootLayout.setSizeFull();<\/code> Sets the size of the layout to full.<br \/>\n<code>setContent(rootLayout);<\/code> Sets the vertical layout as our main content layout.<\/p>\n<h4><a name=\"toc533\"><\/a>5.3.3 Create the map<\/h4>\n<p>We are going to initialize the map.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Create the map<\/em><\/span><\/p>\n<pre class=\"brush:java\">        googleMap = new GoogleMap(apiKey, null, null);\n        googleMap.setZoom(10);\n        googleMap.setSizeFull();\n        googleMap.setMinZoom(4);\n        googleMap.setMaxZoom(16);\n\n        Panel mapsPanel = new Panel();\n        mapsPanel.setSizeFull();\n        mapsPanel.setContent(googleMap);\n        rootLayout.addComponent(mapsPanel);\n<\/pre>\n<p><code>googleMap = new GoogleMap(apiKey, null, null);<\/code> Initializes the instance of the map using the api key.<br \/>\n<code>googleMap.setZoom(10);<\/code> Sets the default zoom.<\/p>\n<p><code>googleMap.setSizeFull();<\/code> Sets the size of the map to fill all the client area.<br \/>\n<code>googleMap.setMinZoom(4);<\/code> Sets the minimum zoom of the map.<\/p>\n<p><code>googleMap.setMaxZoom(16);<\/code> Sets the maximum zoom of the map.<br \/>\n<code>Panel mapsPanel = new Panel();<\/code> Creates a panel to put the map.<\/p>\n<p><code>mapsPanel.setSizeFull();<\/code> Fills the entite client area.<br \/>\n<code>mapsPanel.setContent(googleMap);<\/code> Sets the content of the panel to the map.<\/p>\n<p><code>rootLayout.addComponent(mapsPanel);<\/code> Adds the map to the layout.<\/p>\n<h4><a name=\"toc534\"><\/a>5.3.4 Create the tool box window<\/h4>\n<p>To control the map we are going to create a floating window.&nbsp;You can move this window to view behind it.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Create the window<\/em><\/span><\/p>\n<pre class=\"brush:java\">        Window mapToolBox = new Window(\"Map Tool Box\");\n        mapToolBox.setClosable(false);\n        mapToolBox.setResizable(false);\n        mapToolBox.setPosition(10, 100);\n        mapToolBox.setWidth(\"350px\");\n        mapToolBox.setHeight(\"520px\");\n        mapToolBox.addStyleName(\"mywindowstyle\");\n        UI.getCurrent().addWindow(mapToolBox);\n<\/pre>\n<p><code>Window mapToolBox = new Window(\"Map Tool Box\");<\/code> Creates the new window.<br \/>\n<code>mapToolBox.setClosable(false);<\/code> Disables the close button of the window.<\/p>\n<p><code>mapToolBox.setResizable(false);<\/code> Disables resize on the window.<br \/>\n<code>mapToolBox.setPosition(10, 100);<\/code> Sets the initial position of the window.<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<p><code>mapToolBox.setWidth(\"350px\");<\/code> Sets the width of the window.<br \/>\n<code>mapToolBox.setHeight(\"520px\");<\/code> Sets the height of the window.<\/p>\n<p><code>mapToolBox.addStyleName(\"mywindowstyle\");<\/code> Assigns the style to the window.<br \/>\n<code>UI.getCurrent().addWindow(mapToolBox);<\/code> Adds the window to the UI.<\/p>\n<h4><a name=\"toc535\"><\/a>5.3.5 Add the widgets to the window<\/h4>\n<p><span style=\"text-decoration: underline;\"><em>The window contents<\/em><\/span><\/p>\n<pre class=\"brush:java\">        HorizontalLayout latlonLayout = new HorizontalLayout();\n        latlonLayout.setSpacing(true);\n        \n        TextField latitude = new TextField(\"Lat\");\n        latitude.setWidth(\"100px\");\n        latitude.setNullSettingAllowed(true);\n        latitude.setNullRepresentation(\"0.0\");\n        \n        TextField longitude = new TextField(\"Long\");\n        longitude.setWidth(\"100px\");\n        longitude.setNullSettingAllowed(true);\n        longitude.setNullRepresentation(\"0.0\");\n        \n        latlonLayout.addComponent(latitude);\n        latlonLayout.addComponent(longitude);\n        \n        HorizontalLayout infoLayout = new HorizontalLayout();\n        infoLayout.setSpacing(true);\n        \n        Label currentLat = new Label();\n        currentLat.setCaption(\"Current Latitude\");\n        \n        Label currentLon = new Label();\n        currentLon.setCaption(\"Current Longitude\");\n\n        infoLayout.addComponent(currentLat);\n        infoLayout.addComponent(currentLon);\n        \n        TextField markerName = new TextField(\"Marker Name\");\n\n        Label latErrMsg = new Label();\n        latErrMsg.addStyleName(\"mylabelstyle\");\n        Label lonErrMsg = new Label();\n        lonErrMsg.addStyleName(\"mylabelstyle\");\n\n<\/pre>\n<p><code>HorizontalLayout latlonLayout = new HorizontalLayout();<\/code> Creates a layout for the latitude and longitude inputs.<br \/>\n<code>latlonLayout.setSpacing(true);<\/code> Sets the space of the layout.<\/p>\n<p><code>TextField latitude = new TextField(\"Lat\");<\/code> Create a text field to input the latitude.<br \/>\n<code>latitude.setWidth(\"100px\");<\/code> Sets the width of the text field.<\/p>\n<p><code>latitude.setNullSettingAllowed(true);<\/code> Allows null into the text field.<br \/>\n<code>latitude.setNullRepresentation(\"0.0\");<\/code> Sets the null representation of the text field.<\/p>\n<p><code>TextField longitude = new TextField(\"Long\");<\/code> Creates a text field to input the longitude.<br \/>\n<code>longitude.setWidth(\"100px\");<\/code> Sets the width of the longitude text input.<\/p>\n<p><code>longitude.setNullSettingAllowed(true);<\/code> Allows null into the text field.<br \/>\n<code>longitude.setNullRepresentation(\"0.0\");<\/code> Sets the null representation of the text field.<\/p>\n<p><code>latlonLayout.addComponent(latitude);<\/code> Adds the latitude text field to the layout.<br \/>\n<code>latlonLayout.addComponent(longitude);<\/code> Adds the longitude text field to the layout.<\/p>\n<p><code>HorizontalLayout infoLayout = new HorizontalLayout();<\/code> Creates a layout for the info labels.<br \/>\n<code>infoLayout.setSpacing(true);<\/code> Sets the spacing of the layout.<\/p>\n<p><code>Label currentLat = new Label();<\/code> Creates a new label to show the current latitude.<br \/>\n<code>currentLat.setCaption(\"Current Latitude\");<\/code> Sets the caption of the label.<\/p>\n<p><code>Label currentLon = new Label();<\/code> Creates a label to show the current longitude.<br \/>\n<code>currentLon.setCaption(\"Current Longitude\");<\/code> Sets the caption of the current longitude label.<\/p>\n<p><code>infoLayout.addComponent(currentLat);<\/code> Adds the latitude label to the info layout.<br \/>\n<code>infoLayout.addComponent(currentLon);<\/code> Adds the longitude label to the info layout.<\/p>\n<p><code>TextField markerName = new TextField(\"Marker Name\");<\/code> Creates a text field to input marker names.<br \/>\n<code>Label latErrMsg = new Label();<\/code> Creates a label to show latitude input errors.<\/p>\n<p><code>latErrMsg.addStyleName(\"mylabelstyle\");<\/code> Adds a style to the label.<br \/>\n<code>Label lonErrMsg = new Label();<\/code> Creates a label to show longitude input errors.<\/p>\n<p><code>lonErrMsg.addStyleName(\"mylabelstyle\");<\/code> Adds the style to the error label.<\/p>\n<h4><a name=\"toc536\"><\/a>5.3.6 Button to add markers<\/h4>\n<p>We are going to create a button to add a marker to the current location.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Add markers<\/em><\/span><\/p>\n<pre class=\"brush:java\">        Button.ClickListener addMarkerListener = new ClickListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void buttonClick(ClickEvent event) {\n\t\t\t\tString mName = markerName.getValue();\n\t\t\t\tif(mName.isEmpty()){\n\t\t\t\t\tmName = \"Marker\";\n\t\t\t\t}\n\t\t\t\tDouble dLat = 0.0; \n\t\t\t\tDouble dLon = 0.0; \n\t\t\t\tdLat = Double.valueOf(currentLat.getValue());\n\t\t\t\tdLon = Double.valueOf(currentLon.getValue());\n\n\t\t\t\tGoogleMapMarker customMarker = new GoogleMapMarker(mName, new LatLon(dLat, dLon),true, null);\n\t\t\t\tgoogleMap.addMarker(customMarker);\n\t\t\t}\n\t\t};\n        \n        Button addMarker = new Button(\"Add Marker\", FontAwesome.ANCHOR);\n        addMarker.addClickListener(addMarkerListener);\n<\/pre>\n<p><code>Button.ClickListener addMarkerListener = new ClickListener()<\/code> Creates a click listener.<br \/>\n<code>String mName = markerName.getValue();<\/code> Gets the value of the markers text field.<\/p>\n<p><code>if(mName.isEmpty())<\/code> Checks if the name of the marker id empty.<br \/>\n<code>mName = \"Marker\";<\/code> If the name of the marker id is empty it adds a default name.<\/p>\n<p><code>Double dLat = 0.0; <\/code> Creates a variable to store the latitude.<br \/>\n<code>Double dLon = 0.0;<\/code> Creates a variable to store the longitude.<\/p>\n<p><code>dLat = Double.valueOf(currentLat.getValue());<\/code> Gets the value of the current latitude into the variable.<br \/>\n<code>dLon = Double.valueOf(currentLon.getValue());<\/code> Gets tha value of the current longitude into the variable.<\/p>\n<p><code>GoogleMapMarker customMarker = new GoogleMapMarker(mName, new LatLon(dLat, dLon),true, null);<\/code> Creates a new marker with the name, the latitude and the longitude supplied.<br \/>\n<code>googleMap.addMarker(customMarker);<\/code> Adds the marker to the map.<\/p>\n<p><code>Button addMarker = new Button(\"Add Marker\", FontAwesome.ANCHOR);<\/code> Creates the button to add the marker.<br \/>\n<code>addMarker.addClickListener(addMarkerListener);<\/code> Assigns the listener to the button.<\/p>\n<h4><a name=\"toc537\"><\/a>5.3.7 Button to move the view<\/h4>\n<p>We are going to create a button to move the view of the map to a fixed latitude and longitude coordinates.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Move view<\/em><\/span><\/p>\n<pre class=\"brush:java\">        Button.ClickListener moveView = new ClickListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void buttonClick(ClickEvent event) {\n\t\t\t\tBoolean val = true;\n\t\t\t\tDouble dLat = 0.0; \n\t\t\t\tDouble dLon = 0.0; \n\n\t\t\t\ttry {\n\t\t\t\t\tdLat = Double.valueOf(latitude.getValue());\n\t\t\t\t} catch (Exception e) {\n\t\t\t\t\tval = false;\n\t\t\t\t\tlatErrMsg.setValue(\"Latitude is not a valid number\");\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tdLon = Double.valueOf(longitude.getValue());\n\t\t\t\t} catch (Exception e) {\n\t\t\t\t\tval = false;\n\t\t\t\t\tlonErrMsg.setValue(\"Longitude is not a valid number\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(val){\n\t\t\t\t\tlatErrMsg.setValue(\"\");\n\t\t\t\t\tlonErrMsg.setValue(\"\");\n\t\t\t\t\tif((dLat= 85.0)){\n\t\t\t\t\t\tval = false;\n\t\t\t\t\t\tlatErrMsg.setValue(\"Latitude must be between -85.0 and 85.0\");\n\t\t\t\t\t}\n\t\t\t\t\tif((dLon= 180.0)){\n\t\t\t\t\t\tval = false;\n\t\t\t\t\t\tlonErrMsg.setValue(\"Longitude  must be between -180.0 and 180.0\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(val){\n\t\t\t\t\tlatErrMsg.setValue(\"\");\n\t\t\t\t\tlonErrMsg.setValue(\"\");\n\t                \t\tgoogleMap.setCenter(new LatLon(dLat, dLon));\n\t                \t\tgoogleMap.setZoom(12);\n\t                \t\tcurrentLat.setValue(latitude.getValue());\n\t                \t\tcurrentLon.setValue(longitude.getValue());\n\t\t\t\t}\n\t\t\t}\n\t\t};\n        \n        Button moveButton = new Button(\"Move\", FontAwesome.BULLSEYE);\n        moveButton.addClickListener(moveView);\n<\/pre>\n<p><code>Button.ClickListener moveView = new ClickListener()<\/code> Creates a click listener for the move view button.<br \/>\n<code>Boolean val = true;<\/code> Creates a boolean val to validate the input.<\/p>\n<p><code>Double dLat = 0.0; <\/code> Creates a double value to store the latitude.<br \/>\n<code>Double dLon = 0.0; <\/code> Creates a double value to stores the longitude.<\/p>\n<p><code>dLat = Double.valueOf(latitude.getValue());<\/code> Tries to convert the latitude input field to double.<br \/>\n<code>val = false;<\/code> If we cannot convert the latitude value, we set the val boolean to false.<\/p>\n<p><code>latErrMsg.setValue(\"Latitude is not a valid number\");<\/code>&nbsp;sets the latitude error message.<br \/>\n<code>dLon = Double.valueOf(longitude.getValue());<\/code> Tries to convert the longitude input field.<\/p>\n<p><code>val = false;<\/code> If the conversion fail, sets the value of val to false.<br \/>\n<code>lonErrMsg.setValue(\"Longitude is not a valid number\");<\/code> Sets the error label for longitude.<\/p>\n<p><code>if(val)<\/code> We check that the conversion was done.<br \/>\n<code>latErrMsg.setValue(\"\");<\/code> Clears the latitude error message.<\/p>\n<p><code>lonErrMsg.setValue(\"\");<\/code> Clears the longitude error message.<br \/>\n<code>if((dLat= 85.0)){<\/code> Checks the range of the latitude.<\/p>\n<p><code>val = false;<\/code> If the range is invalid sets the validation to false.<br \/>\n<code>latErrMsg.setValue(\"Latitude must be between -85.0 and 85.0\");<\/code> Sets the latitude error label.<\/p>\n<p><code>if((dLon= 180.0)){<\/code> Checks the range of the longitude.<br \/>\n<code>val = false;<\/code> Sets the validation to false.<\/p>\n<p><code>lonErrMsg.setValue(\"Longitude must be between -180.0 and 180.0\");<\/code> Sets the error label.<br \/>\n<code>if(val)<\/code> Checks the validation.<\/p>\n<p><code>latErrMsg.setValue(\"\");<\/code> Clears the latitude error label.<br \/>\n<code>lonErrMsg.setValue(\"\");<\/code> Clears the longitude error label.<\/p>\n<p><code>googleMap.setCenter(new LatLon(dLat, dLon));<\/code> Moves the map to the fixed position.<br \/>\n<code>googleMap.setZoom(12);<\/code> Sets the zoom level of the map.<\/p>\n<p><code>currentLat.setValue(latitude.getValue());<\/code> Sets the current latitude label.<br \/>\n<code>currentLon.setValue(longitude.getValue());<\/code> Sets the current longitude label.<\/p>\n<p><code>Button moveButton = new Button(\"Move\", FontAwesome.BULLSEYE);<\/code> Creates a button to move the view.<br \/>\n<code>moveButton.addClickListener(moveView);<\/code> Adds the click listener to the button.<\/p>\n<h4><a name=\"toc538\"><\/a>5.3.8 Button to clear the markers<\/h4>\n<p>We are going to create a button that clears all the markers in the map.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>java<\/em><\/span><\/p>\n<pre class=\"brush:java\">        Button.ClickListener clearMarkerListener = new ClickListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void buttonClick(ClickEvent event) {\n                \t\tgoogleMap.clearMarkers();\n\t\t\t}\n\t\t};\n\n\t\tButton clearMarkersButton = new Button(\"Clear markers\", FontAwesome.REMOVE);\n        \tclearMarkersButton.addClickListener(clearMarkerListener);\n\n<\/pre>\n<p><code>Button.ClickListener clearMarkerListener = new ClickListener()<\/code> Creates a listener to the clear markers button.<br \/>\n<code>googleMap.clearMarkers();<\/code> Clears all the markers in the map.[ulp id=&#8217;YBvYYzEYBUrADqmI&#8217;]<\/p>\n<p><code>Button clearMarkersButton = new Button(\"Clear markers\", FontAwesome.REMOVE);<\/code> Creates a button to clear the markers.<br \/>\n<code>clearMarkersButton.addClickListener(clearMarkerListener);<\/code> Add the listener to the button.<\/p>\n<h4><a name=\"toc539\"><\/a>5.3.9 Add a default marker<\/h4>\n<p>We are going to add a marker to New York as example.<\/p>\n<p><span style=\"text-decoration: underline;\"><em>Default marker<\/em><\/span><\/p>\n<pre class=\"brush:java\">        Double newyorkLat = 40.7128;\n        Double newyorkLon = -74.0059;\n        googleMap.setCenter(new LatLon(40.7128, -74.0059));\n\t\tGoogleMapMarker newyorkMarker = new GoogleMapMarker(\"New York\", new LatLon(newyorkLat, newyorkLon),true, null);\n\t\tgoogleMap.addMarker(newyorkMarker);\n\t\tlatitude.setValue(newyorkLat.toString());\n\t\tlongitude.setValue(newyorkLon.toString());\n\t\tcurrentLat.setValue(latitude.getValue());\n\t\tcurrentLon.setValue(longitude.getValue());\n<\/pre>\n<p><code>Double newyorkLat = 40.7128;<\/code> Defines a double with the New York Latitude.<br \/>\n<code>Double newyorkLon = -74.0059;<\/code> Defines a double with the New York Longitude.<\/p>\n<p><code>googleMap.setCenter(new LatLon(40.7128, -74.0059));<\/code> Center the map in New Your.<br \/>\n<code>GoogleMapMarker newyorkMarker = new GoogleMapMarker(\"New York\", new LatLon(newyorkLat, newyorkLon),true, null);<\/code> Creates a marker in New York.<\/p>\n<p><code>googleMap.addMarker(newyorkMarker);<\/code> Adds the marker to the map.<br \/>\n<code>latitude.setValue(newyorkLat.toString());<\/code> Sets the latitude text field value to the New York latitude.<\/p>\n<p><code>longitude.setValue(newyorkLon.toString());<\/code> Sets the longitude text field value to the New York longitude.<br \/>\n<code>currentLat.setValue(latitude.getValue());<\/code> Sets the latitude current value to the New York latitude.<\/p>\n<p><code>currentLon.setValue(longitude.getValue());<\/code> Sets the longitude current value to the New York longitude.<\/p>\n<h4><a name=\"toc5310\"><\/a>5.3.10 Add the window contents<\/h4>\n<p><span style=\"text-decoration: underline;\"><em>Fill the window<\/em><\/span><\/p>\n<pre class=\"brush:java\">        VerticalLayout toolLayout = new VerticalLayout();\n        toolLayout.setMargin(true);\n        toolLayout.setSpacing(true);\n        mapToolBox.setContent(toolLayout);\n        toolLayout.addComponent(clearMarkersButton);\n        toolLayout.addComponent(latlonLayout);\n        toolLayout.addComponent(moveButton);\n        toolLayout.addComponent(infoLayout);\n        toolLayout.addComponent(markerName);\n        toolLayout.addComponent(addMarker);\n        toolLayout.addComponent(latErrMsg);\n        toolLayout.addComponent(lonErrMsg);\n<\/pre>\n<p><code>VerticalLayout toolLayout = new VerticalLayout();<\/code> Creates a vertical layout to the window.<br \/>\n<code>toolLayout.setMargin(true);<\/code> Sets the margin of the window layout.<\/p>\n<p><code>toolLayout.setSpacing(true);<\/code> Sets the spacing to the window layout.<br \/>\n<code>mapToolBox.setContent(toolLayout);<\/code> Sets the layout to the map panel.<\/p>\n<p><code>toolLayout.addComponent(clearMarkersButton);<\/code> Adds the clear markers button.<br \/>\n<code>toolLayout.addComponent(latlonLayout);<\/code> Adds the text field layout to the window layout.<\/p>\n<p><code>toolLayout.addComponent(moveButton);<\/code> Adds the move button to the layout.<br \/>\n<code>toolLayout.addComponent(infoLayout);<\/code> Adds the info layout to the window layout.<\/p>\n<p><code>toolLayout.addComponent(markerName);<\/code> Adds the marker input box to the window layout.<br \/>\n<code>toolLayout.addComponent(addMarker);<\/code> Adds the add marker button to the layout.<\/p>\n<p><code>toolLayout.addComponent(latErrMsg);<\/code> Adds the latitude error label to the layout.<br \/>\n<code>toolLayout.addComponent(lonErrMsg);<\/code> Adds the longitude error label to the layout.<\/p>\n<h2><a name=\"toc600\"><\/a>6. The complete source code<\/h2>\n<h3><a name=\"toc610\"><\/a>6.1 Main class<\/h3>\n<p><span style=\"text-decoration: underline;\"><em>VaadinmapsUI.java<\/em><\/span><\/p>\n<pre class=\"brush:java\">package com.example.vaadinmaps;\n\nimport javax.servlet.annotation.WebServlet;\n\nimport com.vaadin.annotations.Theme;\nimport com.vaadin.annotations.VaadinServletConfiguration;\nimport com.vaadin.data.util.PropertysetItem;\nimport com.vaadin.data.validator.DoubleRangeValidator;\nimport com.vaadin.data.fieldgroup.FieldGroup;\nimport com.vaadin.data.util.ObjectProperty;\nimport com.vaadin.server.FontAwesome;\nimport com.vaadin.server.VaadinRequest;\nimport com.vaadin.server.VaadinServlet;\nimport com.vaadin.tapio.googlemaps.GoogleMap;\nimport com.vaadin.tapio.googlemaps.client.LatLon;\nimport com.vaadin.tapio.googlemaps.client.overlays.GoogleMapInfoWindow;\nimport com.vaadin.tapio.googlemaps.client.overlays.GoogleMapMarker;\nimport com.vaadin.ui.Button;\nimport com.vaadin.ui.Button.ClickEvent;\nimport com.vaadin.ui.Button.ClickListener;\nimport com.vaadin.ui.HorizontalLayout;\nimport com.vaadin.ui.Label;\nimport com.vaadin.ui.Panel;\nimport com.vaadin.ui.TextField;\nimport com.vaadin.ui.UI;\nimport com.vaadin.ui.VerticalLayout;\nimport com.vaadin.ui.Window;\n\n@SuppressWarnings(\"serial\")\n@Theme(\"vaadinmaps\")\npublic class VaadinmapsUI extends UI {\n\n    private GoogleMap googleMap;\n    private final String apiKey = \"api-key\";\n\t\n\t@WebServlet(value = \"\/*\", asyncSupported = true)\n\t@VaadinServletConfiguration(productionMode = false, ui = VaadinmapsUI.class, widgetset = \"com.example.vaadinmaps.widgetset.VaadinmapsWidgetset\")\n\tpublic static class Servlet extends VaadinServlet {\n\t}\n\n\t@Override\n\tprotected void init(VaadinRequest request) {\n        VerticalLayout rootLayout = new VerticalLayout();\n        rootLayout.setSizeFull();\n        setContent(rootLayout);\n\n        googleMap = new GoogleMap(apiKey, null, null);\n        googleMap.setZoom(10);\n        googleMap.setSizeFull();\n        googleMap.setMinZoom(4);\n        googleMap.setMaxZoom(16);\n\n        Panel mapsPanel = new Panel();\n        mapsPanel.setSizeFull();\n        mapsPanel.setContent(googleMap);\n        rootLayout.addComponent(mapsPanel);\n\n        Window mapToolBox = new Window(\"Map Tool Box\");\n        mapToolBox.setClosable(false);\n        mapToolBox.setResizable(false);\n        mapToolBox.setPosition(10, 100);\n        mapToolBox.setWidth(\"350px\");\n        mapToolBox.setHeight(\"520px\");\n        mapToolBox.addStyleName(\"mywindowstyle\");\n        UI.getCurrent().addWindow(mapToolBox);\n\n        HorizontalLayout latlonLayout = new HorizontalLayout();\n        latlonLayout.setSpacing(true);\n        \n        TextField latitude = new TextField(\"Lat\");\n        latitude.setWidth(\"100px\");\n        latitude.setNullSettingAllowed(true);\n        latitude.setNullRepresentation(\"0.0\");\n        \n        TextField longitude = new TextField(\"Long\");\n        longitude.setWidth(\"100px\");\n        longitude.setNullSettingAllowed(true);\n        longitude.setNullRepresentation(\"0.0\");\n        \n        latlonLayout.addComponent(latitude);\n        latlonLayout.addComponent(longitude);\n        \n        HorizontalLayout infoLayout = new HorizontalLayout();\n        infoLayout.setSpacing(true);\n        \n        Label currentLat = new Label();\n        currentLat.setCaption(\"Current Latitude\");\n        \n        Label currentLon = new Label();\n        currentLon.setCaption(\"Current Longitude\");\n\n        infoLayout.addComponent(currentLat);\n        infoLayout.addComponent(currentLon);\n        \n        TextField markerName = new TextField(\"Marker Name\");\n\n        Label latErrMsg = new Label();\n        latErrMsg.addStyleName(\"mylabelstyle\");\n        Label lonErrMsg = new Label();\n        lonErrMsg.addStyleName(\"mylabelstyle\");\n        \n        Button.ClickListener addMarkerListener = new ClickListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void buttonClick(ClickEvent event) {\n\t\t\t\tString mName = markerName.getValue();\n\t\t\t\tif(mName.isEmpty()){\n\t\t\t\t\tmName = \"Marker\";\n\t\t\t\t}\n\t\t\t\tDouble dLat = 0.0; \n\t\t\t\tDouble dLon = 0.0; \n\t\t\t\tdLat = Double.valueOf(currentLat.getValue());\n\t\t\t\tdLon = Double.valueOf(currentLon.getValue());\n\n\t\t\t\tGoogleMapMarker customMarker = new GoogleMapMarker(mName, new LatLon(dLat, dLon),true, null);\n\t\t\t\tgoogleMap.addMarker(customMarker);\n\t\t\t}\n\t\t};\n        \n        Button addMarker = new Button(\"Add Marker\", FontAwesome.ANCHOR);\n        addMarker.addClickListener(addMarkerListener);\n        \n        Button.ClickListener moveView = new ClickListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void buttonClick(ClickEvent event) {\n\t\t\t\tBoolean val = true;\n\t\t\t\tDouble dLat = 0.0; \n\t\t\t\tDouble dLon = 0.0; \n\n\t\t\t\ttry {\n\t\t\t\t\tdLat = Double.valueOf(latitude.getValue());\n\t\t\t\t} catch (Exception e) {\n\t\t\t\t\tval = false;\n\t\t\t\t\tlatErrMsg.setValue(\"Latitude is not a valid number\");\n\t\t\t\t}\n\t\t\t\ttry {\n\t\t\t\t\tdLon = Double.valueOf(longitude.getValue());\n\t\t\t\t} catch (Exception e) {\n\t\t\t\t\tval = false;\n\t\t\t\t\tlonErrMsg.setValue(\"Longitude is not a valid number\");\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(val){\n\t\t\t\t\tlatErrMsg.setValue(\"\");\n\t\t\t\t\tlonErrMsg.setValue(\"\");\n\t\t\t\t\tif((dLat= 85.0)){\n\t\t\t\t\t\tval = false;\n\t\t\t\t\t\tlatErrMsg.setValue(\"Latitude must be between -85.0 and 85.0\");\n\t\t\t\t\t}\n\t\t\t\t\tif((dLon= 180.0)){\n\t\t\t\t\t\tval = false;\n\t\t\t\t\t\tlonErrMsg.setValue(\"Longitude  must be between -180.0 and 180.0\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(val){\n\t\t\t\t\tlatErrMsg.setValue(\"\");\n\t\t\t\t\tlonErrMsg.setValue(\"\");\n\t                googleMap.setCenter(new LatLon(dLat, dLon));\n\t                googleMap.setZoom(12);\n\t                currentLat.setValue(latitude.getValue());\n\t                currentLon.setValue(longitude.getValue());\n\t\t\t\t}\n\t\t\t}\n\t\t};\n        \n        Button moveButton = new Button(\"Move\", FontAwesome.BULLSEYE);\n        moveButton.addClickListener(moveView);\n\n        Button.ClickListener clearMarkerListener = new ClickListener() {\n\t\t\t\n\t\t\t@Override\n\t\t\tpublic void buttonClick(ClickEvent event) {\n                googleMap.clearMarkers();\n\t\t\t}\n\t\t};\n\n\t\tButton clearMarkersButton = new Button(\"Clear markers\", FontAwesome.REMOVE);\n        clearMarkersButton.addClickListener(clearMarkerListener);\n\n        Double newyorkLat = 40.7128;\n        Double newyorkLon = -74.0059;\n        googleMap.setCenter(new LatLon(40.7128, -74.0059));\n\t\tGoogleMapMarker newyorkMarker = new GoogleMapMarker(\"New York\", new LatLon(newyorkLat, newyorkLon),true, null);\n\t\tgoogleMap.addMarker(newyorkMarker);\n\t\tlatitude.setValue(newyorkLat.toString());\n\t\tlongitude.setValue(newyorkLon.toString());\n\t\tcurrentLat.setValue(latitude.getValue());\n\t\tcurrentLon.setValue(longitude.getValue());\n\n        VerticalLayout toolLayout = new VerticalLayout();\n        toolLayout.setMargin(true);\n        toolLayout.setSpacing(true);\n        mapToolBox.setContent(toolLayout);\n        toolLayout.addComponent(clearMarkersButton);\n        toolLayout.addComponent(latlonLayout);\n        toolLayout.addComponent(moveButton);\n        toolLayout.addComponent(infoLayout);\n        toolLayout.addComponent(markerName);\n        toolLayout.addComponent(addMarker);\n        toolLayout.addComponent(latErrMsg);\n        toolLayout.addComponent(lonErrMsg);\n\t}\n}\n<\/pre>\n<h3><a name=\"toc620\"><\/a>6.2 Styles<\/h3>\n<p><span style=\"text-decoration: underline;\"><em>vaadinmaps.scss<\/em><\/span><\/p>\n<pre class=\"brush:java\">@import \"..\/valo\/valo.scss\";\n\n@mixin vaadinmaps {\n  @include valo;\n\n\t.v-window-mywindowstyle .v-window-contents {\n\t\tbackground: #f8f8cd;\n\t}\n\n\t.v-window-mywindowstyle .v-window-outerheader {\n\t\tbackground: #0c2640;\n\t} \n\n\t.v-window-mywindowstyle .v-window-header {\n    \tfont-weight: bold;\n\t\tcolor: white;\n\t}\n\t\n\t.v-label-mylabelstyle {\n    \tcolor: white;\n    \ttext-align: center;\n    \tbackground-color: red;\t\n    \tborder-color: white;\n    \tfont-weight: bold;\n\t}\n\t\n}\n\n<\/pre>\n<h2><a name=\"toc700\"><\/a>7. Running the example<\/h2>\n<p>Right click on the project folder and choose Run as -&gt; Run on server choose Tomcat 8 server and press finish.<\/p>\n<h2><a name=\"toc800\"><\/a>8. Results<\/h2>\n<h3><a name=\"toc810\"><\/a>8.1 Start application<\/h3>\n<p>When you first start the application you get the following screen.<\/p>\n<p><figure id=\"attachment_39688\" aria-describedby=\"caption-attachment-39688\" style=\"width: 574px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/4-Start-application.png\"><img decoding=\"async\" class=\"size-full wp-image-39688\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/4-Start-application.png\" alt=\"4 Start application\" width=\"574\" height=\"475\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/4-Start-application.png 574w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/4-Start-application-300x248.png 300w\" sizes=\"(max-width: 574px) 100vw, 574px\" \/><\/a><figcaption id=\"caption-attachment-39688\" class=\"wp-caption-text\">4 Start application<\/figcaption><\/figure><\/p>\n<h3><a name=\"toc820\"><\/a>8.2 Input error<\/h3>\n<p>If your input is invalid you get the errors in the image.<\/p>\n<p><figure id=\"attachment_39689\" aria-describedby=\"caption-attachment-39689\" style=\"width: 521px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/5-Input-error.png\"><img decoding=\"async\" class=\"size-full wp-image-39689\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/5-Input-error.png\" alt=\"5 Input error\" width=\"521\" height=\"558\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/5-Input-error.png 521w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/5-Input-error-280x300.png 280w\" sizes=\"(max-width: 521px) 100vw, 521px\" \/><\/a><figcaption id=\"caption-attachment-39689\" class=\"wp-caption-text\">5 Input error<\/figcaption><\/figure><\/p>\n<h3><a name=\"toc830\"><\/a>8.3 Range error<\/h3>\n<p>If your range is invalid you get the following errors.<\/p>\n<p><figure id=\"attachment_39690\" aria-describedby=\"caption-attachment-39690\" style=\"width: 520px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/6-Range-error.png\"><img decoding=\"async\" class=\"size-full wp-image-39690\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/6-Range-error.png\" alt=\"6 Range error\" width=\"520\" height=\"577\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/6-Range-error.png 520w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/6-Range-error-270x300.png 270w\" sizes=\"(max-width: 520px) 100vw, 520px\" \/><\/a><figcaption id=\"caption-attachment-39690\" class=\"wp-caption-text\">6 Range error<\/figcaption><\/figure><\/p>\n<h3><a name=\"toc840\"><\/a>8.4 Move view<\/h3>\n<p>If you input the right coordinates, you can move the view.&nbsp;Input the coordinates of Oslo and click on the button move.&nbsp;Your view moves to Oslo.<\/p>\n<p><figure id=\"attachment_39691\" aria-describedby=\"caption-attachment-39691\" style=\"width: 594px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/7-Move-view.png\"><img decoding=\"async\" class=\"size-full wp-image-39691\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/7-Move-view.png\" alt=\"7 Move view\" width=\"594\" height=\"549\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/7-Move-view.png 594w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/7-Move-view-300x277.png 300w\" sizes=\"(max-width: 594px) 100vw, 594px\" \/><\/a><figcaption id=\"caption-attachment-39691\" class=\"wp-caption-text\">7 Move view<\/figcaption><\/figure><\/p>\n<h3><a name=\"toc850\"><\/a>8.5 Add Marker<\/h3>\n<p>You can add a marker to your current center position.&nbsp;Write a name and click on add marker.&nbsp;A marker in Oslo was added.<\/p>\n<p><figure id=\"attachment_39692\" aria-describedby=\"caption-attachment-39692\" style=\"width: 546px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/8-Add-Marker.png\"><img decoding=\"async\" class=\"size-full wp-image-39692\" src=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/8-Add-Marker.png\" alt=\"8 Add Marker\" width=\"546\" height=\"663\" srcset=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/8-Add-Marker.png 546w, https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/8-Add-Marker-247x300.png 247w\" sizes=\"(max-width: 546px) 100vw, 546px\" \/><\/a><figcaption id=\"caption-attachment-39692\" class=\"wp-caption-text\">8 Add Marker<\/figcaption><\/figure><\/p>\n<h2><a name=\"toc900\"><\/a>9. Download the Source Code<\/h2>\n<p>This was an example of: Vaadin Maps.<\/p>\n<div class=\"download\"><strong>Download<\/strong><br \/>\nYou can download the Eclipse project here:&nbsp;<strong><a href=\"http:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/08\/Vaadin-Maps.zip\">Vaadin-Maps<\/a><br \/>\n<\/strong><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Table Of Contents 1. The tools 2. Introduction 3. Prerequisites 4. Set up the project 5. Coding the example 5.1 Configure the add-on 5.1.1 Edit ivy.xml 5.1.2 Edit ivysettings.xml &hellip;<\/p>\n","protected":false},"author":77,"featured_media":33079,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1358],"tags":[1265],"class_list":["post-39685","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vaadin","tag-vaadin"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Vaadin Maps Example - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp;\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vaadin Maps Example - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\" \/>\n<meta property=\"og:site_name\" content=\"Examples Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2016-08-02T08:00:42+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-04-09T09:57:08+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"150\" \/>\n\t<meta property=\"og:image:height\" content=\"150\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jesus Boadas\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@jboadas\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jesus Boadas\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\"},\"author\":{\"name\":\"Jesus Boadas\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/506f9c2b38156c7f94bba77757206dd7\"},\"headline\":\"Vaadin Maps Example\",\"datePublished\":\"2016-08-02T08:00:42+00:00\",\"dateModified\":\"2019-04-09T09:57:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\"},\"wordCount\":1800,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg\",\"keywords\":[\"Vaadin\"],\"articleSection\":[\"Vaadin\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\",\"name\":\"Vaadin Maps Example - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg\",\"datePublished\":\"2016-08-02T08:00:42+00:00\",\"dateModified\":\"2019-04-09T09:57:08+00:00\",\"description\":\"Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp;\",\"breadcrumb\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/examples.javacodegeeks.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Java Development\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Enterprise Java\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Vaadin\",\"item\":\"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/vaadin\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Vaadin Maps Example\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#website\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Examples and Code Snippets\",\"publisher\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\/\/examples.javacodegeeks.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/javacodegeeks\",\"https:\/\/x.com\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/506f9c2b38156c7f94bba77757206dd7\",\"name\":\"Jesus Boadas\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Jesus-Boadas_avatar_1476120926-96x96.jpg\",\"contentUrl\":\"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Jesus-Boadas_avatar_1476120926-96x96.jpg\",\"caption\":\"Jesus Boadas\"},\"description\":\"I'm a self taught programmer, I began programming back in 1991 using an IBM A10 mainframe with Pascal an Assembler IBM 360\/70 emulator and Turbo C on a X86 PC, since that I work for the banking industry with emerging technologies like Fox Pro, Visual Fox Pro, Visual Basic, Visual C++, Borland C++, lately I moved out to the Airline industry, leading designing and programming in-house web applications with Flex, Actionscript, PHP, Python and Rails and in the last 7 years I focused all my work in Java, working on Linux servers using GlassFish, TomCat, Apache and MySql.\",\"sameAs\":[\"http:\/\/www.javacodegeeks.com\/\",\"https:\/\/ve.linkedin.com\/in\/jesus-boadas\",\"https:\/\/x.com\/jboadas\"],\"url\":\"https:\/\/examples.javacodegeeks.com\/author\/jesus-boadas\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Vaadin Maps Example - Java Code Geeks","description":"Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp;","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/","og_locale":"en_US","og_type":"article","og_title":"Vaadin Maps Example - Java Code Geeks","og_description":"Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp;","og_url":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/","og_site_name":"Examples Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2016-08-02T08:00:42+00:00","article_modified_time":"2019-04-09T09:57:08+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg","type":"image\/jpeg"}],"author":"Jesus Boadas","twitter_card":"summary_large_image","twitter_creator":"@jboadas","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Jesus Boadas","Est. reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#article","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/"},"author":{"name":"Jesus Boadas","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/506f9c2b38156c7f94bba77757206dd7"},"headline":"Vaadin Maps Example","datePublished":"2016-08-02T08:00:42+00:00","dateModified":"2019-04-09T09:57:08+00:00","mainEntityOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/"},"wordCount":1800,"commentCount":0,"publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg","keywords":["Vaadin"],"articleSection":["Vaadin"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/","url":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/","name":"Vaadin Maps Example - Java Code Geeks","isPartOf":{"@id":"https:\/\/examples.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage"},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage"},"thumbnailUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg","datePublished":"2016-08-02T08:00:42+00:00","dateModified":"2019-04-09T09:57:08+00:00","description":"Google Maps is a Web-based service that provides information about geographical regions and sites around the world. &nbsp; &nbsp; &nbsp; &nbsp;","breadcrumb":{"@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#primaryimage","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/01\/vaadin-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/examples.javacodegeeks.com\/java-development\/enterprise-java\/vaadin\/vaadin-maps-example\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/examples.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Java Development","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/"},{"@type":"ListItem","position":3,"name":"Enterprise Java","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/"},{"@type":"ListItem","position":4,"name":"Vaadin","item":"https:\/\/examples.javacodegeeks.com\/category\/java-development\/enterprise-java\/vaadin\/"},{"@type":"ListItem","position":5,"name":"Vaadin Maps Example"}]},{"@type":"WebSite","@id":"https:\/\/examples.javacodegeeks.com\/#website","url":"https:\/\/examples.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Examples and Code Snippets","publisher":{"@id":"https:\/\/examples.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/examples.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/examples.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/examples.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/506f9c2b38156c7f94bba77757206dd7","name":"Jesus Boadas","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/examples.javacodegeeks.com\/#\/schema\/person\/image\/","url":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Jesus-Boadas_avatar_1476120926-96x96.jpg","contentUrl":"https:\/\/examples.javacodegeeks.com\/wp-content\/uploads\/2016\/10\/Jesus-Boadas_avatar_1476120926-96x96.jpg","caption":"Jesus Boadas"},"description":"I'm a self taught programmer, I began programming back in 1991 using an IBM A10 mainframe with Pascal an Assembler IBM 360\/70 emulator and Turbo C on a X86 PC, since that I work for the banking industry with emerging technologies like Fox Pro, Visual Fox Pro, Visual Basic, Visual C++, Borland C++, lately I moved out to the Airline industry, leading designing and programming in-house web applications with Flex, Actionscript, PHP, Python and Rails and in the last 7 years I focused all my work in Java, working on Linux servers using GlassFish, TomCat, Apache and MySql.","sameAs":["http:\/\/www.javacodegeeks.com\/","https:\/\/ve.linkedin.com\/in\/jesus-boadas","https:\/\/x.com\/jboadas"],"url":"https:\/\/examples.javacodegeeks.com\/author\/jesus-boadas\/"}]}},"_links":{"self":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/39685","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/users\/77"}],"replies":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=39685"}],"version-history":[{"count":0,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/39685\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media\/33079"}],"wp:attachment":[{"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=39685"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=39685"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/examples.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=39685"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}