используя классический asp (устаревший, я знаю, но это начало), как построить несколько маркеров в базе данных gmap и msaccess

У меня есть этот код, который я переработал из Интернета, чтобы извлечь данные lng lat из базы данных доступа ms и нанести на карту Google. Карта отображается с их координатами, но маркеры не отображаются. код, который я использую, показан ниже. Еще раз спасибо

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org
      /TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org
      /1999/xhtml">           
      <head> 

      <script src="http://maps.google.com
      /maps/apijs?key=AIzaSyCnkGeTzGO1_5_mCfAJZkQmG6RZOkyjGzE& sensor=false"
       type="text/javascript">

       </script>

       </head>   <body> <div id="map" style="width: 750px; height: 550px"></div> 

      <% @ Language="VBScript" %> 
      <% 
      Dim count, DataConn, rst, cmdTemp 
    Dim lng, lat 
    Dim countryArr(), songTitleArr(), songFileNameArr() 
    Dim ptLatArr(), ptLngArr() 
    Dim currLng, currLat 
    Dim theCtr  
     reDim countryArr(100) 
     reDim songTitleArr(100) 
      reDim songFileNameArr(100) 
      reDim ptLatArr(100) 
      reDim ptLngArr(100)  
     lat=-14.7793992 
     lng= 121.0236486  
    count = 0  
    Set DataConn = Server.CreateObject("ADODB.Connection")
    Dataconn.Provider="Microsoft.Jet.OLEDB.4.0" 
    DataConn.Open "D:/Webpage/data/philapig_b_V10.mdb"   
    Set cmdTemp = Server.CreateObject("ADODB.Command") 
    Set rst = Server.CreateObject("ADODB.Recordset")

    cmdTemp.CommandText = "SELECT Farmer_No, Surname, Firstname, Category, YCoordinate,
    XCoordinate, Type FROM FarmersDataWeb" 
    cmdTemp.CommandType = 1 
    Set cmdTemp.ActiveConnection = DataConn  
    rst.Open cmdTemp, , 1, 3  
    Do While NOT rst.EOF         
    countryArr(count)= rst("Farmer_No")
   songTitleArr(count)= rst("Category")        
   songFileNameArr(count)= rst("Type") 
   ptLatArr(count)= rst("XCoordinate")        
   ptLngArr(count)= rst("YCoordinate")       
   rst.MoveNext()        
   count = count + 1 
   loop  
   rst.Close 
    Set rst = Nothing DataConn.Close
    set DataConn = nothing %>  
    <script type="text/javascript" language="javascript"> 
    var map = new google.maps.Map(document.getElementById("map"),{  
    zoom: 10,      
    center: new google.maps.LatLng(14.7793992,121.0236486),     
     mapTypeId: google.maps.MapTypeId.ROADMAP          }); 
    function createMarker(point,ctr) {         
    var theMarker = new GMarker(point);      
    var infoText= ctryArr[ctr] + "<BR>" + sTitleArr[ctr] + "<a href=" + 
    sFileNameArr[ctr] + "><BR>Listen</a>";  

    GEvent.addListener(theMarker, "click", function()  
    {theMarker.openInfoWindowHtml(infoText);});     
    return theMarker; } 

    function setMarker(ctr) {  
    var pt = new GPoint(lngArr[ctr], latArr[ctr]);   
     var marker = createMarker(pt,ctr);

     map.addOverlay(marker); }
     var ctryArr=[]; var lngArr=[]; var latArr=[]; var sTitleArr=[]; var sFileNameArr=[]; var
     j=0;          
    <% for i = 0 to count - 1 %>    
    ctryArr[j]="<%=countryArr(i)%>";  
    sTitleArr[j]="<%=songTitleArr(i)%>";  
    sFileNameArr[j]="<%=songFileNameArr(i)%>";
    lngArr[j]="<%=ptLngArr(i)%>";      
    latArr[j]="<%=ptLatArr(i)%>";   
     j++;     
    <% next %> 
    for (k=0;k<ctryArr.length;k++) {   
      setMarker(k); }              

        </script>
    </body>
    </html>

person John    schedule 30.06.2014    source источник
comment
В названии написано классический ASP, а в тегах - ASP.NET. Что он? Кроме того, если это классический ASP, вам не следует начинать с него новый проект. Вместо этого сделайте это в ASP.NET.   -  person mason    schedule 01.07.2014
comment
Часть кода JS - это Google Maps API v2 вместо v3, например GMarker, GPoint и GEvent. Они не являются кросс-совместимыми (API v2 фактически больше не работает), и вам нужно все это переписать, чтобы он был строго кодом v3. См. developers.google.com/maps/documentation/javascript/v2/v2tov3   -  person duncan    schedule 01.07.2014
comment
Спасибо, Дункан .. ошибка новичка! Я обновил код до версии V3, но он все еще не работает ... arghhh   -  person John    schedule 01.07.2014


Ответы (1)


Я изменил ваш код для работы с V3 Google Maps API. Замените часть SCRIPT следующим кодом.

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript" language="javascript"> 
        var map;

        function initializeGoogle() {
            var myOptions = {
                zoom: 10,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                disableDefaultUI: true,
                panControl: true,
                zoomControl: true,
                center: new google.maps.LatLng(14.7793992,121.0236486)
            }
            map = new google.maps.Map(document.getElementById("map"), myOptions);

            <% for i = 0 to count - 1 %> 
                createMarker(<%=ptLatArr(i)%>, <%=ptLngArr(i)%>, ctryArr[ctr] + "<BR>" + sTitleArr[ctr] + "<a href=" + sFileNameArr[ctr] + "><BR>Listen</a>");
            <% next %> 
            };

        function createMarker(lat, lon, html) {
            var newmarker = new google.maps.Marker({
                position: new google.maps.LatLng(lat, lon),
                map: map,
            title: html
            });

            newmarker['infowindow'] = new google.maps.InfoWindow({
                content: html
            });

            google.maps.event.addListener(newmarker, 'mouseover', function() {
                this['infowindow'].open(map, this);
            });
        }

        $(document).ready(function () {
            initializeGoogle();
        });

    </script>
person johna    schedule 03.07.2014