• 23-11-2017, 22:34:57
    #1
    Arkadaşlar merhaba,
    Google maps'te database de tanımlı olan tesislerin görünmesini istiyorum. Google Maps scriptinde ilgili bölüm aşağıdaki gibidir.

    var officeLocations = [
        ['Flintshire', 53.233976, -3.010447],
        ['Cincinnati', 39.253209, -84.378659],
        ['Charlotte', 35.335253, -80.799018],
        ['Richmond', 37.350462, -77.338516],
        ['Toronto', 43.527606, -79.718703],
        ['Singapore', 1.280916, 103.848052],
        ['China', 23.157447, 113.336177]
    ];
    Ben bunu aşağıdaki gibi değiştirdim. Kod çalışıyor fakat haliyle sadece tek tesisin bilgileri haritada çıkıyor. Bunu döngü içerisine alıp tüm tesislerin listelenmesini nasıl yapabilirim?

    var officeLocations = [
        ['<?php echo $row_tesisler['TesisAdi']; ?>', <?php echo $row_tesisler['TesisKoordinat']; ?>]
    ];
  • 24-11-2017, 09:53:42
    #2
    ztk
    Kimlik doğrulama veya yönetimden onay bekliyor.
    var officeLocations = [

     $tesisleritutandizi; // bu tesisleri tutan dizinin değişken adı ise,
    foreach($tesisleritutandizi as $row_tesisler){
    echo "[".$row_tesisler['TesisAdi'].",".$row_tesisler['TesisKoordinat']."]";
    }
    ];
  • 24-11-2017, 10:01:53
    #3
    ztk adlı üyeden alıntı: mesajı görüntüle
    var officeLocations = [

    $tesisleritutandizi; // bu tesisleri tutan dizinin değişken adı ise, foreach($tesisleritutandizi as $row_tesisler){ echo "[".$row_tesisler['TesisAdi'].",".$row_tesisler['TesisKoordinat']."]"; }
    ];
    Çok teşekkürler. Burada bahsettiğiniz "tesisleri tutan dizi" ne demek tam anlayamadım?
  • 24-11-2017, 10:14:13
    #4
    cheki77 adlı üyeden alıntı: mesajı görüntüle
    Çok teşekkürler. Burada bahsettiğiniz "tesisleri tutan dizi" ne demek tam anlayamadım?
    Veritabanından tesisleri çekiyorsunuz ya dizi yani array olarak. Bir tane çekmiyorsunuz sonuçta hepsini çekiyorsunuz. Bu çektiğiniz veriler tesisleri tutan dizi yani array de duruyor ve siz döngü ile teker teker yazdıracaksınız.

    Aslında daha iyi yardımcı olmak için kodun önceki kısmını da görmek lazım.
  • 24-11-2017, 10:23:58
    #5
    ztk adlı üyeden alıntı: mesajı görüntüle
    Veritabanından tesisleri çekiyorsunuz ya dizi yani array olarak. Bir tane çekmiyorsunuz sonuçta hepsini çekiyorsunuz. Bu çektiğiniz veriler tesisleri tutan dizi yani array de duruyor ve siz döngü ile teker teker yazdıracaksınız.

    Aslında daha iyi yardımcı olmak için kodun önceki kısmını da görmek lazım.
    Tesisleri databaseden çekiyorum (dosyanın en başında)
    mysql_select_db($database_Veritabani, $Veritabani);
    $query_tesisler = "SELECT TesisAdi, TesisFoto, TesisKoordinat FROM tesisler";
    $tesisler = mysql_query($query_tesisler, $Veritabani) or die(mysql_error());
    $row_tesisler = mysql_fetch_assoc($tesisler);
    $totalRows_tesisler = mysql_num_rows($tesisler);
    Maps Kodları aşağıdaki gibi.
    <div class="box-body" id="map" style='height:500px;'>
        <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDT8bees3OGXi7sh588Ssh_Bo">
        </script>
        <script>
    function initialize() {
        
        //map options
        var mapOptions = {  
            zoom: 6,
            center: new google.maps.LatLng(39, 35),
            disableDefaultUI: true
        };
        // Get the HTML DOM element that will contain the map  
        var mapElement = document.getElementById('map');
        // create map using element and options defined above
        var map = new google.maps.Map(mapElement, mapOptions);
        setMarkers(map, officeLocations);
    }
    var officeLocations = [
        ['<?php echo $row_tesisler['TesisAdi']; ?>', <?php echo $row_tesisler['TesisKoordinat']; ?>, '<?php echo $row_tesisler['TesisFoto']; ?>'],
    ];
    //set and place the markers
    function setMarkers(map, locations)
    {
        //set global pin image
        var globalPin = 'assets/img/pin.png';
        for (var i = 0; i < locations.length; i++) {
          
            var office = locations[i];
            var myLatLng = new google.maps.LatLng(office[1], office[2]);
            var infowindow = new google.maps.InfoWindow({content: contentString});
            
            var contentString =
                '<div>'+
                '<div>'+
                '</div><strong>'+
                office[0] +
                '</strong><div>'+
                '<br><img src="upload/foto/'+office[3]+'" width="150px">'+
                '</div>'+
                '</div>';
            var image = {
              url: 'images/location_map.png',
              size: new google.maps.Size(30, 30),
              origin: new google.maps.Point(0, 0),
              anchor: new google.maps.Point(10, 30)
            };    
            var marker = new google.maps.Marker({
                position: myLatLng,
                icon: image,
                map: map,
                title: office[0],
            });
            google.maps.event.addListener(marker, 'click', getInfoCallback(map, contentString));
        }
    }
    function getInfoCallback(map, content) {
        var infowindow = new google.maps.InfoWindow({content: content});
        return function() {
                infowindow.setContent(content);
                infowindow.open(map, this);
            };
    }
    
    initialize();
    </script>
    İstersen dosyanın tamamını da yüklerim.
  • 24-11-2017, 11:49:59
    #6
    cheki77 adlı üyeden alıntı: mesajı görüntüle
    Tesisleri databaseden çekiyorum (dosyanın en başında)
    mysql_select_db($database_Veritabani, $Veritabani);
    $query_tesisler = "SELECT TesisAdi, TesisFoto, TesisKoordinat FROM tesisler";
    $tesisler = mysql_query($query_tesisler, $Veritabani) or die(mysql_error());
    $row_tesisler = mysql_fetch_assoc($tesisler);
    $totalRows_tesisler = mysql_num_rows($tesisler);
    Maps Kodları aşağıdaki gibi.
    <div class="box-body" id="map" style='height:500px;'>
        <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDT8bees3OGXi7sh588Ssh_Bo">
        </script>
        <script>
    function initialize() {
        
        //map options
        var mapOptions = {  
            zoom: 6,
            center: new google.maps.LatLng(39, 35),
            disableDefaultUI: true
        };
        // Get the HTML DOM element that will contain the map  
        var mapElement = document.getElementById('map');
        // create map using element and options defined above
        var map = new google.maps.Map(mapElement, mapOptions);
        setMarkers(map, officeLocations);
    }
    var officeLocations = [
        ['<?php echo $row_tesisler['TesisAdi']; ?>', <?php echo $row_tesisler['TesisKoordinat']; ?>, '<?php echo $row_tesisler['TesisFoto']; ?>'],
    ];
    //set and place the markers
    function setMarkers(map, locations)
    {
        //set global pin image
        var globalPin = 'assets/img/pin.png';
        for (var i = 0; i < locations.length; i++) {
          
            var office = locations[i];
            var myLatLng = new google.maps.LatLng(office[1], office[2]);
            var infowindow = new google.maps.InfoWindow({content: contentString});
            
            var contentString =
                '<div>'+
                '<div>'+
                '</div><strong>'+
                office[0] +
                '</strong><div>'+
                '<br><img src="upload/foto/'+office[3]+'" width="150px">'+
                '</div>'+
                '</div>';
            var image = {
              url: 'images/location_map.png',
              size: new google.maps.Size(30, 30),
              origin: new google.maps.Point(0, 0),
              anchor: new google.maps.Point(10, 30)
            };    
            var marker = new google.maps.Marker({
                position: myLatLng,
                icon: image,
                map: map,
                title: office[0],
            });
            google.maps.event.addListener(marker, 'click', getInfoCallback(map, contentString));
        }
    }
    function getInfoCallback(map, content) {
        var infowindow = new google.maps.InfoWindow({content: content});
        return function() {
                infowindow.setContent(content);
                infowindow.open(map, this);
            };
    }
    
    initialize();
    </script>
    İstersen dosyanın tamamını da yüklerim.
    $row_tesisler bir önceki mesajımdaki tesisleri tutan dizi oluyor.
  • 24-11-2017, 14:08:31
    #7
    Teşekkürler, baya bir uğraştım fakat yapamadım. Harita direk patlıyor. Farklı foreach yapıları denedim, onlarda da başarılı olamadım. Sanırım bu işi beceremeyeceğim.