2017-02-18 10 views
0

Я работаю с несколькими маркерами google map в asp.net, здесь мне нужно отправить значение массива с серверной стороны на переменную на стороне клиента. Я использую «ClientScript.RegisterArrayDeclaration» для передачи массива моей переменной на стороне клиента. Но это не сработает. Пожалуйста, помогите мне. Мне нужно передать значение на загрузку страницы. «Места» мой ява скрипт переменной *Я работаю с многомерными маркерами google в asp.net

<html> 
<head> 

    <title>Google Maps Multiple Markers</title> 
    <script src="http://maps.google.com/maps/api/js?key=My KEy" type="text/javascript"></script> 
</head> 
<body> 
<center> 
    <div id="map" style="height: 500px; width: 700px;"> 
</div> 
</center> 
<script type="text/javascript"> 
    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 8, 
     center: new google.maps.LatLng(9.918648010, 78.12000), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    var infowindow = new google.maps.InfoWindow(); 
    var marker, i; 
    for (i = 0; i < locations.length; i++) { 
     marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
      map: map 
     }); 
     google.maps.event.addListener(marker, 'click', (function (marker, i) { 
      return function() { 
       infowindow.setContent(locations[i][0]); 
       infowindow.open(map, marker); 
      } 
     })(marker, i)); 
    } 
    </script> 
</body> 
</html> 

*

protected void Page_Load(object sender, EventArgs e) 
    { 
     List<String> oGeocodeList = new List<String> 
     { 
    " ['Bala', 9.91864810526, 78.1203081843780, 4] ", 
    " ['ganesh', 9.91864, 78.12, 5] ", 
    " ['santhosh', 9.9186, 78.120, 3] ", 
    " ['test', 9.9186481, 78.12030, 2] ", 
    " ['test2', 9.918670, 78.12840, 1] " 
    }; 
     var geocodevalues = string.Join(",", oGeocodeList.ToArray()); 
     ClientScript.RegisterArrayDeclaration("locations", geocodevalues); 

    } 

ответ

0

В вашем примере карта инициализируется перед тем переменная locations становится определенной на этой странице. Одним из вариантов было бы инициализировать карту после загрузки страницы:

function initMap() { 

    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 8, 
     center: new google.maps.LatLng(9.918648010, 78.12000), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    var infowindow = new google.maps.InfoWindow(); 
    for (var i = 0; i < locations.length; i++) { 
     var marker = new google.maps.Marker({ 
      position: new google.maps.LatLng(locations[i][1], locations[i][2]), 
      map: map 
     }); 
     google.maps.event.addListener(marker, 'click', (function (marker, i) { 
      return function() { 
       infowindow.setContent(locations[i][0]); 
       infowindow.open(map, marker); 
      } 
     })(marker, i)); 
    } 

} 
google.maps.event.addDomListener(window, 'load', initMap);