google 地图 v3 中的标记 getmap 错误
marker getmap error in google maps v3
google maps v3 中的 getmap 有问题。
我已经使用 var myMarker = [];
对函数外部的 myMarker 进行了贴标,但仍然出现此错误:Uncaught TypeError: undefined is not a function.
问题是当我调用函数 Locatieknop 时。
有人可以帮助我吗?谢谢!
function MijnLocatie() {
displayLocation = function(position) {
myMarker = 0,
// Container voor de latlon locaties
var myLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
if (!myMarker) {
// GPS icoon
var image = new google.maps.MarkerImage(
'images/bluedot_retina.png',
null,
null,
new google.maps.Point(8, 8),
new google.maps.Size(17, 17)
);
// Nieuwe marker aanmaken
myMarker = new google.maps.Marker({
flat: true,
icon: image,
map: live.map,
optimized: false,
position: myLatLng,
title: 'Mijn locatie',
visible: true
});
// Markers updaten
} else {
myMarker.setPosition(myLatLng);
}
},
useragent = navigator.userAgent;
// IPhone en Android ondersteuning
if (useragent.indexOf('iPhone') !== -1 || useragent.indexOf('Android') !== -1) {
navigator.geolocation.watchPosition(
displayLocation,
handleError, {
enableHighAccuracy: true,
maximumAge: 30000,
timeout: 27000
}
);
// Browsers met statische locatie
} else if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
}
function Locatieknop()
{
try
{
if (!myMarker || !myMarker.getMap())
{
MijnLocatie()
}
else
{
myMarker.setMap(null);
}
}
catch(e)
{
MijnLocatie();
}
}
当标记还没有被创建时(不是google.maps.Marker
)他没有方法getMap
,什么会导致错误。
您可以使用 try/catch-statement:
function Locatieknop() {
try{
if (myMarker.getMap() === null) {
MijnLocatie()
} else {
myMarker.setMap(null);
}
}
catch(e){
MijnLocatie();
}
}
您可以在检查地图之前简单地检查标记是否存在:
function Locatieknop()
{
try
{
if (!myMarker || !myMarker.getMap())
{
MijnLocatie()
}
else
{
myMarker.setMap(null);
}
}
catch(e)
{
MijnLocatie();
}
}
google maps v3 中的 getmap 有问题。
我已经使用 var myMarker = [];
对函数外部的 myMarker 进行了贴标,但仍然出现此错误:Uncaught TypeError: undefined is not a function.
问题是当我调用函数 Locatieknop 时。
有人可以帮助我吗?谢谢!
function MijnLocatie() {
displayLocation = function(position) {
myMarker = 0,
// Container voor de latlon locaties
var myLatLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
if (!myMarker) {
// GPS icoon
var image = new google.maps.MarkerImage(
'images/bluedot_retina.png',
null,
null,
new google.maps.Point(8, 8),
new google.maps.Size(17, 17)
);
// Nieuwe marker aanmaken
myMarker = new google.maps.Marker({
flat: true,
icon: image,
map: live.map,
optimized: false,
position: myLatLng,
title: 'Mijn locatie',
visible: true
});
// Markers updaten
} else {
myMarker.setPosition(myLatLng);
}
},
useragent = navigator.userAgent;
// IPhone en Android ondersteuning
if (useragent.indexOf('iPhone') !== -1 || useragent.indexOf('Android') !== -1) {
navigator.geolocation.watchPosition(
displayLocation,
handleError, {
enableHighAccuracy: true,
maximumAge: 30000,
timeout: 27000
}
);
// Browsers met statische locatie
} else if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(displayLocation, handleError);
}
}
function Locatieknop()
{
try
{
if (!myMarker || !myMarker.getMap())
{
MijnLocatie()
}
else
{
myMarker.setMap(null);
}
}
catch(e)
{
MijnLocatie();
}
}
当标记还没有被创建时(不是google.maps.Marker
)他没有方法getMap
,什么会导致错误。
您可以使用 try/catch-statement:
function Locatieknop() {
try{
if (myMarker.getMap() === null) {
MijnLocatie()
} else {
myMarker.setMap(null);
}
}
catch(e){
MijnLocatie();
}
}
您可以在检查地图之前简单地检查标记是否存在:
function Locatieknop()
{
try
{
if (!myMarker || !myMarker.getMap())
{
MijnLocatie()
}
else
{
myMarker.setMap(null);
}
}
catch(e)
{
MijnLocatie();
}
}