Herkese merhaba, haritada 750 marker dan sonra sondaki markeri (yani resmi) silmek istiyorum.Bu konuyu bilen arkadaşlar yardımcı olurlarsa çok sevinirim.

js kodları:

   <script type="text/javascript">
    var myMarkers = [];
    var map;
    var marker;
    var Lc;
    var previousLat;
    var previousLng;
    var count = 0;

    function pageLoad() {
        if (!Sys.WebForms.PageRequestManager.getInstance().get_isInAsyncPostBack()) {
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandler);
            Sys.WebForms.PageRequestManager.getInstance().add_endRequest(beginRequestHandler);
        }
    }

    function endRequestHandler(sender, args) { 
    }

    function initializeMap() {
        var loc = new google.maps.LatLng(LocationX[0], LocationY[0]);
        var mapOptions = {
            center: loc,
            zoom: 15,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);
        previousLat = 0;
        previousLng = 0;
        initialize();
    }
    function beginRequestHandler(sender, args) {
        initialize();
    }
    function initialize() {

        if (!isNaN(parseInt(LocationX[0]))) {

        var image = {
            url: MyDirImage[0],
            size: new google.maps.Size(28, 26),
            origin: new google.maps.Point(0, 0),
            anchor: new google.maps.Point(15, 10)

        };
        var location = new google.maps.LatLng(LocationX[0], LocationY[0]);
        marker = new google.maps.Marker({
            position: location,
            map: map,
            icon: image

        });

        if (previousLat != 0) {
            var myPath = [new google.maps.LatLng(previousLat, previousLng),new google.maps.LatLng(LocationX[0], LocationY[0])];                
            var polyOptions = {
                path: myPath,
                strokeColor: '#CC0000',
                strokeOpacity: 0.6,
                strokeWeight: 4
            }
            poly = new google.maps.Polyline(polyOptions);
            poly.setMap(map);
        }
        previousLat = marker.getPosition().lat();
        previousLng = marker.getPosition().lng();

        var contentString = 'Trials';

        myMarkers.push(marker);
        map.setCenter(marker.getPosition());
        attachSecretMessage(marker, contentString);
        LocationX = [];
        LocationY = [];
        MyDirImage = [];
        MyIgnImage = [];
        MyTxImage = [];
        Speed = [];
        KMCounter = [];
        DataIncomeDate = [];

        }
    }

    google.maps.event.addDomListener(window, 'load', initializeMap);

    function attachSecretMessage(marker, mes) {
        var infowindow = new google.maps.InfoWindow(
         { content: mes,
             size: new google.maps.Size(50, 50)
         });
        google.maps.event.addListener(marker, 'mouseover', function () {
            infowindow.open(map, marker);
        });

        google.maps.event.addListener(marker, 'mouseout', function () {
            infowindow.close();
        });
    }

</script>

soruldu: 02 Eki '13, 08:12

c3434's gravatar image

c3434
199232632
cevap kabul oranı: 50%

değiştirildi: 03 Eki '13, 07:43

mahmut_can's gravatar image

mahmut_can ♦
2.9k62552

Nasıl bir yol izlenebilir acaba?

(02 Eki '13, 08:13) c3434 c3434's gravatar image

Merhaba arkadaşlar , murtaza beyin yardımıyla sorunun çözümünü bulduk burdan kendsine teşekkürler.Faydalı olması için:`

        function endRequestHandler(sender, args) {if (myMarkers.length>5) {

            var myResultMarker = myMarkers.length - 6;
            myMarkers[myResultMarker].setMap(null);

            var myResultPoly = line.length -5;
            line[myResultPoly].setMap(null);

        }

    }
Kolay gelsin herkese.
permanent link

cevaplandı: 03 Eki '13, 07:42

c3434's gravatar image

c3434
199232632
cevap kabul oranı: 50%

Bu kodda hangi fonksiyon 750 tane marker'ı haritaya yapıştırıyor kestiremedim ama marker'ları yüklerken, yüklendikleri dizinin boyutunu kontrol ederseniz ve fazlalıkları pop() gibi bi array metoduyla silerseniz herhalde mantıklı olur. Muhtemelen önce array'dan silme işlemini yaparsınız sonra o array'ı tekrar haritaya bağlarsınız. Adapter gibi.


Ekleme:

function beginRequestHandler(sender, args) {
        initialize();
    }

Muhtemelen üstteki beginRequestHandler() fonksiyonu, marker'ların myMarkers dizisine eklendiği initialize() fonksiyonunu en çok çağıran fonksiyondur. Çünkü initialize() içinde sadece bir kere

 myMarkers.push(marker);

çalıştırılıyor ve ~750 defalık cereyan eden bir şey yok.

permanent link

cevaplandı: 02 Eki '13, 09:48

murtaza's gravatar image

murtaza
981122535
cevap kabul oranı: 29%

değiştirildi: 02 Eki '13, 15:15

Öncelikle cevabınız için teşekkrleri, beginRequestHandler(sender, args) metodu ,code behind te her timer sonucunda çalışır.Ben tüm markeri bir diziye atıp sonra 750 markerdan sonra sondaki bir markeri silmek istyrm.Sizin de dediğiniz gibi 750 defalık cerayan eden şeyi bulmak lazım.http://cemalkabar.com/resim/Resim1.png bu resimdeki gibi 750 icondan sonra sondaki bir ikonu silmek istyrm.Tıpkı yılan gibi hareket edicek.bir icon eklenecek sonda da bir icon eksilecek.Belki soruda iyi anlatamadım kusura bakmayın.

(03 Eki '13, 01:22) c3434 c3434's gravatar image

Hocam o zaman initialize()'ı çağıran beginRequestHandler() blokunda bir şeyler yapamaz mısınız? Yahut endRequestHandler()'da. Herhalde myMarkers[]'tan silinen öğe haritadan da kaldırılmış olacaktır.

(03 Eki '13, 03:40) murtaza murtaza's gravatar image

Evet endRequestHandler() metodu içinde haritaya her bir marker eklendikten sonra çalışmakta.fakat nasıl bir işlem yapılmalı.yapılan işlem sonucunda sadece sondaki bir marker silecektir.

(03 Eki '13, 04:16) c3434 c3434's gravatar image

Merhaba ,endRequestHandler(sender, args) metodunda if (myMarkers.length>10) {

            var myResult = myMarkers.length - 11;
            myMarkers[myResult].setMap(null);

}

yazınca istediğim markeri silebiliyorum.Sorunun yarısını çözdüm şimdi ise iconlar arasındaki çizgiyi silmek için nasıl bir yol izlenebilir.Örnek resim linki:http://cemalkabar.com/resim/Resim2.png

(03 Eki '13, 05:51) c3434 c3434's gravatar image

array fonksiyonları üzerinden gitmeyi deneseniz.

(03 Eki '13, 05:51) murtaza murtaza's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1

Soruldu: 02 Eki '13, 08:12

Görüntüleme: 845 kez

Son güncelleme: 03 Eki '13, 07:43

Benzer sorular

powered by BitNami OSQA