C# 与母版页一起使用时,谷歌地图为空白
我写了一个谷歌地图查找页面。在我引用页面使用母版页之前,一切都很好。我从母版页删除了表单标签,因为地图页上的搜索按钮是一个提交按钮。“我的页面”上的所有内容都会显示,但google map div会显示地图导航控件和徽标,但不会显示地图视觉效果C# 与母版页一起使用时,谷歌地图为空白,c#,asp.net,google-maps,C#,Asp.net,Google Maps,我写了一个谷歌地图查找页面。在我引用页面使用母版页之前,一切都很好。我从母版页删除了表单标签,因为地图页上的搜索按钮是一个提交按钮。“我的页面”上的所有内容都会显示,但google map div会显示地图导航控件和徽标,但不会显示地图视觉效果 我使用以前的非母版页版本重新测试,地图显示正确。您对我缺少的内容有什么想法吗?添加母版页时,可以更改的一件事是元素ID 如果显示地图的div上有runat=“server”,则可能有问题。 您可以添加该标记,以便从代码隐藏中操作div 所以,如果我的di
我使用以前的非母版页版本重新测试,地图显示正确。您对我缺少的内容有什么想法吗?添加母版页时,可以更改的一件事是元素ID 如果显示地图的div上有
runat=“server”
,则可能有问题。
您可以添加该标记,以便从代码隐藏中操作div
所以,如果我的div看起来像这样:
<div id="gmap" runat="server"></div>
var mapDiv = '<%= gmap.ClientID %>';
var map = new GMap2(mapDiv);
如果是这样,在初始化映射时,需要获取div的ClientId。如下所示:
<div id="gmap" runat="server"></div>
var mapDiv = '<%= gmap.ClientID %>';
var map = new GMap2(mapDiv);
var-mapDiv='';
var map=新的GMap2(mapDiv);
加载FireFox和FireBug,开始查找javascript错误。
我发现了一个项目,你必须在地图上调用setCenter才能显示它。
此外,如果要添加标记(或图层),则必须在调用setCenter后添加标记。最后必须强制div可见 在谷歌地图支持论坛上查看此帖子:
谢谢 请查看下面的代码并让我知道它的有用性 母版页代码(GMap.MasterPage)
GMatTest.aspx使用GMap.Master页的页面
< body onload="initialize()" onunload="GUnload()" >
< form id="form1" runat="server" >
< div >
< asp:contentplaceholder id="ContentPlaceHolder1" runat="server" >
< /asp:contentplaceholder >
< /div >
< /form >
< /body >
< %@ Page Language="C#" MasterPageFile="~/MasterPages/GMap.master" AutoEventWireup="true"
CodeFile="GMapTest.aspx.cs" Inherits="GMapTest" Title="Google Map Page" % >
< asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server" >
< script src="http://maps.google.com/maps?file=api&v=2&key=< % = AppConfig.GoogleMapApiKey % >"
type="text/javascript" >< /script >
< script type="text/javascript" >
var map = null;
var geocoder = null;
var latsgn = 1;
var lgsgn = 1;
var zm = 0;
var marker = null;
function initialize()
{
if (GBrowserIsCompatible())
{
var latitude= "";
var longitude= "";
map = new GMap2(document.getElementById("map_canvas"));
var center = new GLatLng(0,0);
map.setCenter(center, 17);
map.addControl(new GLargeMapControl());
map.addControl(new GScaleControl());
map.enableScrollWheelZoom();
map.addControl(new GMapTypeControl());
map.enableDoubleClickZoom();
marker = new GMarker(center,{draggable: true});
geocoder = new GClientGeocoder();
GEvent.addListener(marker, "dragend", function() {
var point = marker.getLatLng();
marker.openInfoWindowHtml("Latitude: " + point.y + "< /br > Longitude: " + point.x );
});
GEvent.addListener(marker, "click", function() {
var point = marker.getLatLng();
});
map.addOverlay(marker);
GEvent.trigger(marker, "click");
if (latitude > 0 && longitude > 0)
{
}
else
{
showAddress();
}
}
}
<%@Page Language=“C#”MasterPageFile=“~/MasterPages/GMap.master”AutoEventWireup=“true”
CodeFile=“GMapTest.aspx.cs”继承=“GMapTest”Title=“谷歌地图页面”%>
”
type=“text/javascript”>
这是我使用的代码。它在这里工作正常,但每当我添加母版页时,它都不会执行任何使用功能
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<title>Find latitude and longitude with Google Maps</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAPkZq56tNYNmeuZjNQQ2p3hT0NZP-HbfQNNfWb9Z5SLbjZKYKwBTrGBqtttFmF2d-kWv2B2nqW_NyEQ"
type="text/javascript"></script>
<script type="text/javascript">
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
var center = new GLatLng(48.89364, 2.33739);
map.setCenter(center, 15);
geocoder = new GClientGeocoder();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("lat").innerHTML = center.lat().toFixed(6);
document.getElementById("lng").innerHTML = center.lng().toFixed(6);
GEvent.addListener(marker, "dragend", function() {
var point = marker.getPoint();
map.panTo(point);
document.getElementById("lat").innerHTML = point.lat().toFixed(6);
document.getElementById("lng").innerHTML = point.lng().toFixed(6);
});
GEvent.addListener(map, "moveend", function() {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("lat").innerHTML = center.lat().toFixed(6);
document.getElementById("lng").innerHTML = center.lng().toFixed(6);
GEvent.addListener(marker, "dragend", function() {
var point =marker.getPoint();
map.panTo(point);
document.getElementById("lat").innerHTML = point.lat().toFixed(6);
document.getElementById("lng").innerHTML = point.lng().toFixed(6);
});
});
}
}
function showAddress(address) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
if (geocoder) {
geocoder.getLatLng(
address,
function(point) {
if (!point) {
alert(address + " not found");
} else {
document.getElementById("lat").innerHTML = point.lat().toFixed(6);
document.getElementById("lng").innerHTML = point.lng().toFixed(6);
map.clearOverlays()
map.setCenter(point, 14);
var marker = new GMarker(point, {draggable: true});
map.addOverlay(marker);
GEvent.addListener(marker, "dragend", function() {
var pt = marker.getPoint();
map.panTo(pt);
document.getElementById("lat").innerHTML = pt.lat().toFixed(6);
document.getElementById("lng").innerHTML = pt.lng().toFixed(6);
});
GEvent.addListener(map, "moveend", function() {
map.clearOverlays();
var center = map.getCenter();
var marker = new GMarker(center, {draggable: true});
map.addOverlay(marker);
document.getElementById("lat").innerHTML = center.lat().toFixed(6);
document.getElementById("lng").innerHTML = center.lng().toFixed(6);
GEvent.addListener(marker, "dragend", function() {
var pt = marker.getPoint();
map.panTo(pt);
document.getElementById("lat").innerHTML = pt.lat().toFixed(6);
document.getElementById("lng").innerHTML = pt.lng().toFixed(6);
});
});
}
}
);
}
}
</script>
</head>
<body onload="load()" onunload="GUnload()" >
<p>This page uses the Google Maps API to find out accurate geographical coordinates (latitude and longitude) for any place on Earth. <br/>It provides two ways to search, either by moving around the map and zooming in, or by typing an address if the place is unknown.<br/>
<i>
<p> The default location and address are those of Mondeca office in Paris.<br />
<p><b> Find coordinates by moving around the map</b></p> <p>1. Drag and drop the map to broad location. <br/>
2. Zoom in for greater accuracy. <br/>
3. Drag and drop the marker to pinpoint the place. The coordinates are refreshed at the end of each move. </p>
<form action="#" onsubmit="showAddress(this.address.value); return false">
<p>
<input type="text" size="60" name="address" value="3 cité Nollez Paris France" />
<input type="submit" value="Search!" />
</p>
</form>
<p align="left">
<table bgcolor="#FFFFCC" width="300">
<tr>
<td width="100"><b>Latitude</b></td>
<td id="lat"></td>
</tr>
<tr>
<td width="100"><b>Longitude</b></td>
<td id="lng"></td>
</tr>
</table>
</p>
<p>
<div align="center" id="map" style="width: 600px; height: 400px"><br/></div>
</p>
</body>
</html>
使用谷歌地图查找纬度和经度
函数加载(){
if(GBrowserIsCompatible()){
VarMap=新的GMap2(document.getElementById(“map”);
addControl(新的gsmallmappcontrol());
addControl(新的GMapTypeControl());
var中心=新玻璃(48.89364,2.33739);
地图设置中心(中心,15);
geocoder=新的GClientGeocoder();
var marker=newgmarker(中心,{draggable:true});
添加覆盖图(标记);
document.getElementById(“lat”).innerHTML=center.lat().toFixed(6);
document.getElementById(“lng”).innerHTML=center.lng().toFixed(6);
addListener(标记“dragend”,函数(){
var point=marker.getPoint();
潘图(点);
document.getElementById(“lat”).innerHTML=point.lat().toFixed(6);
document.getElementById(“lng”).innerHTML=point.lng().toFixed(6);
});
GEvent.addListener(映射,