asp.net - > google maps api - >从.aspx页面创建地图的最佳方法

时间:2011-11-18 00:30:55

标签: c# asp.net google-maps

好的,我正在开展一个项目,最终用户将点击网格中将打开新窗口的链接。 (.aspx页面)我一直在研究如何从新打开的.aspx页面创建一个谷歌地图,而不是在后面的代码中编写一堆动态javascript,然后将clientscript注册到页面。我过去做过这个,但它真的不漂亮,如果你需要回来换东西真的很麻烦。

此地图的初始版本将有一个存在多个点的路线,其后一个版本将提供在同一地图中拥有多条路线的能力(只是为了让您概述最终目标是什么)例如,洛杉矶到拉斯维加斯到奥斯汀的路线。

所以,我知道这是一个非常笼统/模糊的问题,但我想弄清楚的是从.aspx页面生成谷歌地图而不编写动态sql的最好方法,我相信其他人偶然发现了这个问题以前。思想/评论,一切都表示赞赏。感谢。

1 个答案:

答案 0 :(得分:1)

网上有一些组件浮动,但是对我来说效果很好的一种方法是使用隐藏字段来保存地址/坐标等,并使用隐藏字段填充地图:

<script type="text/javascript">
    var map = null; 
    var geocoder = null;                
    var address = "<%=hdnMapAddress.Value%>";       

    showAddress = function() {
        var mapContainer = $get("<%=pnlMap.ClientID%>");
        if (mapContainer){        
            if (GBrowserIsCompatible()){      
                geocoder = new GClientGeocoder();                      
                map = new GMap2(document.getElementById("<%=pnlMap.ClientID%>"));               
            }                    
            if (geocoder){ 
                geocoder.getLatLng(address, 
                    function(point){                                                                
                        var marker = new GMarker(point);
                        if (marker){
                            map.setCenter(point, 12);                         
                            map.addOverlay(marker);                                                                                                                                                                                                                                                                                                                                               
                        }                                                              
                    }
                );             
            }              
        }  
    }  
</script>
<asp:HiddenField ID="hdnMapAddress" runat="server" /> 
<asp:Panel ID="pnlMap" runat="server" Height="230">
    <!-- map content -->
</asp:Panel> 

代码隐藏:

hdnMapAddress.Value = "123 Test St, Providence, RI 02904";