» 首頁 » 討論區 » Android程式設計 »如何在ANDROID取得地圖座標

如何在ANDROID取得地圖座標

發表人: 訪客
發表時間: 2011-09-01 15:22:46
你好:

對於gmap的地圖已經會讓地圖顯示(標記)多個點後
如何用"長按"也可以直接標記呢?
而不是用輸入座標or地址

或是在建立好地圖後如何像內建的地圖長按地圖中任一點

即可跳出訊息方塊或得到該點的座標
發表人: Seachaos
積分: 2432
發表時間: 2011-09-02 01:48:29
你好
Android的Google Map API有提供您找出按下點座標的方法
就是MapView的onTouchEvent

[sea:javaCode]
public boolean onTouch(View v, MotionEvent event) {
...
tapPoint = views.map.getProjection().fromPixels((int)event.getX(),(int)event.getY());
...
// 按下點的座標 = tapPoint.getLatitudeE6()/1E6
// 按下點的座標 = tapPoint.getLongitudeE6()/1E6
}
[/sea]
tapPoint就可以取得按下點的資訊了

如果要長按判斷的話可以用


[sea:javaCode]
按下時間長 = event.getEventTime()-event.getDownTime()
[/sea]
來判斷按了多久
發表人: 訪客
發表時間: 2011-09-02 12:46:26
[quote]Seachaos 提到:
你好
Android的Google Map API有提供您找出按下點座標的方法
就是MapView的onTouc...[/quote]

tapPoint = views.map.getProjection().fromPixels((int)event.getX(),(int)event.getY());...
請問你的views是?
map 是視窗裡面的mapview元件嗎…

tappoint是要宣告成geopoint嗎
發表人: 訪客
發表時間: 2011-09-02 21:54:37
喔喔


上面的事都完成了…


請問…
motionevent

怎麼實現 按住呢?
發表人: Seachaos
積分: 2432
發表時間: 2011-09-04 14:08:59
你好
如果是單純的按住可以用OnLongClickListener事件
如果要取得座標的話就可以用我上面有寫到的
[sea:javaCode]
按下時間長 = event.getEventTime()-event.getDownTime()
[/sea]
來取得使用者按下多久,用此時間做行為的判斷
發表人: 訪客
發表時間: 2011-09-07 16:43:39
你好!
可以請問一下你多個標記是讀取資料庫內的資料嗎?
最近一直被多點標記的問題困擾!
謝謝!
發表人: Seachaos
積分: 2432
發表時間: 2011-09-08 00:34:31
您好:
多點標記和資料庫是沒有關系的喔
資料是資料部份
標記的部份是mapView的部份
(不一定要有資料庫才可以表記)
發表人: 訪客
發表時間: 2011-09-08 08:46:50
你好:
謝謝你的回覆:)
那我再請問一個問題,
如果我要標記全台灣的7-11,
資料部分只能一一輸入標記點在程式碼上嗎?
還是有其他辦法?
謝謝!
發表人: Seachaos
積分: 2432
發表時間: 2011-09-08 14:45:44
Android有內建可以搜尋Google Map的API
這個程式碼可以找出附近的景點

[sea:javaCode]
Geocoder geo = new Geocoder(this);
try {
List<Address> resp = geo.getFromLocationName("關鍵子", 100);
for(int ax=0;ax<resp.size();ax++){
Log.i("msg",resp.get(ax).getFeatureName());
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
[/sea]

所以可以用他來找7-11
但他只會找手機附近的

要更遠的話要自已設GPS座標範圍

[sea:javaCode]
geo.getFromLocationName(locationName, maxResults, lowerLeftLatitude, lowerLeftLongitude, upperRightLatitude, upperRightLongitude)
[/sea]
發表人: 訪客
發表時間: 2011-09-08 17:07:25
你好!
Android有內建可以搜尋Google Map的API這段程式碼應該放哪?
我的程式碼有自動定位功能,但執行出來沒有顯示附近景點,不曉得是什麼問題!
關鍵子我有改成"7-11",是關鍵子的部分出問題嗎?
目前我是先把那段程式碼放在
public void onCreate(Bundle savedInstanceState) {}內!
麻煩你了,謝謝!
發表人: Seachaos
積分: 2432
發表時間: 2011-09-08 21:10:43
只要放在Acitivty內就可以了
另外結果是List<Address>
所以你要自已去處理,把他Show在mapView上 (Address可以取得經緯度)