グーグルマップ v3で複数の住所からピンを立てたい
現在、googlemap v3で複数の住所からそれぞれのピンを立てたいと
考えております。
下記コードにて実行しましたが、住所とウィンドーの中身が
ずれて表示されてしまい困っております。
例)東京にピンが立っているがウィンドーの中身が広島など
どなたかご教授ください。
よろしくお願いいたします。
-----js------
var data = new Array();
data.push({position:'東京都',content:'東京都'});
data.push({position:'広島県',content:'<strong>広島県</strong><p>aaaaaaaaaa</p>'});
data.push({position:'沖縄',content:'<strong>沖縄</strong><p>aaaaaaaaaa</p>'});
data.push({position:'北海道',content:'<strong>北海道</strong><p>aaaaaaaaaa</p>'});
var geocoder = new google.maps.Geocoder(),icon = '';
function gmap(address,path){
icon = path;
geocoder.geocode({'address':address}, function(result,status){
if(status == google.maps.GeocoderStatus.OK){
var latlng = result[0].geometry.location;
var mapdiv = document.getElementById('map');
var myOptions = {
zoom:10,
center:new google.maps.LatLng(latlng.lat(),latlng.lng()),
mapTypeId:google.maps.MapTypeId.ROADMAP,
scaleControl:true,
mapTypeControl:true
};
var map = new google.maps.Map(mapdiv,myOptions);
moreGmap(map);
}
});
}
var j = 0;
function moreGmap(map){
var image = new google.maps.MarkerImage(icon,new google.maps.Size(32,50),new google.maps.Point(0,0),new google.maps.Point(16,50));
for(var i in data){
geocoder.geocode({'address':data[i].position},function(result,status){
if(status == google.maps.GeocoderStatus.OK){
var latlng = result[0].geometry.location;
var addlatlng = new google.maps.LatLng(latlng.lat(),latlng.lng());
var marker = new google.maps.Marker({
position:addlatlng,
map:map,
icon:image,
title:data[j].position
});
var cont = data[j].content;
var infoWin = new google.maps.InfoWindow({
content:cont,
size:new google.maps.Size(50,50)
});
infoWin.open(map,marker);
google.maps.event.addListener(marker,'click',function(){
infoWin.open(map,marker);
});
j++;
}
});
}
j = 0;
}
お礼
ご指摘頂きこちらで再度色々勉強してみました。 コードの意味は全くと言っていいほどわからないのですが、試行錯誤の結果、下記のようなコードで希望通りの結果を得ることが出来ました。ありがとうございました。 function setCalLab(){ var thds = GmailApp.getInboxThreads(); var calName = "本日の予定"; var cals = CalendarApp.getCalendarsByName(calName); for(var n in thds){ var thd = thds[n]; var subject = thd.getFirstMessageSubject(); var msgs = thd.getMessages(); if (subject.indexOf("本日の予定",0) != -1){ //label.addToThread(thd); //for(var m in msgs){ var msg = msgs[0]; var body = msg.getPlainBody(); var str = msg.getSubject(); var res = str.match(/\d+/g); var cal = cals[0]; var d1 = new Date(); var yy = d1.getFullYear(); cal.createEvent(str,new Date(yy,res[0]-1,res[1],res[2],res[3]),new Date(yy,res[0]-1,res[1],res[4],res[5]),{description:body}); //} GmailApp.moveThreadToArchive(thd); } } }