{"id":43,"date":"2011-04-06T14:58:23","date_gmt":"2011-04-06T14:58:23","guid":{"rendered":"http:\/\/www.uturtle.com\/blog\/archives\/43"},"modified":"2013-05-12T19:17:05","modified_gmt":"2013-05-12T19:17:05","slug":"%ea%b5%ac%ea%b8%80%eb%a7%b5%ec%9d%84-%ec%9d%b4%ec%9a%a9%ed%95%9c-%ec%95%88%eb%93%9c%eb%a1%9c%ec%9d%b4%eb%93%9c-%ec%96%b4%ed%94%8c-%ec%98%88%ec%a0%9c-%ea%b5%ac%ed%98%84","status":"publish","type":"post","link":"https:\/\/www.jinukbaek.com\/blog\/ko\/archives\/43","title":{"rendered":"\uad6c\uae00\ub9f5\uc744 \uc774\uc6a9\ud55c \uc548\ub4dc\ub85c\uc774\ub4dc \uc5b4\ud50c \uc608\uc81c \uad6c\ud604"},"content":{"rendered":"<p><P>&nbsp;&#8211; \uac1c\ubc1c \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\uc2dc&nbsp;: Bulid Target\uc744 Google APIs \ub85c \ud560 \uac83&#8230;<\/p>\n<p>= AndroidManifest.xml \uc218\uc815 =<\/P><br \/>\n<DIV style=\"BORDER-BOTTOM: #c1c1c1 1px solid; BORDER-LEFT: #c1c1c1 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px solid; BORDER-RIGHT: #c1c1c1 1px solid; PADDING-TOP: 10px\" class=txc-textbox>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br \/>\n&lt;manifest xmlns:android=&#8221;<A href=\"http:\/\/schemas.android.com\/apk\/res\/android\">http:\/\/schemas.android.com\/apk\/res\/android<\/A>&#8220;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; package=&#8221;kr.pe.kuniz37.GoogleMapB&#8221;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:versionCode=&#8221;1&#8243;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:versionName=&#8221;1.0&#8243;&gt;<br \/>\n&nbsp;&nbsp;&nbsp; &lt;uses-sdk android:minSdkVersion=&#8221;9&#8243; \/&gt;<\/p>\n<p>&nbsp;&nbsp;&nbsp; &lt;application android:icon=&#8221;@drawable\/icon&#8221; android:label=&#8221;@string\/app_name&#8221;&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;activity android:name=&#8221;.GoogleMaps&#8221;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; android:label=&#8221;@string\/app_name&#8221;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#e31600>android:theme=&#8221;@android:style\/Theme.NoTitleBar&#8221;&gt;<\/FONT><br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;intent-filter&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;action android:name=&#8221;android.intent.action.MAIN&#8221; \/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;category android:name=&#8221;android.intent.category.LAUNCHER&#8221; \/&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/intent-filter&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/activity&gt;<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <FONT color=#e31600>&lt;uses-library android:name=&#8221;com.google.android.maps&#8221; \/&gt;<\/FONT><br \/>\n&nbsp;&nbsp;&nbsp; &lt;\/application&gt;<br \/>\n&nbsp;&nbsp;&nbsp; <br \/>\n&nbsp;&nbsp;&nbsp; <FONT color=#e31600>&lt;uses-permission android:name=&#8221;android.permission.INTERNET&#8221; \/&gt;<br \/>\n<\/FONT>&lt;\/manifest&gt;<br \/>\n<\/DIV><br \/>\n= res\/layout\/main.xml =<\/p>\n<p><DIV style=\"BORDER-BOTTOM: #c1c1c1 1px solid; BORDER-LEFT: #c1c1c1 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px solid; BORDER-RIGHT: #c1c1c1 1px solid; PADDING-TOP: 10px\" class=txc-textbox>&lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<br \/>\n&lt;com.google.android.maps.MapView<br \/>\n&nbsp;xmlns:android=&#8221;<A href=\"http:\/\/schemas.android.com\/apk\/res\/android\">http:\/\/schemas.android.com\/apk\/res\/android<\/A>&#8221; <br \/>\n&nbsp;android:id=&#8221;@+id\/mapview&#8221;<br \/>\n&nbsp;android:layout_width=&#8221;fill_parent&#8221; <br \/>\n&nbsp;android:layout_height=&#8221;fill_parent&#8221;<br \/>\n&nbsp;android:clickable=&#8221;true&#8221; <br \/>\n&nbsp;android:apiKey=&#8221;<FONT color=#e31600>Your Code Input<\/FONT>&#8221; <br \/>\n&nbsp;\/&gt;<\/DIV><br \/>\nYout Code Input \uc5d0\ub294 debug.keystore\uc758 md5 \ud574\uc2dc\ub97c \uac00\uc838 \uc640\uc57c \ud55c\ub2e4. \uc6b4\uc601\uccb4\uc81c \ub9c8\ub2e4 \uc704\uce58\uac00 \ub2e4\ub974\ub2e4.<\/p>\n<p>&nbsp;\uc708\ub3c4\uc6b0 7\uc758 \uacbd\uc6b0<br \/>\n&nbsp;&nbsp;<FONT color=#e31600> keytool -list -keystore \/Users\/&lt;\uc0ac\uc6a9\uc790 \uba85&gt;\/.android\/debug.keystore<br \/>\n&nbsp;&nbsp; \uc554\ud638 : android<\/FONT><br \/>\n&nbsp;&nbsp;\uc778\uc99d\uc11c \uc9c0\ubb38(MD5) \uc5d0 \ub098\uc640 \uc788\ub294 \uac12\uc744 <A href=\"http:\/\/code.google.com\/intl\/ko-KR\/android\/maps-api-signup.html\">http:\/\/code.google.com\/intl\/ko-KR\/android\/maps-api-signup.html<\/A>&nbsp;\uc5d0\uc11c \uad6c\ud55c\ub2e4.<\/p>\n<p>\n=&nbsp;GoogleMaps.java&nbsp;=<br \/>\n&nbsp;<br \/>\n<DIV style=\"BORDER-BOTTOM: #c1c1c1 1px solid; BORDER-LEFT: #c1c1c1 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px solid; BORDER-RIGHT: #c1c1c1 1px solid; PADDING-TOP: 10px\" class=txc-textbox>import java.util.List;<br \/>\nimport com.google.android.maps.GeoPoint;<br \/>\nimport com.google.android.maps.MapActivity;<br \/>\nimport com.google.android.maps.MapView;<br \/>\nimport com.google.android.maps.Overlay;<br \/>\nimport com.google.android.maps.OverlayItem;<br \/>\nimport android.graphics.drawable.Drawable;<br \/>\nimport android.os.Bundle;<\/p>\n<p>public class GoogleMaps extends <FONT color=#e31600>MapActivity <\/FONT>{<\/p>\n<p>&nbsp;@Override<br \/>\n&nbsp;protected boolean isRouteDisplayed() {<br \/>\n&nbsp;&nbsp;return false;<br \/>\n&nbsp;}<\/p>\n<p>&nbsp;\/** Called when the activity is first created. *\/<br \/>\n&nbsp;@Override<br \/>\n&nbsp;public void onCreate(Bundle savedInstanceState) {<br \/>\n&nbsp;&nbsp;super.onCreate(savedInstanceState);<br \/>\n&nbsp;&nbsp;setContentView(R.layout.main);<\/p>\n<p><FONT color=#e31600>&nbsp;&nbsp;MapView mapView = (MapView) findViewById(R.id.mapview);<br \/>\n&nbsp;&nbsp;mapView.setBuiltInZoomControls(true);<\/p>\n<p>&nbsp;&nbsp;List&lt;Overlay&gt; mapOverlays = mapView.getOverlays();<br \/>\n&nbsp;&nbsp;Drawable drawable = this.getResources().getDrawable(<br \/>\n&nbsp;&nbsp;&nbsp;&nbsp;R.drawable.androidmarker);<br \/>\n&nbsp;&nbsp;HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable);<\/p>\n<p>&nbsp;&nbsp;GeoPoint point = new GeoPoint(19240000, -99120000);<br \/>\n&nbsp;&nbsp;OverlayItem overlayitem = new OverlayItem(point, &#8220;Hola, Mundo!&#8221;,&nbsp;&nbsp;&nbsp;&nbsp;&#8220;I&#8217;m in Mexico City!&#8221;);<br \/>\n&nbsp; itemizedoverlay.addOverlay(overlayitem);<br \/>\n&nbsp;&nbsp;mapOverlays.add(itemizedoverlay);<\/FONT><br \/>\n&nbsp;}<br \/>\n}<\/DIV><\/p>\n<p>= HelloItemizedOverlay.java =<\/p>\n<p><DIV style=\"BORDER-BOTTOM: #c1c1c1 1px solid; BORDER-LEFT: #c1c1c1 1px solid; PADDING-BOTTOM: 10px; BACKGROUND-COLOR: #eeeeee; PADDING-LEFT: 10px; PADDING-RIGHT: 10px; BORDER-TOP: #c1c1c1 1px solid; BORDER-RIGHT: #c1c1c1 1px solid; PADDING-TOP: 10px\" class=txc-textbox>import java.util.ArrayList;<br \/>\nimport android.app.AlertDialog;<br \/>\nimport android.content.Context;<br \/>\nimport android.graphics.drawable.Drawable;<br \/>\nimport com.google.android.maps.ItemizedOverlay;<br \/>\nimport com.google.android.maps.OverlayItem;<\/p>\n<p>public class HelloItemizedOverlay extends ItemizedOverlay {<br \/>\n&nbsp;private ArrayList&lt;OverlayItem&gt; mOverlays = new ArrayList&lt;OverlayItem&gt;();<br \/>\n&nbsp;private Context mContext ;<\/p>\n<p>&nbsp;public HelloItemizedOverlay(Drawable defaultMarker) {<br \/>\n&nbsp;&nbsp;super(boundCenterBottom(defaultMarker));<br \/>\n&nbsp;}<\/p>\n<p>&nbsp;public void addOverlay(OverlayItem overlay) {<br \/>\n&nbsp;&nbsp;mOverlays.add(overlay);<br \/>\n&nbsp;&nbsp;populate();<br \/>\n&nbsp;}<\/p>\n<p>&nbsp;@Override<br \/>\n&nbsp;protected OverlayItem createItem(int i) {<br \/>\n&nbsp;&nbsp;return mOverlays.get(i);<br \/>\n&nbsp;}<\/p>\n<p>&nbsp;@Override<br \/>\n&nbsp;public int size() {<br \/>\n&nbsp;&nbsp;return mOverlays.size();<br \/>\n&nbsp;}<\/p>\n<p>&nbsp;public HelloItemizedOverlay(Drawable defaultMarker, Context context) {<br \/>\n&nbsp;&nbsp;super(defaultMarker);<br \/>\n&nbsp;&nbsp;mContext = context;<br \/>\n&nbsp;}<\/p>\n<p>&nbsp;@Override<br \/>\n&nbsp;protected boolean onTap(int index) {<br \/>\n&nbsp;&nbsp;OverlayItem item = mOverlays.get(index);<br \/>\n&nbsp;&nbsp;AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);<br \/>\n&nbsp;&nbsp;dialog.setTitle(item.getTitle());<br \/>\n&nbsp;&nbsp;dialog.setMessage(item.getSnippet());<br \/>\n&nbsp;&nbsp;dialog.show();<br \/>\n&nbsp;&nbsp;return true;<br \/>\n&nbsp;}<br \/>\n}<\/DIV><br \/>\n= \uc2e4\ud589 =<br \/>\n&nbsp;&#8211; \uc9c0\ub3c4\uac00 \uc548\ub098\uc62c \uacbd\uc6b0 \ud55c\ubc88 \uae30\ub2e4\ub9b0\ub2e4\uc74c\uc5d0 \ub2e4\uc2dc \uc2dc\ub3c4\ud558\uac70\ub098 main.xml\uc758 \ud0a4\ub97c \uc798 \ubabb \uc785\ub825\ud558\uc600\ub294\uc9c0 \ud655\uc778\ud55c\ub2e4.<\/p>\n<p><P style=\"MARGIN: 0px\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.jinukbaek.com\/blog\/wp-content\/uploads\/1\/cfile23.uf.1156CB454D9C7F76386BDA.png?resize=640%2C569\" class=\"aligncenter\" width=\"640\" height=\"569\" alt=\"\" filename=\"Andorid Map Capture.png\" filemime=\"image\/jpeg\" \/><\/P><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;&#8211; \uac1c\ubc1c \ud504\ub85c\uc81d\ud2b8 \uc0dd\uc131\uc2dc&nbsp;: Bulid Target\uc744 Google APIs \ub85c \ud560 \uac83&#8230; = AndroidManifest.xml \uc218\uc815 = &lt;?xml version=&#8221;1.0&#8243; encoding=&#8221;utf-8&#8243;?&gt;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[59],"tags":[56,57,58],"class_list":["post-43","post","type-post","status-publish","format-standard","hentry","category-computer-scienceandroid","tag-android","tag-google-map-api","tag-programming"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p8gT1J-H","_links":{"self":[{"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/posts\/43","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/comments?post=43"}],"version-history":[{"count":1,"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/posts\/43\/revisions"}],"predecessor-version":[{"id":101,"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/posts\/43\/revisions\/101"}],"wp:attachment":[{"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/media?parent=43"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/categories?post=43"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jinukbaek.com\/blog\/wp-json\/wp\/v2\/tags?post=43"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}