Javascript 通过在下拉列表中更改城市名称更改谷歌地图
我在city.js文件中包含了特定于城市的纬度和经度,我从该文件中获取了城市的内容 现在,我想将这些信息传递到我的javaScript代码中,以便通过更改城市名称来更改地图 我尝试过这样的事情,但没有成功----- 这里city.js是一个java脚本文件--- 我的下拉列表可以随着城市名称的改变而改变地区名称,现在,我只想随着城市名称在下拉列表中的改变而改变谷歌地图——我的工作代码如下---- 我的表格有两个这样的下拉列表---Javascript 通过在下拉列表中更改城市名称更改谷歌地图,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我在city.js文件中包含了特定于城市的纬度和经度,我从该文件中获取了城市的内容 现在,我想将这些信息传递到我的javaScript代码中,以便通过更改城市名称来更改地图 我尝试过这样的事情,但没有成功----- 这里city.js是一个java脚本文件--- 我的下拉列表可以随着城市名称的改变而改变地区名称,现在,我只想随着城市名称在下拉列表中的改变而改变谷歌地图——我的工作代码如下---- 我的表格有两个这样的下拉列表--- @使用(Html.BeginForm()) { @Html.A
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
输入项目详细信息
@LabelFor(model=>model.City)
@if(ViewData.ContainsKey(“城市”)){
@Html.DropDownListFor(model=>model.City,ViewData[“City”]作为列表,新建{style=“width:250px”,@class=“DropDown1”})@Html.ValidationMessageFor(model=>model.City)
}
@LabelFor(model=>model.Locality)
@DropDownList(“Locality”,new SelectList(string.Empty,“Value”,“Text”),“请选择一个Locality”,new{style=“width:250px”,@class=“DropDown1”})
如果要设置地图中心,请执行此操作
var mapOptions = {
zoom: 12,
center: new google.maps.LatLng(-27.793949,-52.348643),
mapTypeId: google.maps.MapTypeId.ROADMAP };
// Save map as global variable.
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
论城市职能的转变
// Catch center;
center = map.getCenter();
// .. insert your code here to change center object lat/long
// center.lat = -50.00 ( I do not remember the atribute name )
map.setCenter(center);
你能提供一个例子来说明这个问题吗?很抱歉,我已经提供了最少的代码。在第一个代码段中,我提供了出错的代码。在第二个代码段中,提供了最少的信息,以使每个人都知道情况。在最后一个代码段中,我提供了要更改g的下拉列表当下拉列表选择发生更改时查看地图---@geocodezip没有HTML/CSS或数据样本可供第二个函数复制您的问题(或地图)。你可能不需要AJAX作为一个简单的例子。@Cairo henrique感谢你的帮助,并提醒我必须编写城市变化函数的代码——lolI仍然没有从这个社区的任何成员那里得到任何满意的答案。.等待有人帮助我,因为我对java脚本、jquery和AJAX还不熟悉
$("#City").change(function () {
$("#Locality").empty();
$.ajax({
type: 'POST',
url: '@Url.Action("LoadLocalities","Project")',
dataType: 'json',
data: { id: $("#City").val() },
success: function (localities) {
$.each(localities, function (i, locality) {
$("#Locality").append('<option value="' + locality.Value + '">' +
locality.Text + '</option>');
});
},
error: function (ex) {
alert('Failed to retreive Locality.' + ex);
}
});
return false;
})
});
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(28.713956, 77.006653);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var marker = new google.maps.Marker({
draggable: true,
animation:google.maps.Animation.BOUNCE,
position: myLatlng,
map: map,
title: "Project location"
});
google.maps.event.addListener(marker, 'dragend', function (event) {
//document.getElementById("lat").value = event.latLng.lat();
//document.getElementById("long").value = event.latLng.lng();
document.getElementById("Geolongitude").value = event.latLng.lng();
document.getElementById("Geolatitude").value = event.latLng.lat();
});
google.maps.event.addListener(marker, 'click', function () {
map.setZoom(9);
map.setCenter(marker.getPosition());
});
}
google.maps.event.addDomListener(window, "load", initialize);
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
@Html.ValidationSummary(true)
<fieldset>
<legend>Enter the Project Details</legend>
<div class="editor-label">
@Html.LabelFor(model => model.City)
</div>
<div class="editor-field">
@if (ViewData.ContainsKey("City")){
@Html.DropDownListFor(model => model.City, ViewData["City"] as List<SelectListItem>, new { style = "width:250px", @class = "DropDown1"}) @Html.ValidationMessageFor(model => model.City)
}
</div>
<div class="editor-label">
@Html.LabelFor(model => model.Locality)
</div>
<div class="editor-field">
@Html.DropDownList("Locality", new SelectList(string.Empty,"Value","Text"),"Please Select a locality", new { style = "width:250px", @class = "DropDown1" })
var mapOptions = {
zoom: 12,
center: new google.maps.LatLng(-27.793949,-52.348643),
mapTypeId: google.maps.MapTypeId.ROADMAP };
// Save map as global variable.
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
// Catch center;
center = map.getCenter();
// .. insert your code here to change center object lat/long
// center.lat = -50.00 ( I do not remember the atribute name )
map.setCenter(center);