2013-08-06 156 views
0

因此,我構建了一個簡單的商店定位器,花了數小時的時間試圖讓它起作用,並最終意識到問題是Google地圖不會允許您將iframe整個頁面。有沒有什麼工作可以讓它顯示出來?或者一種方法去做沒有iframe的事情?將谷歌地圖用於商店定位器

理想情況下,如果沒有頁面的其餘部分,地圖本身就會很好,但是我找不到一個不需要數據庫或某種數據文件的API的方法,太多的商店位置隨時都在變化以跟上這一點。

這是我到目前爲止。

的標記:

<%@ Page Title="HelixMix | Where To Buy" Language="C#" MasterPageFile="~/Site.master" 
    AutoEventWireup="true" CodeFile="WhereToBuy.aspx.cs" Inherits="WhereToBuy" %> 

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> 
    <script type="text/javascript"> 
     function reloadFrame(Map) { 
      document.getElementById(Map).contentDocument.location.reload(true); 
     } 
    </script> 
    <script type="text/javascript"> 
     function selectStore() { 
      document.write("Please select at least one store."); // Change location on page... 
     } 
    </script> 
</asp:Content> 
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> 
    <div id="Locator"> 
     Zip code: 
     <asp:TextBox ID="TextBox1" placeholder="Zip code" runat="server"></asp:TextBox> 
     <div class="personalSpace">Which store would you like to search for? Please choose only one.</div> 
     <ul id="stores"> 
      <li>Store name 1: 
       <asp:RadioButton ID="RadioButton1" runat="server" /> 
      </li> 
      <li>Store name 2: 
       <asp:RadioButton ID="RadioButton2" runat="server" /> 
      </li> 
      <li>Store name 3: 
       <asp:RadioButton ID="RadioButton3" runat="server" /> 
      </li> 
      <li>Store name 4: 
       <asp:RadioButton ID="RadioButton4" runat="server" /> 
      </li> 
      <li>Store name 5: 
       <asp:RadioButton ID="RadioButton5" runat="server" /> 
      </li> 
     </ul> 
     <asp:Button ID="Button1" runat="server" Text="Find locations" OnClick="Button1_Click" /> 
     <div> 
      <iframe id="Map" runat="server"></iframe> 
     </div> 
    </div> 
</asp:Content> 

背後的代碼:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.HtmlControls; 


public partial class WhereToBuy : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     Map.Visible = false; 
    } 

    protected void Button1_Click(object sender, EventArgs e) 
    { 
     Map.Visible = true; 
     string zipCode = TextBox1.Text; 
     string SearchURL = ""; 
     int store = 0; 

     if (RadioButton1.Checked) 
     { 
      store = 1; 
     } 
     if (RadioButton2.Checked) 
     { 
      store = 2; 
     } 
     if (RadioButton3.Checked) 
     { 
      store = 3; 
     } 
     if (RadioButton4.Checked) 
     { 
      store = 4; 
     } 
     if (RadioButton5.Checked) 
     { 
      store = 5; 
     } 

     switch (store) 
     { 
      case 1: 
       SearchURL = "https://www.google.com/maps/preview#!q=gnc+near%3A+"; 
       break; 
      case 2: 
       SearchURL = "https://www.google.com/maps/preview#!q=gnc+near%3A+"; //Change store name 
       break; 
      case 3: 
       SearchURL = "https://www.google.com/maps/preview#!q=gnc+near%3A+"; //Change store name 
       break; 
      case 4: 
       SearchURL = "https://www.google.com/maps/preview#!q=gnc+near%3A+"; //Change store name 
       break; 
      case 5: 
       SearchURL = "https://www.google.com/maps/preview#!q=gnc+near%3A+"; //Change store name 
       break; 
      default: 
       Page.RegisterClientScriptBlock("Select store", "<script>\n selectStore(); \n </script>"); //Rewrite flow to not load iframe if this executes... Back to new search... 
       break; 
     } 

     Map.Attributes.Add("src", SearchURL + zipCode); 
     Page.RegisterClientScriptBlock("Reload", "<script>\n reloadFrame('Map'); \n </script>"); 
    } 
} 
+0

您是否嘗試過Google Maps API?這太好了。 – Seano666

+0

現在是否有能力嵌入地圖,可以通過郵政編碼搜索附近的任何商店名稱列表,並在沒有本地數據庫的情況下完成所有這些操作?如果這樣做會很棒,但我認爲它不會。 – Blake

回答