2016-11-20 39 views
1

我正在研究一個基於地圖的應用,用戶具有通用Google地圖界面,但我想在事件中添加一個3d自定義元素。用戶只需按下一個按鈕就可以在地圖上添加一個pokestop(例如我的元素)。如何使用Google Maps API在基於地圖的應用上添加元素?

我正在使用Google Maps API,但我不知道是否應該使用圖形引擎。其實,我不想使用Unity或其他引擎;我想盡可能使應用程序儘可能輕。

該應用應該在android上運行。 你有什麼建議嗎?

+0

這可能會幫助你。 http://stackoverflow.com/questions/14811579/how-to-create-a-custom-shaped-bitmap-marker-with-android-map-api-v2 –

回答

0

要用圖像創建標記,請使用此選項。 //使用自定義圖標。

mSydney = mMap.addMarker(新的MarkerOptions()

.position(DELHI) 

.title("Delhi") 

.snippet("Population: 86,398,800") 

.icon(BitmapDescriptorFactory.fromResource(R.drawable.image))); 

要使用AA帆布,

Bitmap.Config CONF = Bitmap.Config.ARGB_8888;

BMP位=位圖。 createBitmap(80,80,conf);

Canvas canvas1 = new Canvas(bmp);

// paint定義文本顏色,筆畫寬度和大小

Paint color = new Paint();

color.setTextSize(35);

color.setColor(Color.BLACK);

//修改畫布

canvas1.drawBitmap(BitmapFactory.decodeResource(getResources(),

R.drawable.user_picture_image), 0,0, color); 

canvas1.drawText( 「用戶名@」,30,40,顏色);

//添加標記地圖

mMap.addMarker(新的MarkerOptions()位置(USER_POSITION)

.icon(BitmapDescriptorFactory.fromBitmap(bmp)) 

// Specifies the anchor to be at a particular point in the marker image. 

.anchor(0.5f, 1)); 

使用這個你可以繪製Fancier的東西。

在Google Maps API v2 Demo中,有一個MarkerDemoActivity類,您可以在其中 看到如何將自定義圖像設置爲GoogleMap。

//使用自定義圖標。

mSydney = mMap。addMarker(新的MarkerOptions()

.position(SYDNEY) 

.title("Sydney") 

.snippet("Population: 4,627,300") 

.icon(BitmapDescriptorFactory.fromResource(R.drawable.arrow))); 

由於這只是置換標記與圖像您可能需要使用一個畫布 吸引更多複雜和票友東東:

Bitmap.Config的conf = Bitmap.Config .ARGB_8888;

BMP位= Bitmap.createBitmap(80,80,CONF);

帆布canvas1 =新畫布(BMP);

// paint定義文本顏色,筆畫寬度和大小

Paint color = new Paint();

color.setTextSize(35);

color.setColor(Color.BLACK);

//修改畫布 canvas1.drawBitmap(BitmapFactory.decodeResource(getResources(),

R.drawable.user_picture_image), 0,0, color); 

canvas1.drawText( 「用戶名@」,30,40,顏色);

//添加標記地圖

mMap.addMarker(新的MarkerOptions()位置(USER_POSITION)

.icon(BitmapDescriptorFactory.fromBitmap(bmp)) 

// Specifies the anchor to be at a particular point in the marker image. 

.anchor(0.5f, 1)); 

這會將Canvas canvas1繪製到GoogleMap mMap上。代碼應該(大部分) 爲自己說話,那裏有很多教程如何繪製一個畫布。您可以從Android Developer頁面查看Canvas和Drawable來開始您的初始設計。

現在你還想從URL下載圖片。

URL url = new URL(user_image_url);

HttpURLConnection conn =(HttpURLConnection)url.openConnection();

conn.setDoInput(true);

conn.connect();

InputStream is = conn.getInputStream();

bmImg = BitmapFactory.decodeStream(is);

您必須從後臺線程下載圖像(您可以使用AsyncTask或Volley)。

之後,您可以用下載的圖像bmImg替換BitmapFactory.decodeResource(getResources(),R.drawable.user_picture_image)。

+0

感謝您的答案,但如果我想添加一個我的自定義標記上的動畫(就像撲克牌上的花),我該如何繼續? –

相關問題