Я пытаюсь использовать Google Maps API в шаблоне ColdFusion, который является контейнером типа cflayoutarea. Однако карта просто не отображается:
<cfif isdefined("url.lat")>
<cfset lat="#url.lat#">
<cfset lng="#url.lng#">
</cfif>
<head>
<script src= "http://maps.google.com/maps?file=api&v=2&key=xxxx" type="text/javascript">
function getMap(lat,lng){
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
var pt= new GLatLng(lat,lng);
map.setCenter(pt, 18,G_HYBRID_MAP);
map.addOverlay(new GMarker(pt));
}
}
</script>
</head>
<cfoutput>
<body onLoad="getMap(#lat#,#lng#)" onUnload="GUnload()">
Map:<br>
<div id="map_canvas" style="width: 500px; height: 300px"/>
</body>
</cfoutput>"
где lat и lng - координаты в градусном и десятичном формате. Я проследил до строки, где GBrowserIsCompatible () почему-то никогда не возвращает TRUE и, следовательно, никаких дальнейших действий не предпринималось.
Если открыть отдельно, шаблон работает отлично, но только не при открытии в виде контейнера cflayoutarea. У кого-нибудь есть опыт в этом? Любые предложения приветствуются.
Lawrence
Использование CF 8.01, Dreamweaver 8
Попробовал ваше предложение, но все еще не работает; карта показывает только когда код вызова встроен. Однако, если эта страница контейнера была вызвана из другого div, карта снова исчезает.
Я подозреваю, что эта проблема связана с контейнером cflayout; Я посмотрю документацию Extjs, чтобы выяснить, есть ли какие-либо выводы к решению.