troubleshooting Question

ASP.NET Google Map Markers (pushpins) and informatrion display box

Avatar of Cobra967
Cobra967Flag for United States of America asked on
ASP.NET
6 Comments2 Solutions452 ViewsLast Modified:
I have a small project where I google map several records from my SQL database. The table has just a Latitude, Longitude and a unique record number fields. I managed to display my records on the map and show the record ID in the pushpin (label) as well in the information box when you click with the mouse over a pin (See screenshot). The problem is that the pushpin display only the first digit (I guess because of the pin size and/or the font size used by the system) of the record ID and I have about 150 records in my table. The "information box" does show the full number (See screenshot) however, if accessing the page with an iOS device, I have no idea how to brig the information box up - if there is a way. It is important for iPhone to be able to see the full Record ID in one way or another. Please be specific in you solution since I have a very limited experience in ASP.NET VB.NET. Thank you all

This is what I have in my aspx:

<%@ Page Title="" Language="vb" AutoEventWireup="false" MasterPageFile="~/Site.Mobile.Master" CodeBehind="MyMap.aspx.vb" Inherits="WebApplication1.MyMap" %>

<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">

    <!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" > 
     <script type="text/javascript"
     src="https://maps.googleapis.com/maps/api/js?key=My_Code_Here&amp;sensor=false">
     </script>

<body onload="initialize()">
          <div id="mapArea" style="width: 500px; height: 500px;">
          </div>
 
          <asp:Literal ID="Literal1" runat="server"></asp:Literal>
</body>
</html>

</asp:Content>

And this is my VB code for the same page:

Imports System.Data
Imports System.Configuration
Imports System.Data.SqlClient

Public Class MapAvailableTerritories
    Inherits System.Web.UI.Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load


        Dim markers As String = ""
        markers = GetMarkers()
        Literal1.Text = "<script type='text/javascript'>" +
     "function initialize() {" +
     "var mapOptions = {" +
     "center: new google.maps.LatLng(35.372278, -80.633568)," +
     "zoom: 9," +
     "mapTypeId : google.maps.MapTypeId.ROADMAP" +
     "};" +
     "var myMap = new google.maps.Map(document.getElementById('mapArea'), mapOptions);" +
     markers +
     "}" +
     "</script>"


    End Sub

    Protected Function GetMarkers() As String
        Dim markers As String = ""

        Using con As New SqlConnection(ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString)
            Dim cmd As SqlCommand = New SqlCommand("SELECT Lat, Lng, Territory FROM MyMapData", con)
            con.Open()
            Dim reader As SqlDataReader = cmd.ExecuteReader()
            Dim i As Integer = 0
            While reader.Read()
                i = i + 1
                markers = markers + "var marker" + i.ToString() + "= new google.maps.Marker({" +
               "position: new google.maps.LatLng( " + reader("Lat").ToString() + ", " +
               reader("Lng").ToString() + ")," +
               "Label:'" + reader("RecordID").ToString() + "', " +
               "map: myMap," +
               "title:'" + reader("RecordID").ToString() + "'});"


            End While
            con.Close()
        End Using
        Return markers
    End Function

End Class

This is the result I currently experienced (The number in the pin is also 38 as shown by the information box:
 MyMap
SOLUTION
Robberbaron (robr)

Our community of experts have been thoroughly vetted for their expertise and industry experience.

Join our community to see this answer!
Unlock 2 Answers and 6 Comments.
Start Free Trial
Learn from the best

Network and collaborate with thousands of CTOs, CISOs, and IT Pros rooting for you and your success.

Andrew Hancock - VMware vExpert
See if this solution works for you by signing up for a 7 day free trial.
Unlock 2 Answers and 6 Comments.
Try for 7 days

”The time we save is the biggest benefit of E-E to our team. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange.

-Mike Kapnisakis, Warner Bros