{"id":374,"date":"2011-02-07T00:00:00","date_gmt":"2011-02-07T00:00:00","guid":{"rendered":"http:\/\/www.javacodegeeks.com\/2012\/10\/android-google-maps-tutorial.html"},"modified":"2019-12-02T16:31:13","modified_gmt":"2019-12-02T14:31:13","slug":"android-google-maps-tutorial","status":"publish","type":"post","link":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html","title":{"rendered":"Android Google Maps Tutorial"},"content":{"rendered":"<div dir=\"ltr\" style=\"text-align: left;\">\n<p>The <a href=\"http:\/\/www.android.com\/\">Android platform<\/a> provides easy and tight integration between Android applications and <a href=\"http:\/\/maps.google.com\/\">Google Maps<\/a>. The well established <a href=\"http:\/\/code.google.com\/apis\/maps\/index.html\">Google Maps API<\/a> is used under the hood in order to bring the power of Google Maps to your Android applications. In this tutorial we will see how to incorporate Google Maps into an Android app.<\/p>\n<p><span style=\"font-weight: bold;\">Installing the Google APIs<\/span><\/p>\n<p>In order to be able to use Google Maps, the Google APIs have to be present in your SDK. In case the Google APIs are not already installed, you will have to manually install them. This is accomplished by using the Android SDK and AVD Manager.<\/p>\n<p>Launch the manager and choose the \u201cInstalled Options\u201d section to see what is already installed and the \u201cAvailable Packages\u201d to download the additional APIs.<\/p>\n<p><a href=\"http:\/\/4.bp.blogspot.com\/_piNjpdpJZXA\/TU8S1lVkIiI\/AAAAAAAAATg\/Ko8wfnLZevE\/s1600\/02-android-sdk-avd-manager.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 176px; margin: 0px auto 10px; text-align: center; width: 320px;\" src=\"http:\/\/4.bp.blogspot.com\/_piNjpdpJZXA\/TU8S1lVkIiI\/AAAAAAAAATg\/Ko8wfnLZevE\/s320\/02-android-sdk-avd-manager.png\" alt=\"Android Google Maps android sdk avd manager\" width=\"320\" height=\"176\" border=\"0\"><\/a><\/p>\n<p>You can find more information about this procedure in the following links:<\/p>\n<ul style=\"text-align: left;\">\n<li><a href=\"http:\/\/developer.android.com\/sdk\/adding-components.html\">Adding SDK Components<\/a><\/li>\n<li><a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/installing.html\">Installing the Google APIs Add-On<\/a><\/li>\n<\/ul>\n<p><span style=\"font-weight: bold;\"><br \/>\nSetting up an Eclipse project<\/span><\/p>\n<p>Now that the appropriate tools are installed, let&#8217;s proceed with creating a new Android project in Eclipse. The project I created is named \u201cAndroidGoogleMapsProject\u201d and has the following configuration:<\/p>\n<p><a href=\"http:\/\/1.bp.blogspot.com\/_piNjpdpJZXA\/TU8TGKX7rgI\/AAAAAAAAATo\/URS1zz2gjLQ\/s1600\/01-eclipse-map-project.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 297px;\" src=\"http:\/\/1.bp.blogspot.com\/_piNjpdpJZXA\/TU8TGKX7rgI\/AAAAAAAAATo\/URS1zz2gjLQ\/s320\/01-eclipse-map-project.png\" alt=\"Android Google Maps eclipse map project\" width=\"297\" height=\"320\" border=\"0\"><\/a><\/p>\n<p>It is important to use the \u201cGoogle APIs\u201d as the target since this option includes the Google extensions that allow you to use Google Maps. Return to the first step of this tutorial if no such option is available in your configuration. I chose the 1.5 version of the platform since we will not be using any of the latest fancy API stuff.<\/p>\n<p><span style=\"font-weight: bold;\">Google Maps API Key Generation<\/span><\/p>\n<p>As you might know if you have used the Google Maps API in the past, a key is required in order to be able to use the API. The process is slightly different for use in Android applications, so let&#8217;s see what is required to do. Note that the process is described in the \u201c<a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/mapkey.html\">Obtaining a Maps API Key<\/a>\u201d page, but I will also provide a description here.<\/p>\n<p>First, we have to calculate the MD5 fingerprint of the certificate that we will use to sign the final application. This fingerprint will have to be provided to the Google Maps API service so that it can associate the key with your application. Java&#8217;s <a href=\"http:\/\/download.oracle.com\/javase\/6\/docs\/technotes\/tools\/solaris\/keytool.html\">Key and Certificate Management tool<\/a> named keytool is used for the fingerprint generation.<\/p>\n<p>The keytool executable resides in the %JAVA_HOME%\/bin directory for Windows or $JAVA_HOME\/bin for Linux\/OS X. For example, in my setup, it is installed in the \u201cC:\\programs\\Java\\jdk1.6.0_18\\bin\u201d folder.<\/p>\n<p>While developing an Android application, the application is being signed in debug mode. That is, the SDK build tools automatically sign the application using the debug certificate. This is the certificate whose fingerprint we need to calculate. To generate the MD5 fingerprint of the debug certificate we first need to locate the debug keystore. The location of the keystore varies by platform:<\/p>\n<ul style=\"text-align: left;\">\n<li>Windows Vista: C:\\Users\\\\.android\\debug.keystore<\/li>\n<li>Windows XP: C:\\Documents and Settings\\\\.android\\debug.keystore<\/li>\n<li>OS X and Linux: ~\/.android\/debug.keystore<\/li>\n<\/ul>\n<p>Now that we have located the keystore, we use the keytool executable to get the MD5 fingerprint of the debug certificate by issuing the following command:<\/p>\n<p><span style=\"font-style: italic;\">keytool -list -alias androiddebugkey \\<br \/>\n-keystore .keystore \\<br \/>\n-storepass android -keypass android<\/span><\/p>\n<p>For example, in my Windows machine I changed directory to the .android folder and I used the following command:<\/p>\n<p><span style=\"font-style: italic;\">%JAVA_HOME%\/bin\/keytool -list -alias androiddebugkey -keystore debug.keystore -storepass android -keypass android<\/span><\/p>\n<p>Note that this was executed against the debug keystore, you will have to repeat this for the keystore that will be used with the application you are going to create. Additionally, the application is run on another development environment, with different Android SDK keystore, the API key will be invalid and Google Maps will not work.<\/p>\n<p>The output would be something like the following:<\/p>\n<p><span style=\"font-style: italic;\">androiddebugkey, Apr 2, 2010, PrivateKeyEntry,<br \/>\nCertificate fingerprint (MD5): 72:BF:25:C1:AF:4C:C1:2F:34:D9:B1:90:35:XX:XX:XX<\/span><\/p>\n<p>This the fingerprint we have to provide to the Google Maps service. Now we are ready to sign up for a key by visiting the <a href=\"http:\/\/code.google.com\/android\/maps-api-signup.html\">Android Maps API Key Signup page<\/a>. After we read and accept the terms and conditions, we provide the generated fingerprint as follows:<\/p>\n<p><a href=\"http:\/\/1.bp.blogspot.com\/_piNjpdpJZXA\/TU8T2QBmqTI\/AAAAAAAAATw\/nyRpumTuU0c\/s1600\/03-md5-fingerprint.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 66px; margin: 0px auto 10px; text-align: center; width: 320px;\" src=\"http:\/\/1.bp.blogspot.com\/_piNjpdpJZXA\/TU8T2QBmqTI\/AAAAAAAAATw\/nyRpumTuU0c\/s320\/03-md5-fingerprint.png\" alt=\"android google maps fingerprint\" width=\"320\" height=\"67\" border=\"0\"><\/a><\/p>\n<p>We generate the API key and we are presented with the following screen:<\/p>\n<p><a href=\"http:\/\/4.bp.blogspot.com\/_piNjpdpJZXA\/TU8T67xbuTI\/AAAAAAAAAT4\/_JkpL4NTWDk\/s1600\/04-google-maps-api-key.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 248px; margin: 0px auto 10px; text-align: center; width: 320px;\" src=\"http:\/\/4.bp.blogspot.com\/_piNjpdpJZXA\/TU8T67xbuTI\/AAAAAAAAAT4\/_JkpL4NTWDk\/s320\/04-google-maps-api-key.png\" alt=\"android google maps API\" width=\"320\" height=\"248\" border=\"0\"><\/a><\/p>\n<p><span style=\"font-weight: bold;\">Creating the Google Maps application<\/span><\/p>\n<p>Finally, its time to write some code. Bookmark the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/index.html\">Google APIs Add-On Javadocs<\/a> for future reference. Integrating Google Maps is quite straightforward and can be achieved by extending the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapActivity.html\">MapActivity<\/a> class instead of the <a href=\"http:\/\/developer.android.com\/reference\/android\/app\/Activity.html\">Activity<\/a> class that we usually do. The main work is performed by a <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapView.html\">MapView<\/a> which displays a map with data obtained from the Google Maps service. A <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapActivity.html\">MapActivity<\/a> is actually a base class with code to manage the boring necessities of any activity that displays a <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapView.html\">MapView<\/a>. Activity responsibilities include:<div style=\"display:inline-block; margin: 15px 0;\"> <div id=\"adngin-JavaCodeGeeks_incontent_video-0\" style=\"display:inline-block;\"><\/div> <\/div><\/p>\n<ul style=\"text-align: left;\">\n<li>Activity lifecycle management<\/li>\n<li>Setup and teardown of services behind a <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapView.html\">MapView<\/a><\/li>\n<\/ul>\n<p>To extend from <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapActivity.html\">MapActivity<\/a> we have to implement the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapActivity.html#isRouteDisplayed%28%29\">isRouteDisplayed<\/a> method, which denotes whether or not we are displaying any kind of route information, such as a set of driving directions. We will not provide such information, so we just return false there.<\/p>\n<p>In our map activity, we will just take reference of a <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapView.html\">MapView<\/a>. This view will be defined in the layout XML. We will also use the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapView.html#setBuiltInZoomControls%28boolean%29\">setBuiltInZoomControls<\/a> method to enable the built-in zoom controls.<\/p>\n<p>Let&#8217;s see how our activity looks like so far:<\/p>\n<pre class=\"brush:java\">package com.javacodegeeks.android.googlemaps;\n\nimport android.os.Bundle;\n\nimport com.google.android.maps.MapActivity;\nimport com.google.android.maps.MapView;\n\npublic class GMapsActivity extends MapActivity {\n\n    private MapView mapView;\n\n    @Override\n    public void onCreate(Bundle savedInstanceState) {\n\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.main);\n\n        mapView = (MapView) findViewById(R.id.map_view);       \n        mapView.setBuiltInZoomControls(true);\n\n    }\n\n    @Override\n    protected boolean isRouteDisplayed() {\n        return false;\n    }\n\n}<\/pre>\n<p>Let&#8217;s also see the referenced main.xml layout file:<\/p>\n<pre class=\"brush:xml\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n\n&lt;RelativeLayout \n xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n android:orientation=\"vertical\" \n android:layout_width=\"fill_parent\"\n android:layout_height=\"fill_parent\"&gt;\n\n &lt;com.google.android.maps.MapView\n  xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n  android:id=\"@+id\/map_view\"\n  android:layout_width=\"fill_parent\" \n  android:layout_height=\"fill_parent\"\n  android:clickable=\"true\" \n  android:enabled=\"true\" \n  android:apiKey=\"API-KEY-HERE\" \/&gt;\n\n&lt;\/RelativeLayout&gt;<\/pre>\n<p>Do not forget to provide your API key in the relevant field or else Google Maps will not work.<\/p>\n<p><span style=\"font-weight: bold;\">Launching the application<\/span><\/p>\n<p>To test the application we will have to use a device that includes the Google APIs. We will use the AVD manager to create a new device with target set to one of the Google APIs and settings like the following:<\/p>\n<p><a href=\"http:\/\/2.bp.blogspot.com\/_piNjpdpJZXA\/TU8Upgua2YI\/AAAAAAAAAUA\/bu67Ko3Qa5I\/s1600\/05-new-avd.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 229px;\" src=\"http:\/\/2.bp.blogspot.com\/_piNjpdpJZXA\/TU8Upgua2YI\/AAAAAAAAAUA\/bu67Ko3Qa5I\/s320\/05-new-avd.png\" alt=\"android google maps create new AVD\" width=\"229\" height=\"320\" border=\"0\"><\/a><\/p>\n<p>If we now launch the Eclipse configuration, we will encounter the following exception:<\/p>\n<p><span style=\"font-style: italic;\">java.lang.ClassNotFoundException: com.javacodegeeks.android.googlemaps.GMapsActivity in loader dalvik.system.PathClassLoader@435988d0<\/span><\/p>\n<p>The problem is that we haven&#8217;t notified Android that we wish to use the add-on Google APIs which are external to the base API. To do so, we have to use the <a href=\"http:\/\/developer.android.com\/guide\/topics\/manifest\/uses-library-element.html\">uses-library<\/a> element in our Android manifest file, informing Android that we are going to use classes from the com.google.android.maps package.<\/p>\n<p>Additionally, we have to grant internet access to our application by adding the <a href=\"http:\/\/developer.android.com\/reference\/android\/Manifest.permission.html#INTERNET\">android.permission.INTERNET<\/a> directive. Here is how our AndroidManifest.xml file looks like:<\/p>\n<pre class=\"brush:xml\">&lt;?xml version=\"1.0\" encoding=\"utf-8\"?&gt;\n\n&lt;manifest xmlns:android=\"http:\/\/schemas.android.com\/apk\/res\/android\"\n      package=\"com.javacodegeeks.android.googlemaps\"\n      android:versionCode=\"1\"\n      android:versionName=\"1.0\"&gt;\n\n    &lt;application android:icon=\"@drawable\/icon\" android:label=\"@string\/app_name\"&gt;\n\n        &lt;activity android:name=\".GMapsActivity\"\n                  android:label=\"@string\/app_name\"&gt;\n            &lt;intent-filter&gt;\n                &lt;action android:name=\"android.intent.action.MAIN\" \/&gt;\n                &lt;category android:name=\"android.intent.category.LAUNCHER\" \/&gt;\n            &lt;\/intent-filter&gt;\n        &lt;\/activity&gt;\n\n      &lt;uses-library android:name=\"com.google.android.maps\" \/&gt;\n\n    &lt;\/application&gt;\n\n    &lt;uses-permission android:name=\"android.permission.INTERNET\"\/&gt;\n\n&lt;\/manifest&gt;<\/pre>\n<p>And here is what the application screen looks like:<\/p>\n<p><a href=\"http:\/\/3.bp.blogspot.com\/_piNjpdpJZXA\/TU8VDHz5wYI\/AAAAAAAAAUI\/8sGnkDqvVjQ\/s1600\/06-gmaps-usa.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 212px;\" src=\"http:\/\/3.bp.blogspot.com\/_piNjpdpJZXA\/TU8VDHz5wYI\/AAAAAAAAAUI\/8sGnkDqvVjQ\/s320\/06-gmaps-usa.png\" alt=\"android google maps\" width=\"212\" height=\"320\" border=\"0\"><\/a><\/p>\n<p>If you click inside the map, the zoom controls will appear and you will be able to zoom in and out.<\/p>\n<p><span style=\"font-weight: bold;\">Adding map overlays<\/span><\/p>\n<p>The next step is to add some custom map overlays. To do so, we can extend the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/Overlay.html\">Overlay<\/a> class, which is a base class representing an overlay which may be displayed on top of a map. Alternatively, we may extend the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/ItemizedOverlay.html\">ItemizedOverlay<\/a>, which is a base class for an <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/Overlay.html\">Overlay<\/a> which consists of a list of <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/OverlayItem.html\">OverlayItem<\/a>s. Let&#8217;s see how we can do this (note that the following example is very similar to the <a href=\"http:\/\/developer.android.com\/resources\/tutorials\/views\/hello-mapview.html\">Hello Map View<\/a> article from the Android documentation):<\/p>\n<pre class=\"brush:java\">package com.javacodegeeks.android.googlemaps;\n\nimport java.util.ArrayList;\n\nimport android.app.AlertDialog;\nimport android.content.Context;\nimport android.graphics.drawable.Drawable;\n\nimport com.google.android.maps.ItemizedOverlay;\nimport com.google.android.maps.OverlayItem;\n\npublic class CustomItemizedOverlay extends ItemizedOverlay&lt;OverlayItem&gt; {\n\n   private ArrayList&lt;OverlayItem&gt; mapOverlays = new ArrayList&lt;OverlayItem&gt;();\n\n   private Context context;\n\n   public CustomItemizedOverlay(Drawable defaultMarker) {\n        super(boundCenterBottom(defaultMarker));\n   }\n\n   public CustomItemizedOverlay(Drawable defaultMarker, Context context) {\n        this(defaultMarker);\n        this.context = context;\n   }\n\n   @Override\n   protected OverlayItem createItem(int i) {\n      return mapOverlays.get(i);\n   }\n\n   @Override\n   public int size() {\n      return mapOverlays.size();\n   }\n\n   @Override\n   protected boolean onTap(int index) {\n      OverlayItem item = mapOverlays.get(index);\n      AlertDialog.Builder dialog = new AlertDialog.Builder(context);\n      dialog.setTitle(item.getTitle());\n      dialog.setMessage(item.getSnippet());\n      dialog.show();\n      return true;\n   }\n\n   public void addOverlay(OverlayItem overlay) {\n      mapOverlays.add(overlay);\n       this.populate();\n   }\n\n}<\/pre>\n<p>Our class requires an Android <a href=\"http:\/\/developer.android.com\/reference\/android\/graphics\/drawable\/Drawable.html\">Drawable<\/a> in its constructor, which will be used as a marker. Additionally, the current <a href=\"http:\/\/developer.android.com\/reference\/android\/content\/Context.html\">Context<\/a> has to be provided. We use an <a href=\"http:\/\/download.oracle.com\/javase\/6\/docs\/api\/java\/util\/ArrayList.html\">ArrayList<\/a> to store all the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/OverlayItem.html\">OverlayItem<\/a>s stored in the specific class, so the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/ItemizedOverlay.html#createItem%28int%29\">createItem<\/a> and <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/ItemizedOverlay.html#size%28%29\">size<\/a> methods are pretty much self-explanatory. The <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/ItemizedOverlay.html#onTap%28int%29\">onTap<\/a> method is called when an item is \u201ctapped\u201d and that could be from a touchscreen tap on an onscreen Item, or from a trackball click on a centered, selected Item. In that method, we just create an <a href=\"http:\/\/developer.android.com\/reference\/android\/app\/AlertDialog.html\">AlertDialog<\/a> and show it to the user. Finally, in the exposed addOverlay method, we add the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/OverlayItem.html\">OverlayItem<\/a> and invoke the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/ItemizedOverlay.html#populate%28%29\">populate<\/a> method, which is a utility method to perform all processing on a new <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/ItemizedOverlay.html\">ItemizedOverlay<\/a>.<\/p>\n<p>Let&#8217;s see how this class can be utilized from our map activity:<\/p>\n<pre class=\"brush:java\">package com.javacodegeeks.android.googlemaps;\n\nimport java.util.List;\n\nimport android.graphics.drawable.Drawable;\nimport android.os.Bundle;\n\nimport com.google.android.maps.GeoPoint;\nimport com.google.android.maps.MapActivity;\nimport com.google.android.maps.MapController;\nimport com.google.android.maps.MapView;\nimport com.google.android.maps.Overlay;\nimport com.google.android.maps.OverlayItem;\n\npublic class GMapsActivity extends MapActivity {\n\n    private MapView mapView;\n\n    private static final int latitudeE6 = 37985339;\n    private static final int longitudeE6 = 23716735;\n\n    @Override\n    public void onCreate(Bundle savedInstanceState) {\n\n        super.onCreate(savedInstanceState);\n        setContentView(R.layout.main);\n\n        mapView = (MapView) findViewById(R.id.map_view);       \n        mapView.setBuiltInZoomControls(true);\n\n        List mapOverlays = mapView.getOverlays();\n        Drawable drawable = this.getResources().getDrawable(R.drawable.icon);\n        CustomItemizedOverlay itemizedOverlay = \n             new CustomItemizedOverlay(drawable, this);\n\n        GeoPoint point = new GeoPoint(latitudeE6, longitudeE6);\n        OverlayItem overlayitem = \n             new OverlayItem(point, \"Hello\", \"I'm in Athens, Greece!\");\n\n        itemizedOverlay.addOverlay(overlayitem);\n        mapOverlays.add(itemizedOverlay);\n\n        MapController mapController = mapView.getController();\n\n        mapController.animateTo(point);\n        mapController.setZoom(6);\n\n    }\n\n    @Override\n    protected boolean isRouteDisplayed() {\n        return false;\n    }\n\n}<\/pre>\n<p>We create a new instance of our CustomItemizedOverlay class by using the default Android icon as the <a href=\"http:\/\/developer.android.com\/reference\/android\/graphics\/drawable\/Drawable.html\">Drawable<\/a>. Then we create a <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/GeoPoint.html\">GeoPoint<\/a> pointing to a predefined location and use that to generate an <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/OverlayItem.html\">OverlayItem<\/a> object. We add the overlay item to our CustomItemizedOverlay class and it magically appears in our map on the predefined point.<\/p>\n<p>Finally, we take reference of the underlying <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapController.html\">MapController<\/a> and use it to point the map to a specific geographical point using the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapController.html#animateTo%28com.google.android.maps.GeoPoint%29\">animateTo<\/a> method and to define the zoom level by using the <a href=\"http:\/\/code.google.com\/android\/add-ons\/google-apis\/reference\/com\/google\/android\/maps\/MapController.html#setZoom%28int%29\">setZoom<\/a> method.<\/p>\n<p>If we launch again the configuration, we will be presented with a zoomed-in map which includes an overlay marker pointing to <a href=\"http:\/\/www.javacodegeeks.com\/\">JavaCodeGeeks<\/a> home town Athens, Greece. Clicking on the marker will cause the alert dialog to pop-up displaying our custom message.<\/p>\n<p><a href=\"http:\/\/3.bp.blogspot.com\/_piNjpdpJZXA\/TU8WODo9AFI\/AAAAAAAAAUQ\/sjNQUlVux8c\/s1600\/07-gmaps-athens.png\"><img decoding=\"async\" class=\"alignnone\" style=\"cursor: pointer; height: 320px; margin: 0px auto 10px; text-align: center; width: 214px;\" src=\"http:\/\/3.bp.blogspot.com\/_piNjpdpJZXA\/TU8WODo9AFI\/AAAAAAAAAUQ\/sjNQUlVux8c\/s320\/07-gmaps-athens.png\" alt=\"android google maps\" width=\"214\" height=\"320\" border=\"0\"><\/a><\/p>\n<p>That&#8217;s all guys. A detailed guide on how to integrate Google Maps into your Android application. As always, you can <a href=\"http:\/\/dl.dropbox.com\/u\/7215751\/JavaCodeGeeks\/AndroidGoogleMapsTutorial\/AndroidGoogleMapsProject.zip\">download the Eclipse project<\/a> created for this tutorial.<\/p>\n<p>Happy mobile coding! And don&#8217;t forget to share!<\/p>\n<p><strong>Related Articles:<\/strong><\/p>\n<ul style=\"text-align: left;\">\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/10\/android-full-application-tutorial.html\">\u201cAndroid Full Application Tutorial\u201d series<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/09\/android-location-based-services.html\">Android Location Based Services Application \u2013 GPS location<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2010\/09\/android-reverse-geocoding-yahoo-api.html\">Android Reverse Geocoding with Yahoo API &#8211; PlaceFinder<\/a><\/li>\n<li><a href=\"http:\/\/www.javacodegeeks.com\/2011\/01\/android-proximity-alerts-tutorial.html\">Android Proximity Alerts Tutorial<\/a><\/li>\n<\/ul>\n<div style=\"margin: 0px;\"><strong><em>Related Snippets :<\/em><\/strong><\/div>\n<ul style=\"text-align: left;\">\n<li><a href=\"https:\/\/examples.javacodegeeks.com\/android\/core\/google-maps\/google-maps-example\">Google Maps example<\/a><\/li>\n<li><a href=\"https:\/\/examples.javacodegeeks.com\/android\/core\/json\/json-parsing-with-gson\">JSON parsing with Gson<\/a><\/li>\n<li><a href=\"https:\/\/examples.javacodegeeks.com\/android\/core\/network\/using-the-http-api\">Using the HTTP API<\/a><\/li>\n<li><a href=\"https:\/\/examples.javacodegeeks.com\/android\/core\/widget\/edittext\/android-edittext-example\/\">Android EditText Example<\/a><\/li>\n<li><a href=\"https:\/\/examples.javacodegeeks.com\/android\/core\/widget\/textview\/android-textview-example\/\">Android TextView Example<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>The Android platform provides easy and tight integration between Android applications and Google Maps. The well established Google Maps API is used under the hood in order to bring the power of Google Maps to your Android applications. In this tutorial we will see how to incorporate Google Maps into an Android app. Installing the &hellip;<\/p>\n","protected":false},"author":3,"featured_media":46,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[83,651,151],"class_list":["post-374","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android-core","tag-android-tutorial","tag-featured","tag-google-maps"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Android Google Maps Tutorial - Java Code Geeks<\/title>\n<meta name=\"description\" content=\"Interested to learn about Google Maps? Check out our Android Google Maps Tutorial where we will see how to incorporate Google Maps into an Android app!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Android Google Maps Tutorial - Java Code Geeks\" \/>\n<meta property=\"og:description\" content=\"Interested to learn about Google Maps? Check out our Android Google Maps Tutorial where we will see how to incorporate Google Maps into an Android app!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html\" \/>\n<meta property=\"og:site_name\" content=\"Java Code Geeks\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/javacodegeeks\" \/>\n<meta property=\"article:published_time\" content=\"2011-02-07T00:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-12-02T14:31:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-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=\"Ilias Tsagklis\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:site\" content=\"@javacodegeeks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ilias Tsagklis\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"10 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html\"},\"author\":{\"name\":\"Ilias Tsagklis\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/9a83496b285d30c61e8a674625c1350e\"},\"headline\":\"Android Google Maps Tutorial\",\"datePublished\":\"2011-02-07T00:00:00+00:00\",\"dateModified\":\"2019-12-02T14:31:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html\"},\"wordCount\":1546,\"commentCount\":38,\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"keywords\":[\"Android Tutorial\",\"featured\",\"Google Maps\"],\"articleSection\":[\"Android Core\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html\",\"name\":\"Android Google Maps Tutorial - Java Code Geeks\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"datePublished\":\"2011-02-07T00:00:00+00:00\",\"dateModified\":\"2019-12-02T14:31:13+00:00\",\"description\":\"Interested to learn about Google Maps? Check out our Android Google Maps Tutorial where we will see how to incorporate Google Maps into an Android app!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#primaryimage\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2012\\\/10\\\/android-logo.jpg\",\"width\":150,\"height\":150},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/2011\\\/02\\\/android-google-maps-tutorial.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Android\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/android\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Android Core\",\"item\":\"https:\\\/\\\/www.javacodegeeks.com\\\/category\\\/android\\\/android-core\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Android Google Maps Tutorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#website\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"name\":\"Java Code Geeks\",\"description\":\"Java Developers Resource Center\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\"},\"alternateName\":\"JCG\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.javacodegeeks.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#organization\",\"name\":\"Exelixis Media P.C.\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"contentUrl\":\"https:\\\/\\\/www.javacodegeeks.com\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/exelixis-logo.png\",\"width\":864,\"height\":246,\"caption\":\"Exelixis Media P.C.\"},\"image\":{\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/javacodegeeks\",\"https:\\\/\\\/x.com\\\/javacodegeeks\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.javacodegeeks.com\\\/#\\\/schema\\\/person\\\/9a83496b285d30c61e8a674625c1350e\",\"name\":\"Ilias Tsagklis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g\",\"caption\":\"Ilias Tsagklis\"},\"description\":\"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.\",\"sameAs\":[\"http:\\\/\\\/www.iliastsagklis.com\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/iliastsagklis\"],\"url\":\"https:\\\/\\\/www.javacodegeeks.com\\\/author\\\/ilias-tsagklis\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Android Google Maps Tutorial - Java Code Geeks","description":"Interested to learn about Google Maps? Check out our Android Google Maps Tutorial where we will see how to incorporate Google Maps into an Android app!","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:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html","og_locale":"en_US","og_type":"article","og_title":"Android Google Maps Tutorial - Java Code Geeks","og_description":"Interested to learn about Google Maps? Check out our Android Google Maps Tutorial where we will see how to incorporate Google Maps into an Android app!","og_url":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html","og_site_name":"Java Code Geeks","article_publisher":"https:\/\/www.facebook.com\/javacodegeeks","article_published_time":"2011-02-07T00:00:00+00:00","article_modified_time":"2019-12-02T14:31:13+00:00","og_image":[{"width":150,"height":150,"url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","type":"image\/jpeg"}],"author":"Ilias Tsagklis","twitter_card":"summary_large_image","twitter_creator":"@javacodegeeks","twitter_site":"@javacodegeeks","twitter_misc":{"Written by":"Ilias Tsagklis","Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#article","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html"},"author":{"name":"Ilias Tsagklis","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/9a83496b285d30c61e8a674625c1350e"},"headline":"Android Google Maps Tutorial","datePublished":"2011-02-07T00:00:00+00:00","dateModified":"2019-12-02T14:31:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html"},"wordCount":1546,"commentCount":38,"publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","keywords":["Android Tutorial","featured","Google Maps"],"articleSection":["Android Core"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html","url":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html","name":"Android Google Maps Tutorial - Java Code Geeks","isPartOf":{"@id":"https:\/\/www.javacodegeeks.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#primaryimage"},"image":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#primaryimage"},"thumbnailUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","datePublished":"2011-02-07T00:00:00+00:00","dateModified":"2019-12-02T14:31:13+00:00","description":"Interested to learn about Google Maps? Check out our Android Google Maps Tutorial where we will see how to incorporate Google Maps into an Android app!","breadcrumb":{"@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#primaryimage","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2012\/10\/android-logo.jpg","width":150,"height":150},{"@type":"BreadcrumbList","@id":"https:\/\/www.javacodegeeks.com\/2011\/02\/android-google-maps-tutorial.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.javacodegeeks.com\/"},{"@type":"ListItem","position":2,"name":"Android","item":"https:\/\/www.javacodegeeks.com\/category\/android"},{"@type":"ListItem","position":3,"name":"Android Core","item":"https:\/\/www.javacodegeeks.com\/category\/android\/android-core"},{"@type":"ListItem","position":4,"name":"Android Google Maps Tutorial"}]},{"@type":"WebSite","@id":"https:\/\/www.javacodegeeks.com\/#website","url":"https:\/\/www.javacodegeeks.com\/","name":"Java Code Geeks","description":"Java Developers Resource Center","publisher":{"@id":"https:\/\/www.javacodegeeks.com\/#organization"},"alternateName":"JCG","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.javacodegeeks.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.javacodegeeks.com\/#organization","name":"Exelixis Media P.C.","url":"https:\/\/www.javacodegeeks.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","contentUrl":"https:\/\/www.javacodegeeks.com\/wp-content\/uploads\/2022\/06\/exelixis-logo.png","width":864,"height":246,"caption":"Exelixis Media P.C."},"image":{"@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/javacodegeeks","https:\/\/x.com\/javacodegeeks"]},{"@type":"Person","@id":"https:\/\/www.javacodegeeks.com\/#\/schema\/person\/9a83496b285d30c61e8a674625c1350e","name":"Ilias Tsagklis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/43505f28bb49f6e290c24be0b209ccc1af350f0f6587025ffd4847ef44bf6b78?s=96&d=mm&r=g","caption":"Ilias Tsagklis"},"description":"Ilias is a software developer turned online entrepreneur. He is co-founder and Executive Editor at Java Code Geeks.","sameAs":["http:\/\/www.iliastsagklis.com\/","https:\/\/www.linkedin.com\/in\/iliastsagklis"],"url":"https:\/\/www.javacodegeeks.com\/author\/ilias-tsagklis"}]}},"_links":{"self":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/comments?post=374"}],"version-history":[{"count":0,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/posts\/374\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media\/46"}],"wp:attachment":[{"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/media?parent=374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/categories?post=374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.javacodegeeks.com\/wp-json\/wp\/v2\/tags?post=374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}