- - PR -
IE6とfirefox1.5での処理の違い
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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