[英]Problems putting coordinates on a textbox for DragEnd event with Subgurim Maps
我正在嘗試使用Subgurim創建可拖動標記,並將最終變量讀取到文本框。
除了將坐標放在文本框上的那一部分之外,我已經完成了所有工作。
后面的代碼:
protected void Page_Load(object sender, EventArgs e){
if (SessionManager.User == null) {
string strscript = "<script language=javascript>window.top.close();</script>";
if(!ClientScript.IsStartupScriptRegistered("clientScript")) {
ClientScript.RegisterStartupScript(Page.GetType(), "clientScript", strscript);
}
}
else {
if (!Page.IsPostBack) {
gmap.Height = 400;
gmap.Width = 590;
gmap.enableDragging = true;
gmap.Language = "pt";
gmap.BackColor = Color.White;
gmap.enableDragging = true;
gmap.enableGoogleBar = true;
gmap.Language = "pt";
gmap.BackColor = Color.White;
GControl nav = new GControl(GControl.preBuilt.LargeMapControl3D);
GControl maptypes = new GControl(GControl.preBuilt.MenuMapTypeControl, new GControlPosition(GControlPosition.position.Top_Right));
GControl scale = new GControl(GControl.preBuilt.ScaleControl, new GControlPosition(GControlPosition.position.Bottom_Left));
GControl overview = new GControl(GControl.preBuilt.GOverviewMapControl, new GControlPosition(GControlPosition.position.Bottom_Right));
gmap.addControl(nav);
gmap.addControl(maptypes);
gmap.addControl(scale);
gmap.addControl(overview);
GLatLng pt=null;
int zoom = 16;
string lat = Request.QueryString["lat"];
string lon = Request.QueryString["lon"];
if (lon == null || lat == null) {
pt = new GLatLng(Helper.BASE_LAT, Helper.BASE_LON);
zoom = Helper.BASE_ZOOM;
}
else {
pt = new GLatLng(Convert.ToDouble(lat), Convert.ToDouble(lon));
}
gmap.setCenter(pt,zoom);
GMarkerOptions mOpts = new GMarkerOptions();
mOpts.draggable = true;
GMarker marker = new GMarker(pt,mOpts);
gmap.addGMarker(marker);
gmap.addListener(new GListener(marker.ID, GListener.Event.dragend,
string.Format(@"
function(overlay, point)
{{
var ev = new serverEvent('myDragEnd', {0});
ev.addArg({0}.getZoom());
ev.addArg(this.getPoint());
ev.send();
}}
", gmap.GMap_Id)
)
);
}
}
}
protected string gmap_ServerEvent(object s, GAjaxServerEventOtherArgs e) {
switch (e.eventName) {
case "myDragEnd":
string zoomLevel = e.eventArgs[0];
GLatLng point = GAjaxServerEventArgs.latlngFromString(e.eventArgs[1]);
txtLat.Text = "Hello";//point.lat.ToString();
txtLon.Text = "There";//point.lng.ToString();
break;
}
return string.Empty;
}
基本上,我正在創建一個可拖動標記並將一個事件附加到該標記上,這由分配完成的最后一種方法處理……這不會發生。 文本框仍然顯示為空。
當您添加標記時
google.maps.event.addListener(marker, 'dragend', markerDrag);
然后在標題中
function markerDrag(evt)
{
document.getElementById('mlat_').value = this.getPosition().lat();
document.getElementById('mlng_').value = this.getPosition().lng();
}
mlat_和mlng是輸入類型的文本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.