Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过在下拉列表中更改城市名称更改谷歌地图_Javascript_Jquery_Google Maps - Fatal编程技术网

Javascript 通过在下拉列表中更改城市名称更改谷歌地图

Javascript 通过在下拉列表中更改城市名称更改谷歌地图,javascript,jquery,google-maps,Javascript,Jquery,Google Maps,我在city.js文件中包含了特定于城市的纬度和经度,我从该文件中获取了城市的内容 现在,我想将这些信息传递到我的javaScript代码中,以便通过更改城市名称来更改地图 我尝试过这样的事情,但没有成功----- 这里city.js是一个java脚本文件--- 我的下拉列表可以随着城市名称的改变而改变地区名称,现在,我只想随着城市名称在下拉列表中的改变而改变谷歌地图——我的工作代码如下---- 我的表格有两个这样的下拉列表--- @使用(Html.BeginForm()) { @Html.A

我在city.js文件中包含了特定于城市的纬度和经度,我从该文件中获取了城市的内容

现在,我想将这些信息传递到我的javaScript代码中,以便通过更改城市名称来更改地图

我尝试过这样的事情,但没有成功-----

这里city.js是一个java脚本文件---

我的下拉列表可以随着城市名称的改变而改变地区名称,现在,我只想随着城市名称在下拉列表中的改变而改变谷歌地图——我的工作代码如下----

我的表格有两个这样的下拉列表---

@使用(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);