2016-10-11 5 views
0

Codeigniter Google Maps V3 API libraryを使用して、データベースのマーカーを地図上に表示しています。Codeigniterを使用してインフォウインドウでタブを表示する方法Google Maps V3 APIライブラリ

問題は、同じ座標のマーカーが複数あるという問題です。たとえば、ある場所に3つのマーカーがありますが、地図上には1つのみ表示され、1つの情報ウィンドウしか表示されません。

私は調査して、infoBubble JSライブラリで複数のタブを持つ情報ウィンドウを作成することが可能であることを発見しました。 HereはinfoBubbleを追加するための簡単なコードです。

は、私は1つのマーカーで地図を表示し、簡単なcontoller作成:

public function index() 
     { 
       $this->load->library('googlemaps'); 
       $this->load->helper('url'); 

       $config['center'] = "37.4419, -122.1419"; 
       $config['zoom'] = "12"; 
       $this->googlemaps->initialize($config); 

       $marker = array(); 
       $marker['position'] = '37.429, -122.1419'; 
       $this->googlemaps->add_marker($marker); 
       $data['map'] = $this->googlemaps->create_map(); 

       $this->load->view('maps_view2', $data); 
     } 

をし、それが正常に動作します。だから私は

$config['onload'] = 'var infoBubble = new InfoBubble({ 
       maxWidth: 300 
      }); 

      var div = document.createElement("DIV"); 
      div.innerHTML = "Hello"; 

      infoBubble.addTab("Tab 1", div); 
      infoBubble.addTab("Tab 2", "This is tab 2"); 

      google.maps.event.addListener(marker, "click", function() { 
       if (!infoBubble.isOpen()) { 
       infoBubble.open(map, marker); 
       } 
      });'; 

を私のコントローラに追加しました。基本的には、JSコードスニペットをfunction initialize_map()に追加するだけです。私も<script type="text/javascript" src="<?php echo base_url() ?>src/infobubble.js"></script>を私の意見に加えました。誰かが問題がどこにあるか私は理解してheplことができれば、私は同じコードを取得するが、何のinfoBubbleがない私は私のサイトのソースコードとコードsnipetのために使用された例を比較すると

...

をお願い申し上げます。

+0

を動作するはずですあなたは[SOポスト](http://stackoverflow.com/questions/8275996/codeigniter-google-maps-api-v3-close-この中で提案された解決策を試してくださいinfoBubbleのコンテンツは 'google.maps.marker(); 'に渡されました – Teyam

+0

この[GitHub post](http:///gkwelding.github.io/2010/08/03/google-map-library-for-codeigniter-example-usage-update/)が役立ちます。 – Teyam

答えて

0

これは

var infowindow = new google.maps.InfoWindow({ 
         content:"" 
        }); 
         marker.setMap(map); 
         marker.addListener('mouseover', function() { 
         infowindow.open(map, marker); 
        }); 
関連する問題