1

PHPファイルからの私の配列は次のようになります。

[
 {"lat":"4.174475","lon":"73.509564","datetime":"2012-11-23 16:41:40"},
 {"lat":"5.17","lon":"73.50633754680894","datetime":"2012-11-23 05:00:00"},
 {"lat":"6.17","lon":"73.50633754680894","datetime":"2012-11-01 00:00:00"}
]

リンク#Threeをクリックすると、threeClick()関数を使用して3つのマーカーが生成されます。これが関数です。

function threeClick () {
  $.getJSON('json.search.php?idcard=<?php echo $idcardno; ?>&limit=3', function(data) {
    var location;
    $.each(data, function (key, val) {
      addMarker(val.lat,val.lon);
    });
  }

マーカーの追加機能は次のようになります(from:Googleマップ上のJson配列からのLatLng座標のプロット---マーカーはすべて同じ場所に積み重ねられます

function addMarker(lat,lng) {
  marker = new google.maps.Marker({
    position: new google.maps.LatLng(lat,lng),
    map: map,
    icon: "images/mapIcons/red-dot.png"
  });
  markersArray.push(marker);
}

私は以下を使用して地図を生成しました:

var map;
var markersArray = [];
function initMap() {
  var latlng = new google.maps.LatLng(4.174475, 73.509564);
  var myOptions = {
    zoom: 16,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  };
  map = new google.maps.Map(document.getElementById("mapcanvas"), myOptions);
}

リンクをクリックしたときにマーカーを表示する方法を教えてもらえますか?このコードの何が問題になっていますか?

4

1 に答える 1

1

あなたはこれを使用したと言いました:

<a id="Three" onclick="threeClick">three</a>

問題は、threeClickそれ自体では実際には関数を呼び出さないことです。それはただそれを参照します。これを呼び出すには、次のように括弧が必要です。

<a id="Three" onclick="threeClick()">three</a>

ただし、jQueryを使用してハンドラーをアタッチすることをお勧めします。したがって、HTMLを次のように設定します。

<a id="Three" href="#">three</a>

そして、これをJavaScriptに追加します。

$('#Three').click(function() {
    threeClick();
    return false;
});

return falseここでは、「#」クリックのデフォルトアクション(URLハッシュの設定)が発生しないようにするためのものであることに注意してください。

于 2012-11-25T11:58:40.187 に答える