1

このページでマーカーを動的にロードする方法の例を見ました

https://developers.google.com/maps/articles/phpsqlsearch_v3

そして、別のコードが BIOSTALL からの Google マップ API を点火するのを見ました。

しかし、この( http://biostall.com/codeigniter-google-maps-v3-api-library )ライブラリは、マーカーを動的にロードしません。ライブラリ自体を使用してそれを達成するにはどうすればよいですか。

マップの初期化でマーカーをフェッチしようとする必要がありますか、それともライブラリは ajax を使用してこれらのマーカーをロードする方法を提供しますか?

4

2 に答える 2

1

Biostall によって提案された疑似コードを試してみると、これが私が実装したものです。

$.ajax({
          url: '*URL*',
          type: "POST",
          data: ({value : *value*}),
          dataType: "json", //retrieved Markers Lat/lng in Json, thus using this dataType
          success: function(data){
            //Removing already Added Markers//////////
                for(var i=0; i < markers.length; i++){
                    markers[i].setMap(null);
                }
                markers = new Array();
            //////////////////////////////////////////
            // Adding New Markers////////////////////

                for (var i = 0, len = data.length; i < len; ++i) { // Iterating the Json Array
                    var d = data[i];

                    var lat = parseFloat(d.lattitude);
                    var lng = parseFloat(d.longitude);  
                    var myLatlng = new google.maps.LatLng(lat,lng);

                    var marker = {
                        map:map,
                        position:myLatlng // These are the minimal Options, you can add others too
                    };
                    createMarker(marker);
                }
            }
       }
    );

注:マーカーの配列がこの ajax 呼び出しに送信される場合、php 関数 json_encode() でエンコードされた json である必要があります。したがってdataType: "json"、ajax 呼び出しパラメーターで述べたように使用できます。

これは私にとってはうまくいきました。これが役立つことを願っています。

于 2013-06-19T08:03:46.443 に答える
1

まず、私のライブラリを使用していただきありがとうございます。このライブラリは、Google マップ コードの生成を単純化するための手段にすぎないことに注意してください。ユーザーに代わって JavaScript と HTML を構築し、マップをページにすばやく簡単に追加できるようにします。

開発者が Google Maps API を操作する方法は無数にあり、ライブラリがすべてのインスタンスに対応することは不可能です。その結果、このようなオーダーメイドの状況では、必要に応じて実行するために独自のコードを追加する必要がある場合があります。

結果として、echo $map['js'] を実行した後に、必要なカスタム JS を追加することをお勧めします。ソースコードを表示するとわかるように、createMarker() というライブラリに付属する関数が利用可能です。

疑似コードでは、これは次のようになります。

<?php echo $map['js']; ?>
<script type="text/javascript">

    // Get marker(s) with ajax

    // Call createMarker() function to add marker(s) to map

</script>

それが多少役立つことを願っています。

于 2013-03-05T08:36:31.350 に答える