2015-07-21 66 views
4

我有一個Windows窗體應用程序Gmap.Net控制器,我想要做的就是添加基於標記在提供位置的外部來源。事情是,當我添加一個標記最初繪製在一個不正確的位置,但是在我縮小之後,它會到達正確的位置。所以這是我走到這一步:Gmap.Net標記在不正確的位置,但是當地圖縮放標記進入到正確的地方

我的地圖控制器申報位於巴拿馬。

private void button2_Click(object sender, EventArgs e) 
{  
    //Layer count is just a variable to add new OverLays with different names 
    var markersOverlay = new GMapOverlay("markers" + layerCount); 

    //Marker far away in Quebec, Canada just to check my point in discussion   
    var marker = new GMarkerGoogle(new PointLatLng(58.0032, -79.4957), GMarkerGoogleType.red_small); 

    markersOverlay.Markers.Add(marker); 
    gmap.Overlays.Add(markersOverlay); 
    layerCount++; 
} 

所以,當我按下按鈕,我這是什麼(表達心意,地圖位置,它的設置是在巴拿馬和加拿大標記):

First picture without zooming. Source: OC

當我縮小,標記在加拿大的正確位置。

Second picture without zooming. Source: OC

爲什麼我的標記在巴拿馬被抽最初?

Pd積:我已經檢查了這question而是因爲我需要增加超過1個標記,myMap.UpdateMarkerLocalPosition(marker)不是我一個解決方案不解決我的問題。

+0

我在這裏得到了同樣的問題,我仍然在尋找解決方案。 –

+2

嗨@gm_fernandes,檢查它完全工作的答案,這只是代碼行順序的問題。您需要先將疊加層添加到地圖,然後將標記添加到疊加層。 –

+0

但它不適用於我的程序,也許丟失了某些東西 –

回答

4

這是因爲你要添加的標記尚未添加到地圖的疊加覆蓋。嘗試切換的語句的順序如下:

gmap.Overlays.Add(markersOverlay); 
markersOverlay.Markers.Add(marker); 
1

添加的第一標記在LAT,LON = 0,0。 您還可以將此標記設置爲不可見,並將其標記圖像設置爲1x1像素透明PNG圖像。 標記的第一個元素會做這種錯誤的放置。

+0

我重新調整了您的努力以找到解決方法。如果遇到上述問題,請嘗試應用所給出的解決方案。如果這不起作用,那麼讓我們找出原因。問題在於家電的秩序問題。 – rdoubleui

相關問題