Я пытаюсь использовать API Карт Google в шаблоне ColdFusion, который является контейнером cflayoutarea типа границы. Однако карта просто не показывает вверх:Использование Google Maps в ColdFusion
<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 являются координаты в формате degree.decimal. Я проследил до строки, где GBrowserIsCompatible() каким-то образом никогда не возвращает TRUE, и поэтому никаких дальнейших действий не было предпринято.
При открытии отдельно шаблон работает отлично, но просто не открывается, как контейнер cflayoutarea. У кого-нибудь есть опыт в этом? Любые предложения очень ценятся.
Лоуренс
Использование CF 8.01, Dreamweaver 8
Пробовал Ваше предложение, но по-прежнему не работает; карта отображается только тогда, когда код вызова является встроенным. Однако, если эта страница контейнера была вызвана из еще одного div, карта снова исчезнет.
Я подозреваю, что эта проблема связана с контейнером cflayout; Я просмотрю документ Extjs, чтобы узнать, есть ли какие-либо решения для решения.
Ну получается, что проблема не имеет ничего общего с JS, но странность с ColdFusion.navigate; если вы используете ColdFusion.navigate для указания на .cfm, который вызывает карту google, карта не будет отображаться (но если вы вызовете файл карты, он отлично работает.) – lawrencem49 2009-02-25 08:12:11