2009-03-04 7 views
0

У меня есть этот сценарий, может кто-нибудь заполнить пробелы для меня? Его, как это:Чтение из базы данных местоположений

таблицы базы данных на Картах поля:

Map_ID, координаты, MarkerTitle, MarkerField.

Код За:

Dim myTableAdapter As New myDatasetTableAdapters.tblMapsTableAdapters 
Dim myTable As myDataset.tblMapsDataTable = myTableAdapter.GetAllMaps() 

Прямо сейчас, я назначаю одно значение в то время, чтобы иметь возможность показать одну Googlemap на моей странице, просто с Friend переменных и в коде, который получает их значения на PageLoad и я объявил переменные с тем же именем в моем сценарии, который показывает карты, его как:

Код Behind:

Friend coordinates As String 
Friend zoom As String 
Friend maptitle As String 
Friend text As String 

Сценарий:

<script type="text/javascript"> 
    function load() { 
    var map = new GMap2(document.getElementById("map")); 
    var marker1 = new GMarker(new GLatLng(<%=coordinates%>)); 
    var html1="<%=maptitle%><br/>" + "<%=text%>"; 
    map.setCenter(new GLatLng(<%=coordinates%>), 5); 
    map.setMapType(G_HYBRID_MAP); 
    map.addOverlay(marker1); 

    map.addControl(new GLargeMapControl()); 
    map.addControl(new GScaleControl()); 
    map.addControl(new GMapTypeControl()); 
    marker.openInfoWindowHtml(html1); 
    } 
</script> 

Как я могу перейти от описанных выше процедур, чтобы что-то вроде: проходя целые tableOfMaps на JavaScript или читать эти показания их (получение информации из базы данных внутри стороны JavaScript), а затем переборе, как это:

For Each map In MapsTable 
{ 
var marker1 = new GMarker(new GLatLng(<%=coordinates%>)); 
var html1="<%=maptitle%><br/>" + "<%=text%>"; 
map.addOverlay(marker1); 
marker.openInfoWindowHtml(html1); 
} 

Я знаю, что это слишком много, чтобы спросить, так что помощь будет глубоко признателен ...

+0

Что выход <% = координаты%> выглядеть? –

+0

Его строка, что-то вроде «-232832,239283» Также название и текст, но масштаб - целое число. – Maen

ответ

1

Я собираюсь использовать jQuery для упрощения, надеюсь, что все в порядке ...

Выполнять поиск базы данных на стороне сервера и испускать данные в HTML. Вы должны смотреть, чтобы произвести что-то вроде этого:

<div id="maps-table"> 
    <div class="map-entry"> 
    <span class="map-title">Title 1</span> 
    <span class="map-text">Text 1</span> 
    <span class="map-coordinates">Coordinates 1</span> 
    </div> 
    <div class="map-entry"> 
    <span class="map-title">Title 2</span> 
    <span class="map-text">Text 2</span> 
    <span class="map-coordinates">Coordinates 2</span> 
    </div> 
    ... 
</div> 

Если вы используете что-то вроде ASP.NET вы можете использовать жерех: Repeater.

После того, как вы данные отображаются в вашем HTML, вы можете запросить и итерацию над ним:

$('#maps-table .map-entry').each(function() { 

    var title = $(this).find('.map-title').text(); 
    var text = $(this).find('.map-text').text(); 
    var coordinates = $(this).find('.map-coordinates').text(); 

    // Add map markers here, eg: 

    var marker = new GMarker(new GLatLng(coordinates)); 
    var html = title + "<br/>" + text; 

    map.addOverlay(marker); 
    marker.openInfoWindowHtml(html); 

});