Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.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 如何在ASP.NET C中显示google地图#_Javascript_C#_Google Maps_Updatepanel_Registerstartupscript - Fatal编程技术网

Javascript 如何在ASP.NET C中显示google地图#

Javascript 如何在ASP.NET C中显示google地图#,javascript,c#,google-maps,updatepanel,registerstartupscript,Javascript,C#,Google Maps,Updatepanel,Registerstartupscript,我正在将google maps控件添加到ASP.NET C#页面中。我已经从谷歌获得了API密钥,我刚刚测试了页面,但似乎地图没有显示出来。我的最终结果是使用纬度和经度的文本框进行输入,单击submit按钮,地图会将我带到指定的位置。在前端,我有: <script> var map; function initialize() { map = new google.maps.Map(document.getElementById('map'), {

我正在将google maps控件添加到ASP.NET C#页面中。我已经从谷歌获得了API密钥,我刚刚测试了页面,但似乎地图没有显示出来。我的最终结果是使用纬度和经度的文本框进行输入,单击submit按钮,地图会将我带到指定的位置。在前端,我有:

<script>
    var map;
    function initialize() {
        map = new google.maps.Map(document.getElementById('map'), {
            center: new google.maps.LatLng(48.1293954, 11.556663), // Munich Germany
            zoom: 10
        });
    }

    function newLocation(newLat, newLng) {
        map.setCenter({
            lat: newLat,
            lng: newLng
        });
    }

    google.maps.event.addDomListener(window, 'load', initialize);
</script>
<form id="form1" runat="server">
    <asp:ScriptManager ID="sManager" runat="server" />
    <asp:UpdatePanel ID="pnlTest" runat="server">
        <ContentTemplate>
            <div style="height: 60%;" id="map"></div>

            <asp:TextBox ID="txtLat" runat="server" />
            <asp:TextBox ID="txtLong" runat="server" />
            <asp:Button ID="btnSubmit" Text="Submit" runat="server" />
        </ContentTemplate>
    </asp:UpdatePanel>
</form>

var映射;
函数初始化(){
map=new google.maps.map(document.getElementById('map'){
中心:新google.maps.LatLng(48.1293954,11.556663),//德国慕尼黑
缩放:10
});
}
功能新建位置(新建LAT、新建LNG){
地图设置中心({
拉特:纽拉特,
液化天然气:新液化天然气
});
}
google.maps.event.addDomListener(窗口“加载”,初始化);

我没有执行按钮单击事件,因为我想先查看上面的内容。

问题在于渲染地图时,您的
更新面板没有高度。如果为控件指定高度,则贴图将可见:

<asp:UpdatePanel ID="pnlTest" runat="server" style="height:400px;">
表示必须明确设置高度

请注意,div通常从其包含元素中获取宽度,而空div的高度通常为0。因此,必须始终明确地在div上设置高度


在我的例子中,我试图在更新面板中的模式弹出对话框中显示地图。狡猾

这就是解决方案:

  • 在aspx表单(在模态弹出面板内)中,我添加了一个如下的div

    <div id="map" style="width: 600px; height: 400px; margin-right: auto; margin-left: auto;"></div>
    

如果有人想在更新面板中添加Google Maps作为弹出式模块

您可以更新示例以显示您正在加载的Google API库吗?我只使用这个。maps.googleapis.com/maps/api/js?key=MY_key“>这可能就是问题所在。您是否有“google未定义”的JavaScript错误?实际上没有。如果我“在表单标记中,但在updatepanel之外,地图显示。但是,考虑到我未来的计划是在单击事件时使用submit按钮将地图移动到指定位置,我认为在updatepanel中使用此按钮更为理想?我尝试向上投票,如果这是您要求的,但它说我不能。如何操作?在向上/向下投票计数器下有一个灰色复选标记。这标志着一个回应就是答案。
<script src="https://maps.googleapis.com/maps/api/js?key=(YOUR_API_KEY_Here)&sensor=false"></script>
<script type="text/javascript">
var map;
function RenderTheMap(lat, long) {
    map = new google.maps.Map(document.getElementById('map'), {
        center: new google.maps.LatLng(lat, long), 
        zoom: 9
    });

    var latlng = new google.maps.LatLng(lat, long);
    new google.maps.Marker({
        position: latlng,
        map: map
    });
}        
private void ShowMap(string Address_Lat, string Address_Long)
{
    ScriptManager.RegisterStartupScript(
    UpdatePanel1,
    this.GetType(),
    "RenderMap",
    "RenderTheMap(" + Address_Lat + ", " + Address_Long + ");",
    true);
    MapPanel_ModalPopupExtender.Show();
}