ASP.NET и JavaScript (маркеры GoogleMaps для JavaScript) - PullRequest
0 голосов
/ 28 июня 2011

У меня вопрос новичка. Если в моем приложении asp.net мне нужно запросить базу данных и получить набор маркеров Google для отображения на карте. Я новичок в веб-разработке, поэтому я не уверен, как данные могут быть переданы из asp.net в JavaScript. Это делается с помощью WebService, вызываемого из JavaScript, или есть другой способ сделать это? Я, вероятно, неправильно понимаю некоторые основные концепции. Кроме того, есть ли способ передать данные из JavaScript в приложение asp.net (например, что-то не было на карте Google, и данные должны быть сохранены в базе данных на серверной части). Если это слишком просто, любые ссылки будут оценены. Спасибо !

Ответы [ 2 ]

2 голосов
/ 28 июня 2011

Ну, вот как я бы это сделал (к вашему сведению, это в значительной степени зависит от JQuery библиотеки JavaScript):

  1. Укажите <div>, где будет отображаться ваша карта.
  2. используйте обработчик $ (document) .ready () , чтобы дождаться загрузки DOM для запуска вашего запроса
  3. Используйте асинхронный вызов JQuery $.ajax для веб-службы WCF или ASMX, которая возвращает JSON, представляющий данные вашего маркера.

Вот примерный фрагмент кода:

... your web page

<script>
$(document.)ready(function() {

$.ajax(

 url: "mapquery.asmx",
 async: true,
 dataType: json,
 success: function(data)
 {
    var map = new GMap2(document.getElementById("map_div"));
    for (int i = 0; i < data.length; i++)
    {
       var point = new GLatLng(data.results[i].lat,
                               data.results[i].lng);
       var marker = createMarker(point, data.results[i].desc, 
                                 data.results[i].type);
       map.addOverlay(marker);
    }
 }
);

});
</script>

пример json, возвращенного из mapquery.asmx:

results = [ {
      lat: 41.765,
      lng: 80.572
      desc: "My house",
      type: "X"
   },
   {
      lat: 42.765,
      lng: 81.572
      desc: "Friend's house",
      type: "X"
   }
]
0 голосов
/ 28 июня 2011

Вы можете использовать что-то вроде ниже:

function load() {
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById("map_canvas"));
    map.addControl(new GSmallMapControl());
    map.addControl(new GMapTypeControl());
    map.setCenter(new GLatLng(43.104135, -77.884455), 6);
    // Change this depending on the name of your PHP file
    GDownloadUrl("generateXML.aspx", function(data) {
          var xml = GXml.parse(data);
          var markers = xml.documentElement.getElementsByTagName("marker");       
          for (var i = 0; i < markers.length; i++) {
            var desc = htmlEntities(markers[i].getAttribute("desc"));   
            var type = markers[i].getAttribute("type");
            var point = new GLatLng(parseFloat(markers[i].getAttribute("lat")),
            parseFloat(markers[i].getAttribute("lng")));
            var marker = createMarker(point, desc, type);
            map.addOverlay(marker);
          }
    });
}

В generateXML.aspx отправьте ответ XML, и он должен работать как charm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...