@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

IE6とfirefox1.5での処理の違い

1
投稿者投稿内容
Masumi
会議室デビュー日: 2006/10/12
投稿数: 11
投稿日時: 2009-03-06 22:54
googleMapsApiで複数の住所から経度、緯度を算出して、それをマーカー表示、でマーカーをすべて表示できるズームで表示というスクリプトをいろんなところ参考に作ってはみたのですが、firefoxではうまくいくのにIE6では、マーカーの位置を取得する前にMapが表示されてしまいます。
下記のコードなのですが、何かいい方法はありますか?
(まだど素人です)

<!-- saved from url=(0022)http://internet.e-mail -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>GoogleMapsAPIによるジオコーディングのサンプル</title>
<script src="http://maps.google.com/maps?file=api&v=2.55&key=ABQIAAAAGC9D4CFb4VMVrQD1e1-4fRTXtUynXuM2xOtDcwmfq_eki44wzhT7CVjcbXRYQh3-nGC51nk2lDhNXg" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map;
var center = new GLatLng(37.2, 135.;
var cupoint = center;
var baseIcon;
var mousePoint;
var List = {};
var PopList = {};
Ptl = {};
addtext = {};
geocoder = new GClientGeocoder();
// point取得処理

addtext[0] = "兵庫県神戸市";
addtext[1] = "滋賀県守山市";
addtext[2] = "愛知県豊田市";
addtext[3] = "山梨県甲府市";




function Listength(){
var len=0;
for( var index in List ){
len++;
}
return len;
}

// Newファンクション
function Getaddress(addnam , j){
if (geocoder) {
geocoder.getLatLng(
addnam,
function(point) {
if (!point) {
alert(addnam +
" \u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002");
} else {
Ptl[j] = point;
}
}
);
}
}
// end

//

//

var Letter;
Letter = {
index : -1,
get : function(){
var i = ( Letter.index >= 0 ) ? Letter.index : 0;
return String.fromCharCode("A".charCodeAt(0)+i);
},
getNext : function(){
Letter.index++;
return Letter.get();
}
}

var Chizu = {};
Chizu = {
load : function(){
var self = Chizu;
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map"));
map.addControl( new GLargeMapControl() );
map.addControl( new GScaleControl() );
map.addControl( new GMapTypeControl() );
map.addControl( new GOverviewMapControl() );
new GKeyboardHandler(map);
map.setCenter(center, 5);

baseIcon = new GIcon();
baseIcon.shadow = "img/icons/shadow.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
for (i=0; i<=3; i++ ) {Getaddress(addtext[i] , i); }

//この部分にアラートを仕掛けるとIEでも表示される
alert("GGGGGGG");

List[0] = self.createMarker( 0, Ptl[0],addtext[0] );
List[1] = self.createMarker( 1, Ptl[1],addtext[1] );
List[2] = self.createMarker( 2, Ptl[2],addtext[2] );
List[3] = self.createMarker( 3, Ptl[3],addtext[3] );
List[4] = self.createMarker( 4, new GLatLng( 35.668497289125376 , 139.75984811782837 ),"TEST4" );
self.initZoom();

}
},
createMarker : function( num, point, PopUpText ) {
var letter = Letter.getNext();
var ic = new GIcon(baseIcon);
ic.image = "img/icons/icon"+letter+".png";
var marker = new GMarker(point);
GEvent.addListener(marker, "click", function() {
marker.openInfoWindowHtml(PopUpText);});
map.addOverlay( marker );
return marker;
},
initZoom : function(){
var gb;
var first = 1;
for( var index in List ){
var marker = List[index];
if( first ){
gb = new GLatLngBounds( marker.getPoint(), marker.getPoint() );
first = 0;
}else{
var point = marker.getPoint();
gb.extend( point );
}
}
map.setCenter( gb.getCenter(), map.getBoundsZoomLevel( gb ) );
}
};


function $(id) {
return document.getElementById(id);
}


//]]>
</script>
<style type="text/css">
<!--
.style1 {font-size: small}
.style2 {color: #FF0000}
.style4 {color: #000000}
brockquote {
background-color: #CCFFFF;
margin: 2px;
padding: 2px;
}
-->
</style>
</head>
<body onload="Chizu.load()" onunload="GUnload()">
<table width="100%" border="1" cellspacing="0" cellpadding="2"><tr>
<td valign="top">

<div id="map" style="width: 500px; height: 300px"></div>
</td>


</body>
</html>

よろしくお願いします
1

スキルアップ/キャリアアップ(JOB@IT)