OneDrive Developer Center (redirect)

Looking for the Live SDK?

OneDrive logo

The Live SDK 5.6 is now available

Find it on the OneDrive Dev Center, the new place to find samples, documentation, and other resources for integrating OneDrive into your app.
Choose your download

If you're using previous versions of the Live SDK, the Live SDK 5.5 reference is still available.

 locked
Read data from MySQL ?

    Question

  • Hi

    Is it possible to read map pins [ lat & lng ] from a MySQL database ?

    So that I can run tho the database pulling all the PIN's and plot them on my map?

    Tried several things, but keep getting errors, if someone has an example of code I could look at, this would be great.

    Many thanks.

    My Code so far is this...

    [code]

    <?php

    // get some initial data from databse

    ?>

    <html>
    <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
          .titleStyle
          {
             font-family:Verdana;
             font-size:12pt;
             font-weight:bold;
          }
          .iconStyle
          {
             position:relative;
             top:-15px;
          }
          .detailsStyle
          {
             font-family:Verdana;
             font-size:10pt;
             font-weight:normal;
             text-align:left;
          }
          </style>

    <script src="http://dev.virtualearth.net/mapcontrol/v4/mapcontrol.js"></script>
    <script>
             var ffv = 0;
             var ffn = "Firefox/";
             var ffp = navigator.userAgent.indexOf(ffn);
             if (ffp != -1) ffv = parseFloat(navigator.userAgent.substring(ffp + ffn.length));
             // If we're using Firefox 1.5 or above override the Virtual Earth drawing functions to use SVG
             if (ffv >= 1.5) {
               Msn.Drawing.Graphic.CreateGraphic=function(f,b) { return new Msn.Drawing.SVGGraphic(f,b) }
              }
    </script>
    <script>
          var map = null;
          var pinID = 1;

          function GetMap()
          {
             map = new VEMap('myMap');
             map.LoadMap();
             map.SetCenterAndZoom(new VELatLong(<?=$getlat?>, <?=$getlon?>), 5);

             }

                      function AddPin(lat1,lon1)
                {
                   var pin = new VEPushpin(
                      pinID,
                      new VELatLong(lat1, lon1),
                      '/images/msn/car_icon.gif',
                      'Kathmandu',
                      '<img src="./img/Pict92.jpg"><br>'+
                         'One of the many rainy days we had in Kathmandu. '+
                         'I guess that\'s what you get for traveling during monsoon season.',
                      'iconStyle',
                      'titleSytle',
                      'detailsStyle'
                   );
                   map.AddPushpin(pin);
                   pinID++;
             }


    <?php

    // loop thro the query and pass lat & lng to Add Pin() function

    while($row = mysql_fetch_array($result))
    {

    $lat1 = $row['L_lat'];
    $lon1 = $row['L_lon'];
    ?>

    AddPin(<?php echo $lat1; ?>,<?php echo $lon1; ?>);
          <?php
    }

    ?>
    </script>
    </head>
    <body onload="GetMap();">

    <div id='myMap' style="position:relative; width:100%; height:75%;"></div>
    </body>
    </html>

    [/code]

    It displays the map, but reports this error....

    document.body has no properties

    Wednesday, March 14, 2007 2:35 PM

Answers

  • Not a PHPer but if you where tring to insert the AddPins calls should they not be part of the GetMap function that is called when the document body is loaded?

    I think you did a page view source the html generated would show the javascript is in the wrong place.

    You want some thing like this output yeah?

     

          function GetMap()
          {
             map = new VEMap('myMap');
             map.LoadMap();
             map.SetCenterAndZoom(new VELatLong(50, 60), 5);

    Addpin(20,30);

    AddPin(30,40);

    AddPin(50,60);

             }

                     function AddPin(lat1,lon1)
                {
                   var pin = new VEPushpin(
                      pinID,
                      new VELatLong(lat1, lon1),
                      '/images/msn/car_icon.gif',
                      'Kathmandu',
                      '<img src="./img/Pict92.jpg"><br>'+
                         'One of the many rainy days we had in Kathmandu. '+
                         'I guess that\'s what you get for traveling during monsoon season.',
                      'iconStyle',
                      'titleSytle',
                      'detailsStyle'
                   );
                   map.AddPushpin(pin);
                   pinID++;
             }

    John.

    Wednesday, March 14, 2007 9:59 PM
    Moderator

All replies

  • Not a PHPer but if you where tring to insert the AddPins calls should they not be part of the GetMap function that is called when the document body is loaded?

    I think you did a page view source the html generated would show the javascript is in the wrong place.

    You want some thing like this output yeah?

     

          function GetMap()
          {
             map = new VEMap('myMap');
             map.LoadMap();
             map.SetCenterAndZoom(new VELatLong(50, 60), 5);

    Addpin(20,30);

    AddPin(30,40);

    AddPin(50,60);

             }

                     function AddPin(lat1,lon1)
                {
                   var pin = new VEPushpin(
                      pinID,
                      new VELatLong(lat1, lon1),
                      '/images/msn/car_icon.gif',
                      'Kathmandu',
                      '<img src="./img/Pict92.jpg"><br>'+
                         'One of the many rainy days we had in Kathmandu. '+
                         'I guess that\'s what you get for traveling during monsoon season.',
                      'iconStyle',
                      'titleSytle',
                      'detailsStyle'
                   );
                   map.AddPushpin(pin);
                   pinID++;
             }

    John.

    Wednesday, March 14, 2007 9:59 PM
    Moderator
  • Hi,

     

    I was trying with Postgre and write this function to convert Postgres-MySQL Polygon to Array poligon for VE, this is the code:

     

    function convertoVE(punts){
       var i=0;
       var a2=0;
       var array = new Array();
       var caracter = "";
       var lat;
       var lon;
       var apuntador=1;
       
       for(i;i<=punts.length;i++){
        if((punts.charAt(i)!=")")&&(punts.charAt(i) != ",")){ 
        if(punts.charAt(i) == "("){
         i=i+1;
         if(punts.charAt(i) == "("){
          i=i+1;
         }
          
         for(i;punts.charAt(i) != ",";i++){
          caracter = caracter+punts.charAt(i); 
          }
            lat = caracter;
            //alert("lat"+lat);
            caracter = "";
            i++;
         
         for(i;punts.charAt(i) != ")";i++){
          caracter = caracter+punts.charAt(i); 
          }   
            lon = caracter;
            //alert("lon"+lon);
            caracter = "";
            
            array[a2] = new VELatLong(lat, lon);
            //alert(array[a2]);
            a2++;
            }
         }
        
        }
        return(array);
        }

     

    if you need only change a point delete line an change:  

    from:

    var array = new Array();
     to:

    var punto;

     

    from:

    array[a2] = new VELatLong(lat, lon);

    a2++;

    to:

    punto = new VELatLong(lat, lon);

     

    from:

    return(array);

    to:

    return(punto);

     

    I used and looks good.

     

    Tuesday, April 10, 2007 7:30 PM
OneDrive Developer Center (redirect)

Looking for the Live SDK?

OneDrive logo

The Live SDK 5.6 is now available

Find it on the OneDrive Dev Center, the new place to find samples, documentation, and other resources for integrating OneDrive into your app.
Choose your download

If you're using previous versions of the Live SDK, the Live SDK 5.5 reference is still available.