Creating a kml file from a mysql database with php

后端 未结 3 1646
花落未央
花落未央 2021-01-18 08:02

I hope there is a php genius here somewhere who can help me with this. I have a database table called baeir, it has the following fields:

b_id (primary k

3条回答
  •  别那么骄傲
    2021-01-18 08:54

    Try this:

    createElementNS('http://earth.google.com/kml/2.1', 'kml');
    $parNode = $dom->appendChild($node);
    
    // Creates a KML Document element and append it to the KML element.
    $dnode = $dom->createElement('Document');
    $docNode = $parNode->appendChild($dnode);
    
    
    // Creates the two Style elements, one for restaurant and one for bar, and append the elements to the Document element.
    $restStyleNode = $dom->createElement('Style');
    $restStyleNode->setAttribute('id', 'restaurantStyle');
    $restIconstyleNode = $dom->createElement('IconStyle');
    $restIconstyleNode->setAttribute('id', 'restaurantIcon');
    $restIconNode = $dom->createElement('Icon');
    $restHref = $dom->createElement('href', 'http://maps.google.com/mapfiles/kml/pal2/icon63.png');
    $restIconNode->appendChild($restHref);
    $restIconstyleNode->appendChild($restIconNode);
    $restStyleNode->appendChild($restIconstyleNode);
    $docNode->appendChild($restStyleNode);
    
    $barStyleNode = $dom->createElement('Style');
    $barStyleNode->setAttribute('id', 'barStyle');
    $barIconstyleNode = $dom->createElement('IconStyle');
    $barIconstyleNode->setAttribute('id', 'barIcon');
    $barIconNode = $dom->createElement('Icon');
    $barHref = $dom->createElement('href', 'http://maps.google.com/mapfiles/kml/pal2/icon27.png');
    $barIconNode->appendChild($barHref);
    $barIconstyleNode->appendChild($barIconNode);
    $barStyleNode->appendChild($barIconstyleNode);
    $docNode->appendChild($barStyleNode);
    
    // Iterates through the MySQL results, creating one Placemark for each row.
    while ($row = @mysql_fetch_assoc($result))
    {
      // Creates a Placemark and append it to the Document.
    
      $node = $dom->createElement('Placemark');
      $placeNode = $docNode->appendChild($node);
    
      // Creates an id attribute and assign it the value of id column.
      $placeNode->setAttribute('id', 'placemark' . $row['b_id ']);
    
      // Create name, and description elements and assigns them the values of the name and address columns from the results.
      $nameNode = $dom->createElement('name',xmlEntities(htmlentities($row['b_name'])));
      $placeNode->appendChild($nameNode);
      $descNode = $dom->createElement('description', $row['comments']);
      $placeNode->appendChild($descNode);
      //$styleUrl = $dom->createElement('styleUrl', '#' . $row['type'] . 'Style');
      //$placeNode->appendChild($styleUrl);
    
      // Creates a Point element.
      $pointNode = $dom->createElement('Point');
      $placeNode->appendChild($pointNode);
    
      // Creates a coordinates element and gives it the value of the lng and lat columns from the results.
      $coorStr = $row['lng'] . ','  . $row['lat'];
      $coorNode = $dom->createElement('coordinates', $coorStr);
      $pointNode->appendChild($coorNode);
    }
    
    
    $kmlOutput = $dom->saveXML();
    while (@ob_end_clean());
    header('content-type:text/xml;');
    echo $kmlOutput;
    
    ?>
    

提交回复
热议问题