iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 9
0

今天我來講說一下JS的部分

<script src="http://maps.google.com/maps?file=api&v=2&key=API_KEY" type="text/javascript"></script>

這一段就是要套用googlemap API所需要的套件
其中API_KEY就是要打上自己申請來的金鑰

        var geocoder;
        var map;
        var address = "@ViewBag.Gmap";

這一部分是宣告變數
那address的部分就是使用controller 傳進來的地址

 public ActionResult CompanyDetail(EmployerCompany emp, int id)
        {
            JobNameID jnd = new JobNameID(id);
            ViewBag.Gmap = db.EmployerCompany.Find(job.GetById(id).CompanyID).CompanyAdress.ToString();
            ViewBag.job = jnd;

            return View(_Emp.GetById(job.GetById(id).CompanyID));
        }

這邊就是我controller的部分(這是我學生時期的專案,獻醜了= =
大家可以看到ViewBag.Gmap
是用LinQ語法
從DB撈action的地址
對了大家一定會很疑惑
為什麼

var address = "@ViewBag.Gmap";

@ViewBag.Gmap這個東西要加""
這是因為傳進地址的要求
不然它傳進來會變成純文字
而不是字串(當初我就有在這邊卡關,卡了很久= =

        map=new GMap2(document.getElementById("map"));
        map.addControl(new GLargeMapControl());
        map.addControl(new GMapTypeControl());
        geocoder=new GClientGeocoder();
        
        geocoder.getLocations(address,addtoMap);

        function addtoMap(response){
            place=response.Placemark[0];
            point = new GLatLng(place.Point.coordinates[1],place.Point.coordinates[0]);
            map.setCenter(point, 13);
            marker = new GMarker(point);
            map.addOverlay(marker);
            marker.openInfoWindow(place.address);
        }

這邊就都是google API內的方法
GMap2:就是定位網頁上位置(要設置大小
給大家看一下它的HTML

            <div class="form-group">
                @Html.LabelFor(e => e.CompanyAdress, new { @class = "col-lg-2 control-label" })
                <div class="col-lg-10" id="map" style="width:600px;height:400px">
                </div>
            </div>

getLocations:就是抓取實際地理位置,並以google map顯示在網頁上

下面就是我完工的圖
給大家看看
那時候還沒套值,所以東西是寫死的= =
https://ithelp.ithome.com.tw/upload/images/20181009/2010703896x3IAP8C3.png

但上面程式是動態的,所以有興趣的話可以自己回家時做看看

哈哈
那我們明天見囉


上一篇
DAY 8 Google Map Api體驗(一)
下一篇
DAY 10 Google API 討論
系列文
程式翻轉-API學習從無到有(有嗎?)12

尚未有邦友留言

立即登入留言