Добавить значения широты / долготы на стороне сервера в JavaScript Google Map - PullRequest
2 голосов
/ 03 мая 2011

Я пытаюсь добавить карту Google на одну из своих страниц.

В моем коде позади у меня есть центральная точка для карты и массив широт / долгот, которые я хотел бы отобразить:

protected void Page_Load(object sender, EventArgs e)
{
    Point center = new Point { latitude = 28.42693F, longitude = -81.4673F };

    List<Point> points = new List<Point>();
    points.Add(new Point { latitude = 28.43039F, longitude = -81.47186F });
    points.Add(new Point { latitude = 28.36906F, longitude = -81.56063F });

    Point[] pointArray = points.ToArray();
}


public class Point
{
    public float latitude;
    public float longitude;
}

На моей странице у меня есть этот javascript:

<script type="text/javascript">

    function initialize() {
        if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map_canvas"));
            map.setCenter(new GLatLng(28.42693, -81.4673), 13);
            //map.setUIToDefault();

            var blueIcon = new GIcon(G_DEFAULT_ICON);
            blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
            markerOptions = { icon: blueIcon };


            var point = new GLatLng(28.43039, -81.47186);
            map.addOverlay(new GMarker(point, markerOptions));

            point = new GLatLng(28.36906, -81.56063);
            map.addOverlay(new GMarker(point, markerOptions));
        }
    }

</script>

Значения прямо сейчас закодированы в javascript для тестирования, но мне нужно получить динамические значения из кода. Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 04 мая 2011

Вы можете использовать что-то подобное в своем коде за

ClientScript.RegisterStartupScript(this.getType(), "whateveryourkeyis", string.Format("longitude={0};", pointArray[0].longitude), true);

Таким образом, вы просто создадите переменную jscript с именем 'longitude' и инициализируете ее значениями кода .NET.

(Это написано на лету, так что прости меня, если там есть ошибки: -))

0 голосов
/ 03 мая 2011

Одним из быстрых и грязных подходов может быть создание строки в вашем коде позади, которая создает массив JavaScript значений lat / long. Затем вы можете добавить в .ASPX и установить его в качестве строкового значения. Или создайте JSON-представление ваших точек. Это хорошо работает для небольших одноразовых сценариев. Таким образом, ваш JavaScript может выглядеть так:

<script type="text/javascript">

    function initialize() {
        if (GBrowserIsCompatible()) {
            var map = new GMap2(document.getElementById("map_canvas"));
            <asp:Literal id="litMapCenter" runat="server"/>
            //map.setUIToDefault();

            var blueIcon = new GIcon(G_DEFAULT_ICON);
            blueIcon.image = "http://www.google.com/intl/en_us/mapfiles/ms/micons/blue-dot.png";
            markerOptions = { icon: blueIcon };

            <asp:Literal id="litMapPoints" runat="server"/>
        }
    }

</script>

В своем коде вы устанавливаете litMapPoints и litMapCenter с соответствующим JavaScript.

...