Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图街景显示标记在我的POV或旁边_Javascript_Html_Google Maps_Google Maps Api 3_Google Street View - Fatal编程技术网

Javascript 谷歌地图街景显示标记在我的POV或旁边

Javascript 谷歌地图街景显示标记在我的POV或旁边,javascript,html,google-maps,google-maps-api-3,google-street-view,Javascript,Html,Google Maps,Google Maps Api 3,Google Street View,我的自定义标记可拖动并位于我的当前位置 然而,我需要先改变我的位置,然后才能看到我的自定义标记,这样我就可以把它拖到我想放的任何地方 有没有一种方法可以让我的定制标记钉在我面前或旁边,只要我能立即看到它们 var位置={lat:42.3456778143501,lng:-71.09837363184101} var pano_航向=68.85497936110396; var pano_螺距=14.77626025895016; 函数初始化(){ //注意:构造的全景对象具有“可见”:true

我的自定义标记可拖动并位于我的当前位置

然而,我需要先改变我的位置,然后才能看到我的自定义标记,这样我就可以把它拖到我想放的任何地方

有没有一种方法可以让我的定制标记钉在我面前或旁边,只要我能立即看到它们

var位置={lat:42.3456778143501,lng:-71.09837363184101}
var pano_航向=68.85497936110396;
var pano_螺距=14.77626025895016;
函数初始化(){
//注意:构造的全景对象具有“可见”:true
//默认设置。
const panorama=新建google.maps.StreetViewPanorama(
document.getElementById(“map”),
{
职位:职位,,
pov:{
航向:全景航向,
音高:全景音高
},
地址控制选项:{
位置:google.maps.ControlPosition.BOTTOM\u CENTER,
},
linksControl:对,
泛控制:对,
enableCloseButton:true,
}
);
var marker_pano=新的google.maps.marker({
地图:全景,
职位:职位,,
标题:"测试",,
真的,
动画:google.maps.animation.DROP,
});
panorama.addListener(“pano_已更改”,()=>{
//log('pano ID',panorama.getPano());
const panoID=document.getElementById(“pano id”);
panoID.innerHTML=“pano ID=“+panorama.getPano();
});
panorama.addListener(“位置改变了”,()=>{
const positionCell=document.getElementById(“位置”);
positionCell.innerHTML=“position=“+panorama.getPosition()+”;
});
panorama.addListener(“pov_已更改)”,()=>{
const headingCell=document.getElementById(“全景标题”);
const pitchCell=document.getElementById(“pano pitch”);
headingCell.innerHTML=“pano heading=“+panorama.getPov().heading+”;
pitchCell.innerHTML=“pano pitch=“+panorama.getPov().pitch+”;
});
}
html,
身体{
身高:80%;
保证金:0;
填充:0;
}
#地图,
#帕诺{
浮动:左;
身高:80%;
宽度:50%;
}

以下是一个示例,说明如何将标记从当前位置偏移10米,以及如何更改POV航向,使其朝向标记

听起来比抵消你自己的位置更好,因为这样做可能会在没有街景图像的地方结束

请注意,加载API脚本时必须包含几何体库:

https://maps.googleapis.com/maps/api/js?libraries=geometry

函数初始化(){
var position=new google.maps.LatLng(42.3456778143501,-71.09837363184101);
var marker_position=google.maps.geometry.spheremic.computeOffset(位置,10,0);
var heading=google.maps.geometry.spheremic.computeHeading(位置,标记位置);
//注意:构造的全景对象具有“可见”:true
//默认设置。
const panorama=新建google.maps.StreetViewPanorama(
document.getElementById(“map”){
职位:职位,,
pov:{
标题:标题,
螺距:-15
},
地址控制选项:{
位置:google.maps.ControlPosition.BOTTOM\u CENTER,
},
linksControl:对,
泛控制:对,
enableCloseButton:true,
}
);
var marker_pano=新的google.maps.marker({
地图:全景,
位置:标记位置,
标题:"测试",,
真的,
动画:google.maps.animation.DROP,
});
panorama.addListener(“pano_已更改”,()=>{
//log('pano ID',panorama.getPano());
const panoID=document.getElementById(“pano id”);
panoID.innerHTML=“pano ID=“+panorama.getPano();
});
panorama.addListener(“位置改变了”,()=>{
const positionCell=document.getElementById(“位置”);
positionCell.innerHTML=“position=“+panorama.getPosition()+”;
});
panorama.addListener(“pov_已更改)”,()=>{
const headingCell=document.getElementById(“全景标题”);
const pitchCell=document.getElementById(“pano pitch”);
headingCell.innerHTML=“pano heading=“+panorama.getPov().heading+”;
pitchCell.innerHTML=“pano pitch=“+panorama.getPov().pitch+”;
});
}
html,
身体{
身高:80%;
保证金:0;
填充:0;
}
#地图,
#帕诺{
浮动:左;
高度:180像素;
宽度:50%;
}


我认为没有办法做到这一点。即使偏移标记图标也似乎不起作用。您可以使用一个透明的PNG图像作为标记,底部有一些空白,但这不会将其放置在您想要的确切位置。相关(旧)问题:@MrUpsidown谢谢你的启示,我所做的是将
标记设置为
可拖动:true
然后将标记拖动到你想要的位置并保存标记。我的问题是,我需要在我当前的位置(我站的位置)首先出来,这样我可以在拖动之前看到我放置的标记。有没有办法让我把标记从我的位置扔到离我一步远的地方?另一个相关的(封闭的)问题:-恐怕我没有理解你的最后一个问题。我为你编辑了代码片段。在本例中,我的自定义标记现在可以拖动并位于我的当前位置。然而,我需要先改变我的位置,然后才能看到我的自定义标记,这样我就可以把它拖到我想放的任何地方。有没有办法让我的自定义标记钉在我面前或旁边,只要我能立即看到它们。我现在也编辑了这个问题。对不起,我认为你足够活跃来回答这个问题。谢谢你的帮助。感谢您引用我这个几何API。
var marker_position=google.maps.geometry.spherec.computeOffset(位置,10,panorama.getPov().heading)我更改