Javascript 谷歌地图与Routeplanner don';t正确显示标记和信息窗口
我找了一整天,但没有找到解决办法。如果有人看到我的错误,我会很高兴。我尝试显示一个带有标记的地图,单击它会打开信息窗口。这个我以前做过很多次。 在信息窗口中,我想显示切换到Google进行路由规划的选项 定位和链接到Google的功能非常好,但是onload地图显示时没有显示标记,而是直接显示信息窗口并打开 你可以在这里看到地图: 这是我目前的代码:Javascript 谷歌地图与Routeplanner don';t正确显示标记和信息窗口,javascript,google-maps,google-maps-api-3,directions,Javascript,Google Maps,Google Maps Api 3,Directions,我找了一整天,但没有找到解决办法。如果有人看到我的错误,我会很高兴。我尝试显示一个带有标记的地图,单击它会打开信息窗口。这个我以前做过很多次。 在信息窗口中,我想显示切换到Google进行路由规划的选项 定位和链接到Google的功能非常好,但是onload地图显示时没有显示标记,而是直接显示信息窗口并打开 你可以在这里看到地图: 这是我目前的代码: <div class="mapwrapper"> <div id="map_canvas"></div> &
<div class="mapwrapper">
<div id="map_canvas"></div>
<!-- STARTING MAP DEFINITION -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true&language=de"></script>
<script type="text/javascript">
var map;
var start = new google.maps.LatLng(50.6472671, 8.4210159);
var geocoder;
geocoder = new google.maps.Geocoder();
// Initalize your map
function initialize() {
var mapOptions = {
zoom:16,
scrollwheel: false,
panControl: true,
draggable: false,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: start
};
map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
}
// Collect entered data and open Google Maps in a new browser tab
function showRoute() {
var start = document.getElementById("address").value;
var dest_url = "http://maps.google.de/maps?saddr="+start+"&daddr="+destination;
window.open(dest_url, '_blank');
}
// Define infobox widget
function codeAddress() {
var marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(50.6472671, 8.4210159 ),
title:"Info Window title goes here"
});
var address = destination;
geocoder.geocode( { 'address': address }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var coordInfoWindow = new google.maps.InfoWindow({
content: "<h2>Your Way to Us</h2><p>Enter your location<br>and press 'FIND'</p><input id='address' type='textbox' value='' style='border: 1px solid #f0f0f0;-webkit-border-radius: 8px;-moz-border-radius: 8px;border-radius: 8px;'> <input type='button' value='FIND' onClick='showRoute();'>",
map: map,
position: results[0].geometry.location
});
} else {
alert("Geocode not available: " + status);
}
});
google.maps.event.addListener(marker, 'click', function() {
coordInfoWindow.open(map,marker);
});
}
// Automatic geo localisation
function codeLatLng() {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var pos = new google.maps.LatLng(position.coords.latitude,
position.coords.longitude);
geocoder.geocode({'latLng': pos}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
document.getElementById("address").value = results[1].formatted_address;
} else {
// alert("No results found");
}
} else {
// alert("Geocoder failed due to: " + status);
}
});
}, function() {
//
});
}
}
// DO NOT CHANGE CODE ABOVE!
// Change custom parameters starting from here:
var destination = "Mainzer Dom, Markt, Mainz"; // destination, your address
document.getElementById('map_canvas').style.width = '100%'; // map width
document.getElementById('map_canvas').style.height = '700px'; // map height
initialize();
codeAddress();
codeLatLng();
</script>
<!-- END OF MAP DEFINITION -->
</div>
var映射;
var start=new google.maps.LatLng(50.6472671,8.4210159);
var地理编码器;
geocoder=新的google.maps.geocoder();
//初始化你的地图
函数初始化(){
变量映射选项={
缩放:16,
滚轮:错误,
泛控制:对,
可拖动:错误,
mapTypeId:google.maps.mapTypeId.ROADMAP,
中心:开始
};
map=new google.maps.map(document.getElementById(“map_canvas”),mapOptions);
}
//收集输入的数据并在新的浏览器选项卡中打开谷歌地图
函数showRoute(){
var start=document.getElementById(“地址”).value;
var dest_url=”http://maps.google.de/maps?saddr=“+start+”&daddr=“+destination;
打开(dest_url,'u blank');
}
//定义信息框小部件
函数代码地址(){
var marker=new google.maps.marker({
地图:地图,
位置:新google.maps.LatLng(50.6472671,8.4210159),
标题:“信息窗口标题在此处”
});
var地址=目的地;
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
var coordinfo window=new google.maps.InfoWindow({
内容:“您前往美国的方式输入您的位置
并按“查找””,
地图:地图,
位置:结果[0]。几何体。位置
});
}否则{
警报(“地理代码不可用:+状态”);
}
});
google.maps.event.addListener(标记'click',函数(){
坐标信息窗口。打开(地图、标记);
});
}
//自动地理定位
函数codeLatLng(){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var pos=新的google.maps.LatLng(position.coords.latitude,
位置坐标经度);
geocoder.geocode({'latLng':pos},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
如果(结果[1]){
document.getElementById(“地址”).value=results[1]。格式化的\u地址;
}否则{
//警报(“未发现结果”);
}
}否则{
//警报(“地理编码器因“+状态”而失败);
}
});
},函数(){
//
});
}
}
//不要更改上面的代码!
//从此处开始更改自定义参数:
var destination=“Mainzer Dom,Markt,Mainz”//目的地,你的地址
document.getElementById('map_canvas')。style.width='100%';//地图宽度
document.getElementById('map_canvas')。style.height='700px';//地图高度
初始化();
代码地址();
codeLatLng();
我做错了什么,有人知道吗?我会感谢你的帮助,
非常感谢
托马斯好吧,既然我在这篇文章上没有得到帮助,我就自己动手;-) 就我不是GoopleMaps API专家而言,我找到了一个适合我的项目的解决方案。我现在错过了自动地理定位,但marker和infowindow现在的行为与我预期的一样。 我发布了这段代码,希望它能帮助有类似问题的人。 这是:
函数初始化(){
变量映射选项={
中心:新google.maps.LatLng(49.9988999,8.2717569),
缩放:16,
mapTypeId:google.maps.mapTypeId.ROADMAP,
滚轮:错误,
泛控制:对,
可拖动:错误
};
var map=new google.maps.map(document.getElementById(“map_canvas”),
地图选项);
var marker=new google.maps.marker({
地图:地图,
位置:新google.maps.LatLng(49.9988999,8.2717569),
标题:“信息窗口标题在此处”
});
//根据地图高度和网页设计调整信息窗口的样式
var contentString=''+
'信息窗口标题也在此处'+
''+
“Examplestreet 6
12345 ExampleCity
”+
'输入您的位置
'+
''+
''+
'';
var infowindow=new google.maps.infowindow({
内容:contentString
});
google.maps.event.addListener(标记'click',函数(){
信息窗口。打开(地图、标记);
});
}
google.maps.event.addDomListener(窗口“调整大小”,初始化);
google.maps.event.addDomListener(窗口“加载”,初始化)
html{
身高:100%;
}
身体{
身高:100%;
保证金:0;
填充:0;
}
#sec4{
宽度:100%;
身高:50%;
}
#地图{
宽度:100%;高度:600px;
}
信息窗口有什么问题?您希望在http://maps.google.com
?请在一个问题中只问一个问题。感谢您的建议-然后让我们关注我的期望:我期望标记在加载时出现-带有一个隐藏的信息窗口,在单击标记时显示。但是,使用该代码,映射将打开infowindow,但不显示任何标记。即使我关闭信息窗口,也没有