2

ページの 1 つに 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 にハードコードされていますが、コード ビハインドから動的な値を取得する必要があります。どうやってやるの?

4

2 に答える 2

0

迅速で汚いアプローチの1つは、コードビハインドでlat/long値のJavaScript配列を作成する文字列を作成することです。次に、.ASPXにを追加して、文字列値に設定できます。または、ポイントのJSON表現を作成します。これは、小さな1回限りのシナリオに適しています。したがって、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>

次に、コードビハインドで、適切なJavaScriptを使用してlitMapPointsとlitMapCenterを設定します。

于 2011-05-03T18:27:23.480 に答える
0

コードビハインドでこのようなものを使用できます

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

この方法では、'longitude' という名前の jscript 変数を作成し、.NET コード値で初期化するだけです。

(これはオンザフライで書かれているので、バグがある場合はご容赦ください:-))

于 2011-05-04T13:41:16.057 に答える