-1

Я пытаюсь отображать маркеры на карте google, есть две строки в datatable и столбцы долготы и широты также в той строке, которую я пытаюсь отобразить в соответствии с этими lat и long, я также делаю это через цикл в JQuery, но это шоу ошибкиПоказать несколько маркеров на карте google

UPDATE

Jquery кОД

стараюсь этот код и 1 маркер отображения на карте, но есть 2 строки по DataTable

1 маркер дисплей beacuse я жесткий код латы и длинного значение

<script type="text/javascript"> 
     $(function() { 

      var latit = '21.19055'; 
      var longi = '69.84629'; 
      var obj = {}; 
      obj.latit = latit; 
      obj.longi = longi; 
      getdata(obj); 
      return false; 
     }); 

     function getdata(obj) { 
      var RegNo = ''; 
      var Status = ''; 
      var latit = ''; 
      var longi = ''; 
      $.ajax({ 
       type: "POST", 
       url: "home.aspx/info", 
       contentType: "application/json;charset=utf-8", 
       data: "{'id':'442'}", 
       datatype: "json", 
       async: true, 
       cache: false, 
       success: function (result) { 

        alert("map2"); 

        $("#tabledata").empty(); 

        var table_data = JSON.parse(result.d).response; 

        console.log(JSON.parse(result.d)); 

        $("#tabledata").empty(); 

        if (table_data.length > 0) { 

       $("#tabledata").append(

     "<thead><tr><th>No</th><th>Longitude</th><th>Latitude</th></tr></thead>"); 
        for (var i = 0; i < table_data.length; i++) { 

        if (table_data[i] !== null) { 

        $("#tabledata").append("<tbody><tr><td>" + 
        table_data[i][0] + "</td> <td>" + 

        table_data[i][1] + "</td> <td>" + 

        table_data[i][2] + "</td></tr></tbody>"); 



        No = table_data[i][0]; 

        latit = table_data[i][2]; 

        longi = table_data[i][1]; 
          } 
         } 
        } 
        else { 
         $("#tabledata").hide(); 
        } 

        var map; 
        debugger; 
     var latlng = new google.maps.LatLng(74.0895898, 47.0998546); 
        debugger; 
        var myOptions = { 
         zoom: 8, 
         center: latlng, 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
        }; 
        debugger; 
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
        debugger; 
        var marker = new google.maps.Marker 
        (
         { 
     position: new google.maps.LatLng(obj.latit, obj.longi), 
          map: map, 
          title: 'Click me' 
         } 
        ); 
        debugger; 
        var infowindow = new google.maps.InfoWindow({ 
         content: 'No:' + No, 
         title: 'tr' 
        }); 
        google.maps.event.addListener(marker, 'click', function() { 
         infowindow.open(map, marker); 
        }); 
       }, 
       error: function (error) { 
        alert(error); 
        alert("error"); 
       } 
      }); 
     }  

</script> 

в вышеприведенном сценарии этой строки данные: «{„ID“:„442“}», потому что на информационном методе есть строка идентификатор, так что я с трудом этот идентификатор на этом id. но я не хочу жесткого кода beacuse нет 1 id на таблице, так как я сохранить этот идентификатор на сессии по вызову на эту строку

любое решение?

+0

Согласно сообщению об ошибке существует проблема с кодом службы и не Javascript кода. Можете ли вы отладить свой метод обслуживания? – xxxmatko

+0

@xxxmatko CHECK update please –

ответ

0

Вот решение

<div id="map" style="height: 400px; width: 500px;"> 
</div> 
<script type="text/javascript"> 
    var geocoder = new google.maps.Geocoder(); 
    var address = ["Bondi Beach", "Coogee Beach", "nidhi hospital, ahmedabad", "Sal hospital, ahmedabad", "Maroubra Beach"]; 
    var latitude = [], 
     longitude = []; 

    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 4, 
     center: new google.maps.LatLng(23.049356, 72.52376000000004), 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    var infowindow = new google.maps.InfoWindow(); 

    var marker, i; 
    console.log(address.length) 
    for (var i = 0; i < address.length; i++) { 

     geocoder.geocode({ 
      'address': address[i] 
     }, function(results, status) { 

      console.log(1) 
      if (status == google.maps.GeocoderStatus.OK) { 
       latitude[i] = results[0].geometry.location.lat(); 
       longitude[i] = results[0].geometry.location.lng(); 

       console.log(latitude[i], longitude[i]) 

       marker = new google.maps.Marker({ 
        position: new google.maps.LatLng(latitude[i], longitude[i]), 
        map: map 
       }); 
      } 

     }) 
    } 

</script> 
+0

Dont просто скопируйте и вставьте .. дать решение в соответствии с моим вопросом .. в вашем решении вы жестко кодируете данные, где, как я создаю таблицу throgh jquery. –

0

Ваше решение является неправильным с точки зрения дизайна. Нет абсолютно никакой необходимости создавать таблицу на стороне .Net.

Вы должны создать DTO с обязательными полями (Eg.'No ',' DateTime ',' Status '), заполнить его в контроллере (или в Factory of sort) и установить API для возврата Collection<yourDTO>.

Если вам нужно создать таблицу, вы можете сделать это с помощью jQuery позже.

Как бы то ни было, после вызова вашего API вы получите кучу объектов JSON, которые можно было бы легко повторить для создания таблицы или маркеров для карты Google.

Кажется, что вам не хватает базы теории.

сайт ASP будет хорошей отправной точкой для начала: http://www.asp.net/web-api/overview/data/using-web-api-with-entity-framework/part-5

+0

И не хватает информации, чтобы узнать, почему ваше приложение терпит неудачу, потому что мы не знаем, как реализована остальная часть вашего back-end. –

+0

@ Даниил Иванов, я заполняю таблицу throug jquery и проверяю обновление, пожалуйста –

 Смежные вопросы

  • Нет связанных вопросов^_^