我在我的項目中使用谷歌地圖MapView。當用戶用戶點擊地圖上的特定標記時,我需要創建一個像Google地圖那樣的對話框,並且需要將該用戶單擊的對話框(視口內部)定位。 如何將對話框的位置設置爲用戶點擊地圖的位置? 我已經看到對話框的API將它的位置設置爲一些座標,但不知道如何獲得用戶點擊的座標。如何將對話框的位置設置爲用戶點擊MapView的位置?
謝謝。
我在我的項目中使用谷歌地圖MapView。當用戶用戶點擊地圖上的特定標記時,我需要創建一個像Google地圖那樣的對話框,並且需要將該用戶單擊的對話框(視口內部)定位。 如何將對話框的位置設置爲用戶點擊地圖的位置? 我已經看到對話框的API將它的位置設置爲一些座標,但不知道如何獲得用戶點擊的座標。如何將對話框的位置設置爲用戶點擊MapView的位置?
謝謝。
這裏是爲Android拖放引腳的示例代碼上的MapView See This
註冊地圖上點擊處理程序。
// Capture map click event.
google.maps.event.addListener(YourMap 'click', $.proxy(this.mapClickHandler, this));
在該函數中,您將返回事件對象。從這您可以檢索經緯度和長按鼠標。如果您有標記,則可以使用這些值在地圖上設置其位置。
mapClickHandler = function (event)
{
var position = new google.maps.LatLng(event.latLng.lat(), event.latLng.lng())
// Main Marker. Or in your case a google maps dialogue.
this.marker.setPosition(position);
}
我想到你可能需要在x,y屏幕座標,我不知道這件事,我避免使用它們儘可能的,儘管它們可能是可作爲事件對象的屬性也。
找到了一個使用getProjection()來獲取屏幕位置座標的示例。不過,我的例子依靠擴展谷歌OverlayView。我不確定是否有從地圖本身獲取投影的方法。將不得不看看。在這一點上要顯示
MyOverlay.prototype = new google.maps.OverlayView();
var overlayProjection = this.getProjection();
var point = overlayProjection.fromLatLngToDivPixel(event.latLng);
point.x;
point.y;
請注意,你可以縮短它setPosition(event.latLng) – Emile 2012-08-30 13:35:37
化妝類MarkerPopup這是佈局,然後在方法的onTap像
@Override
protected boolean onTap(int index) {
MyOverlayItem item = mOverlays.get(index);
MarkerPopup this.popup = new MarkerPopup(mapView);
MapView.LayoutParams params = new MapView.LayoutParams(
MapView.LayoutParams.WRAP_CONTENT, // width
MapView.LayoutParams.WRAP_CONTENT, // height
item.getPoint(), MapView.LayoutParams.BOTTOM_CENTER);
params.mode = MapView.LayoutParams.MODE_MAP;
this.mapView.addView(popup, params);
// change parameter
popup.setLayoutParams(params);
// visibility
popup.setVisibility(View.VISIBLE);
}
其實我已經創建了一個CustomItemizedOverlay擴展ItemizedOverlay並使用onTap方法來顯示該對話框。我無法在CustomizedOverlay類中獲取並設置MapView的LayouParams,因爲我無法在onTap方法中調用MapView.LayoutParams。 – Nitin 2012-08-30 17:52:13
如何通過使用MapView.LayoutParams來設置彈出窗口的位置? – Nitin 2012-08-30 18:11:25
抱歉,錯誤。它將在ontap方法上。 – Jone 2012-09-04 13:00:35
代碼所做的就是坦然太大。你能指定定位對話框點擊位置的代碼位置嗎? – Nitin 2012-08-11 04:57:05