Javascript TypeError:g是未定义的Google地图API
我正在使用谷歌地图API。我的申请应按以下方式进行:Javascript TypeError:g是未定义的Google地图API,javascript,jquery,google-maps,google-maps-api-3,Javascript,Jquery,Google Maps,Google Maps Api 3,我正在使用谷歌地图API。我的申请应按以下方式进行: 用户单击谷歌地图,表单将在信息窗口中打开 单击“下一步”时,另一个窗体应在完全相同的坐标上打开 问题就在这里,我无法在这个位置打开第二个表单,并得到以下错误 TypeError:g是未定义的源文件: 第8行 下面是我的代码&我相信问题就在这里 infowindowtwo.open(map,newmarker) var标记; var信息窗口; var-infowindwoo; 函数初始化(){ var latlng=新的google.ma
- 用户单击谷歌地图,表单将在信息窗口中打开
- 单击“下一步”时,另一个窗体应在完全相同的坐标上打开 问题就在这里,我无法在这个位置打开第二个表单,并得到以下错误
var标记;
var信息窗口;
var-infowindwoo;
函数初始化(){
var latlng=新的google.maps.latlng(37.4419,-122.1419);
变量选项={
缩放:13,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
var map=new google.maps.map(document.getElementById(“map”),选项);
var html=“”+
“姓名:”+
“地址:”+
“隐藏:”+
“类型:”+
“酒吧”+
“餐厅”+
" " +
"";
infowindow=新建google.maps.infowindow({
内容:html
});
google.maps.event.addListener(映射,“单击”,函数(事件){
//在这里做标记
marker=新的google.maps.marker({
位置:event.latLng,
地图:地图
});
google.maps.event.addListener(标记“单击”,函数(){
$(“#测试”).val(event.latLng);
信息窗口。打开(地图、标记);
});
});
}
//-------------------------------------------------------------------------
函数phasetwo()
{
警报(123);
var testp=$(“#test”).val();
警报(testp);
var htmltwo=“”+
“名称2:”+
“类型2:”+
“酒吧”+
“餐厅”+
" " +
"";
infowindowtwo=新建google.maps.InfoWindow({
内容:htmltwo
});
var newmarker=new google.maps.Marker({
职位:testp,
地图:地图,
标题:htmltwo
});
infowindow.close();
//infowindowtwo.open(map,newmarker);
警报(2);
infowindowtwo.open(map,newmarker);
警惕(3);
//marker.push(newmarker);
}
函数saveData(){
var name=escape(document.getElementById(“name”).value);
var address=escape(document.getElementById(“address”).value);
var type=document.getElementById(“type”).value;
var latlng=marker.getPosition();
var url=“phpsqlinfo\u addrow.php?name=“+name+”&address=“+address+
“&type=“+type+”&lat=“+latlng.lat()+”&lng=“+latlng.lng()”;
下载url(url、函数(数据、响应代码){
if(responseCode==200&&data.length>=1){
infowindow.close();
document.getElementById(“消息”).innerHTML=“位置已添加。”;
}
});
}
函数下载url(url,回调){
var请求=window.ActiveXObject?
新的ActiveXObject('Microsoft.XMLHTTP'):
新的XMLHttpRequest;
request.onreadystatechange=函数(){
if(request.readyState==4){
request.onreadystatechange=doNothing;
回调(request.responseText、request.status);
}
};
打开('GET',url,true);
请求发送(空);
}
函数doNothing(){}
谢谢。我在您的代码中发现一个javascript错误
InvalidValueError:setMap:不是Map的实例;并且不是StreetViewPanorama的实例,因为map
变量是initialize函数的局部变量。最简单的修复方法,使其全局化(将声明移到initialize函数之外,在函数运行时初始化):
一旦解决了这个问题,我会得到一个javascript错误:InvalidValueError:setPosition:不是LatLng或LatLngLiteral:不是对象
您对testp
有问题,它是字符串(比如“(37.46297753913022,-122.15921401977539)”,而不是LatLng
或LatLngLiteral
您可以对其进行分析以生成有效的LatLng(或LatLngLiteral):
代码片段:
var标记;
var信息窗口;
var信息窗口2;
var映射;
函数初始化(){
var latlng=新的google.maps.latlng(37.4419,-122.1419);
变量选项={
缩放:13,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=新的google.maps.map(document.getElementById(“map”),选项);
var html=“”+
“姓名:”+
“地址:”+
“隐藏:”+
“类型:”+
“酒吧”+
“餐厅”+
" " +
"";
infowindow=新建google.maps.infowindow({
内容:html
});
google.maps.event.addListener(映射,“单击”,函数(事件){
//在这里做标记
marker=新的google.maps.marker({
位置:event.latLng,
地图:地图
});
google.maps.event.addListener(标记“单击”,函数(){
$(“#测试”).val(event.latLng);
信息窗口。打开(地图、标记);
});
});
}
//-------------------------------------------------------------------------
函数phasetwo(){
//警报(123);
var testp=$(“#test”).val();
//警报(testp);
var htmltwo=“”+
“名称2:”+
“类型2:”+
“酒吧”+
“餐厅”+
" " +
"";
infowindowtwo=新建google.maps.InfoWindow({
内容:htmltwo
});
testp=testp.replace(/[{()}]/g',);
var coords=testp.split(',');
var pt=new google.maps.LatLng(coords[0],coords[1]);
var newmarker=new google.maps.Marker({
职位:pt,
地图:地图,
标题:htmltwo
});
infowindow.close();
//infowindowtwo.open(map,newmarker);
//警报(2);
信息窗口二。
<script type="text/javascript">
var marker;
var infowindow;
var infowindwotwo;
function initialize() {
var latlng = new google.maps.LatLng(37.4419, -122.1419);
var options = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
var map = new google.maps.Map(document.getElementById("map"), options);
var html = "<table>" +
"<tr><td>Name:</td> <td><input type='text' id='name'/> </td> </tr>" +
"<tr><td>Address:</td> <td><input type='text' id='address'/></td> </tr>" +
"<tr><td>hidden:</td> <td><input type='text' value='aa' id='latlong' /></td> </tr>" +
"<tr><td>Type:</td> <td><select id='type'>" +
"<option value='bar' SELECTED>bar</option>" +
"<option value='restaurant'>restaurant</option>" +
"</select> </td></tr>" +
"<tr><td></td><td><input type='button' id='btnone' value='Next' onclick='phasetwo()'/></td></tr>";
infowindow = new google.maps.InfoWindow({
content: html
});
google.maps.event.addListener(map, "click", function(event) {
//making marker here
marker = new google.maps.Marker({
position: event.latLng,
map: map
});
google.maps.event.addListener(marker, "click", function() {
$("#test").val(event.latLng);
infowindow.open(map, marker);
});
});
}
//-------------------------------------------------------------------------
function phasetwo()
{
alert(123);
var testp = $("#test").val();
alert(testp);
var htmltwo = "<table>" +
"<tr><td>Name2:</td> <td><input type='text' id='name'/> </td> </tr>" +
"<tr><td>Type2:</td> <td><select id='type'>" +
"<option value='bar' SELECTED>bar</option>" +
"<option value='restaurant'>restaurant</option>" +
"</select> </td></tr>" +
"<tr><td></td><td><input type='button' value='Save ' onclick='phasetwo()'/></td></tr>";
infowindowtwo = new google.maps.InfoWindow({
content: htmltwo
});
var newmarker = new google.maps.Marker({
position: testp,
map: map,
title: htmltwo
});
infowindow.close();
// infowindowtwo.open(map, newmarker);
alert(2);
infowindowtwo.open(map, newmarker);
alert(3);
// marker.push(newmarker);
}
function saveData() {
var name = escape(document.getElementById("name").value);
var address = escape(document.getElementById("address").value);
var type = document.getElementById("type").value;
var latlng = marker.getPosition();
var url = "phpsqlinfo_addrow.php?name=" + name + "&address=" + address +
"&type=" + type + "&lat=" + latlng.lat() + "&lng=" + latlng.lng();
downloadUrl(url, function(data, responseCode) {
if (responseCode == 200 && data.length >= 1) {
infowindow.close();
document.getElementById("message").innerHTML = "Location added.";
}
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request.responseText, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
function doNothing() {}
</script>
var map;
function initialize() {
var latlng = new google.maps.LatLng(37.4419, -122.1419);
var options = {
zoom: 13,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), options);
testp = testp.replace(/[{()}]/g, '');
var coords = testp.split(',');
var pt = new google.maps.LatLng(coords[0],coords[1]);
var newmarker = new google.maps.Marker({
position: pt,
map: map,
title: htmltwo
});