簡體   English   中英

帶有Perl的Javascript Forloop不適用於Google Maps API創建標記

[英]Javascript Forloop withing Perl Not Working for Google Maps API to create Markers

我是perl和javascript的新手,並試圖讓javascript for循環通過perl數組運行以將標記插入到Google Maps實例中。 創建了映射並運行了for循環,但是插入了5個相同的標記,因為循環似乎無法正確運行。 有沒有更好的方法在javascript中訪問此數組?

@latlongarray = (0,0,20,20);
$length = @latlongarray;

{
print <<HTML;
<html>
<head>
<script type="text/javascript"
      src="http://maps.googleapis.com/maps/api/js?&sensor=true">
    </script>

<script type="text/javascript">
var map ;
  function initialize() {
    var latlng = new google.maps.LatLng(0,0);
    var myOptions = {
     zoom: 2,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP // can be SATELLITE  ,HYBRID,          ROADMAP     or TERRAIN
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
{

var i;
for (i=0;i<=8;i=i+2)
{
var marker = add_marker($latlongarray[i],$latlongarray[i]); 
marker.setMap(map);
    }
    }

 }
  </script>
   <script type="text/javascript">
  function add_marker(lat,lng,title,box_html) {

    var infowindow = new google.maps.InfoWindow({
        content: box_html
});

var marker = new google.maps.Marker({
      position: new google.maps.LatLng(lat,lng),
      map: map,
      title: title
});

google.maps.event.addListener(marker, 'click', function() {
  infowindow.open(map,marker);
});  

  return marker;
 }
</script>

<title>Reverse IP Lookup & Locate</title>
</head>
 <body onload="initialize()">
   <div id="map_canvas" style="width:80%; height:80%"></div>
 </body>
HTML
exit;
}

Perl是服務器端。 它在您的Javascript之前執行。 Perl僅輸出HTML和Javascript,一旦這樣做,HTML和Javascript便不了解您的Perl變量。

您可以在Perl中進行循環,以輸出適當的add_marker() Javascript代碼,也可以輸出Javascript數組,然后像現在一樣使用Javascript循環。 您將永遠無法從Javascript循環中引用Perl的數組索引。

正如Cfreak指出的那樣,您正在混合使用Perl和Javascript代碼。 我最近在這篇文章中回答了一個非常類似的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM