Google maps api 3 谷歌地图方向:功能定义不正确

Google maps api 3 谷歌地图方向:功能定义不正确,google-maps-api-3,Google Maps Api 3,我在将v2中已经工作的方向脚本翻译为v3时遇到问题。 错误是tohere/fromhere函数未正确执行 第一次单击后,标记将正确显示,信息窗口将打开。 当我点击“tohere”或“fromhere”时,它抛出错误“tohere未定义” 有什么提示我做错了什么吗 jQuery(document).ready(function () { if (jQuery('#map_canvas').length) { initActive(); } function initialize(lat, l

我在将v2中已经工作的方向脚本翻译为v3时遇到问题。 错误是tohere/fromhere函数未正确执行

第一次单击后,标记将正确显示,信息窗口将打开。 当我点击“tohere”或“fromhere”时,它抛出错误“tohere未定义”

有什么提示我做错了什么吗

jQuery(document).ready(function () {

if (jQuery('#map_canvas').length) {
initActive();
}


function initialize(lat, long,html) {
var latid = lat;
var longit = long;
var myLatlng = new google.maps.LatLng(latid, longit);
//var myLatlng = new google.maps.LatLng(51.512098,-0.137692);
var myOptions = {
    zoom:17,
    navigationControl:true,
    mapTypeControl:false,
    scaleControl:false,
    scrollwheel:false,
    disableDefaultUI:true,
    disableDoubleClickZoom:true,
    center:myLatlng,
    mapTypeId:google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var styles = [
    {
        stylers:[

            { saturation:-100 }
        ]
    }
];

map.setOptions({styles:styles});

var myLatLng = new google.maps.LatLng(latid, longit);
var marker = createMarker(map,myLatLng,html);
}

function initActive() {
var flat = jQuery('#map_canvas').data('coord-lat');
var flong = jQuery('#map_canvas').data('coord-lon');
var title = jQuery('#map_canvas').data('content');
initialize(flat, flong,title);
}   


function createMarker(map, latlng,html) {
var marker = new google.maps.Marker({
    position: latlng,
    map: map
    });

var infowindow = new google.maps.InfoWindow({ size: new google.maps.Size(150,50)});
marker.setIcon("mapIcons/marker_red.png");




    var gmarkers = []; 
    var to_htmls = [];
    var from_htmls = [];
    var htmls = [];
    var i = gmarkers.length;

    // The info window version with the "to here" form open
    to_htmls[i] = html + '<br>Directions: <b>To here<\/b> - <a href="javascript:fromhere(' + i + ')">From here<\/a>' +
       '<br>Start address:<form action="http://maps.google.com/maps" method="get" target="_blank">' +
       '<input type="text" SIZE=40 MAXLENGTH=40 name="saddr" id="saddr" value="" /><br>' +
       '<INPUT value="Get Directions" TYPE="SUBMIT">' +
       '<input type="hidden" name="daddr" value="' + latlng.lat() + ',' + latlng.lng() + 
              // "(" + name + ")" + 
       '"/>';
    // The info window version with the "to here" form open
    from_htmls[i] = html + '<br>Directions: <a href="javascript:tohere(' + i + ')">To here<\/a> - <b>From here<\/b>' +
       '<br>End address:<form action="http://maps.google.com/maps" method="get"" target="_blank">' +
       '<input type="text" SIZE=40 MAXLENGTH=40 name="daddr" id="daddr" value="" /><br>' +
       '<INPUT value="Get Directions" TYPE="SUBMIT">' +
       '<input type="hidden" name="saddr" value="' + latlng.lat() + ',' + latlng.lng() +
              // "(" + name + ")" + 
       '"/>';
    // The inactive version of the direction info
    html = html + '<br>Directions: <a href="javascript:tohere('+i+')">To here<\/a> - <a href="javascript:fromhere('+i+')">From here<\/a>';
    var contentString = html;

    google.maps.event.addListener(marker, 'click', function() {
    infowindow.setContent(contentString); 
    infowindow.open(map,marker);
    });

    gmarkers.push(marker);
    htmls[i] = html;
}


// functions that open the directions forms
function tohere(i) {
 infowindow.setContent(to_htmls[i]); 
}
function fromhere(i) {
  infowindow.setContent(from_htmls[i]); 
}


}); //documentready close
jQuery(文档).ready(函数(){
if(jQuery('#map_canvas').length){
initActive();
}
函数初始化(lat、long、html){
var latid=lat;
var longit=长;
var mylatng=new google.maps.LatLng(latid,longit);
//var mylatng=new google.maps.LatLng(51.512098,-0.137692);
变量myOptions={
缩放:17,
导航控制:对,
mapTypeControl:false,
scaleControl:false,
滚轮:错误,
disableDefaultUI:true,
禁用双击缩放:真,
中心:myLatlng,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(document.getElementById(“map_canvas”),myOptions);
变量样式=[
{
样式:[
{饱和度:-100}
]
}
];
setOptions({styles:styles});
var mylatng=new google.maps.LatLng(latid,longit);
var marker=createMarker(映射、myLatLng、html);
}
函数initActive(){
var flat=jQuery('map_canvas')。数据('coord-lat');
var flong=jQuery('map_canvas')。数据('coord-lon');
var title=jQuery('#map_canvas')。数据('content');
初始化(扁平、扁平、标题);
}   
函数createMarker(地图、板条、html){
var marker=new google.maps.marker({
位置:latlng,
地图:地图
});
var infowindow=new google.maps.infowindow({size:new google.maps.size(150,50)});
setIcon(“mapIcons/marker_red.png”);
var gmarkers=[];
var to_htmls=[];
来自_htmls的var=[];
var htmls=[];
var i=gmarkers.length;
//打开“至此处”表单的信息窗口版本
to_htmls[i]=html+'
说明:到这里-从这里'+ “
起始地址:”+ “
”+ '' + ''; //打开“至此处”表单的信息窗口版本 from_htmls[i]=html+'
方向:到这里-从这里'+

结束地址:您的所有代码都是jQuery(document).ready函数的本地代码,因此在运行HTML单击处理程序的全局上下文中不可用。请将函数声明移到该函数之外

看起来你的v2代码来自Mike Williams的v2教程。我将其移植到v3,可能会对你有所帮助