• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

google maps api

burns

Neues Mitglied
hi leute,

bin gerade dabei google maps api auf meiner seite zu "installieren" funkt auch ganz gut in einer test-page, wenn ich's aber in meine page integrieren will taucht folgendes problem auf:
die karte wird nur dargestellt wenn ich den <!Doctype .......> tag komplett entferne, hab schon mehrere verschiedene tag's versucht und dr. google spunkt nichts anstäniges aus.
hab mir andere seiten auf denen das api läuft angesehen, bei denen funkt der <!Doctype .......> tag, wieso also nicht bei mir? liegt am server? ich bin ratlos!

Danke!
 
Werbung:
Hallo,

doctype muss sein.
ohne link ist ganz schlecht zu helfen.

nur am rand, ich geh doch mal aus das API V3 genommen hast.
am server liegt das nicht, eher am drum rum auf der Seite.

Cheffchen
 
danke, für die antwort

ich weiß dass doctype sein muss, darum brauch ich ja auch ein lösung.
api v3!
link hab ich keinen weil das ganz biss jetzt nur auf meinem server läuft.
aber auch in einer absoluten mini-variante (also nur karte aufrufen) muss ich doctype entfernen damit die karte angezeigt wird!

so funkts:
<?php
session_start();
$delay = 0;
$base_url = "http://maps.google.com/maps/geo?output=xml";
// Iterate through the rows, geocoding each address
$address = $_Session['add'];
$request_url = $base_url . "&q=" . urlencode($address);
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->Response->Status->code;
if (strcmp($status, "200") == 0) {
// Successful geocode
$geocode_pending = false;
$coordinates = $xml->Response->Placemark->Point->coordinates;
$coordinatesSplit = explode(",", $coordinates);
// Format: Longitude, Latitude, Altitude
$lat = $coordinatesSplit[1];
$lng = $coordinatesSplit[0];
// sent geocodes too fast
$delay += 100000;
} else {
// failure to geocode
$geocode_pending = false;
echo "Address " . $address . " failed to geocoded. ";
echo "Received status " . $status . "\n";
}
usleep($delay);
?>

<html>
<head>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
window.onload = function() {
var latlng = new google.maps.LatLng(<?php echo $lat.",".$lng ?>);
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var marker = new google.maps.Marker({
position: latlng,
title:"Hello World!"
});
marker.setMap(map);
}

</script>
</head>
<body>
<div id="map_canvas" style="width:400; height:300"></div>
</body>
</html>


so funkts nicht:

<?php
session_start();
$delay = 0;
$base_url = "http://maps.google.com/maps/geo?output=xml";
// Iterate through the rows, geocoding each address
$address = $_Session['add'];
$request_url = $base_url . "&q=" . urlencode($address);
$xml = simplexml_load_file($request_url) or die("url not loading");
$status = $xml->Response->Status->code;
if (strcmp($status, "200") == 0) {
// Successful geocode
$geocode_pending = false;
$coordinates = $xml->Response->Placemark->Point->coordinates;
$coordinatesSplit = explode(",", $coordinates);
// Format: Longitude, Latitude, Altitude
$lat = $coordinatesSplit[1];
$lng = $coordinatesSplit[0];
// sent geocodes too fast
$delay += 100000;
} else {
// failure to geocode
$geocode_pending = false;
echo "Address " . $address . " failed to geocoded. ";
echo "Received status " . $status . "\n";
}
usleep($delay);
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="https://maps.google.com/maps/api/js?sensor=false">
</script>
<script type="text/javascript">
window.onload = function() {
var latlng = new google.maps.LatLng(<?php echo $lat.",".$lng ?>);
var myOptions = {
zoom: 15,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var marker = new google.maps.Marker({
position: latlng,
title:"Hello World!"
});
marker.setMap(map);
}

</script>
</head>
<body>
<div id="map_canvas" style="width:400; height:300"></div>
</body>
</html>
 
Werbung:
- Ist der Doctype eventuell doppelt vorhanden (Quelltext)?
- Gibt es PHP Fehler (Error Reporting)?
- Gibt es JavaScript Fehler (Konsole)?
 
nein!
nein!
nein!

der einzige "Fehler" ist dass die map nicht angezeit wird -> einfach so, ohne Meldung!
 
Klingt irgendwie nicht logisch, aber es scheint da tatsächlich Probleme zu geben.

Suche mal nach: google maps api doctype problem.
 
Werbung:
hab ich schon, kommt nicht wirklich was raus.

es genügt außerdem wenn <!DOCTYPE> schreibe es muss garnicht der ganze tag sein.

habs auch auf IE und FF getestet, immer das gleiche!
 
habs gelöst,

da problem war <div id="map_canvas" style="width:400; height:300"></div>

mit <div id="map_canvas" style="width:400px; height:300px"></div> gehts.
 
es genügt außerdem wenn <!DOCTYPE> schreibe es muss garnicht der ganze tag sein.


Nein tut es nicht. Wenn man den HTML5 doctype verwenden will schreibt man < ! DOCTYPE html>
Nur < ! DOCTYPE> ist schlichtweg kein gültiger doctype.
W3C QA - Recommended list of Doctype declarations you can use in your Web document

da problem war <div id="map_canvas" style="width:400; height:300"></div>

mit <div id="map_canvas" style="width:400px; height:300px"></div> gehts.


Weil obiges kein gültiges CSS ist. Height erwartet eine Einheit. Du hattest also keine Höhe (bzw. eine Höhe von 0) weshalb deine Karte nicht angezeigt wurde.

Mit dem Firebug Plugin oder anderen Entwickler-Tools kannst u solche Dinige ganz einfach debuggen. Rechts wird das CSS des aktuell ausgewählten DOM Elements angezeigt. Wenn du ungültige Werte hast wirst du von Firebug darauf hingewiesen.
 
Werbung:
Zurück
Oben