2012-06-10 2 views
0

Google지도에서 새로 왔으며 Google지도보기를 데이터베이스에 저장해야합니다 (long + lat + zoom). MVC를 알고 있지만 뷰에 표시 될 때 Google지도보기 정보 (long + Lat + zoom)를 얻는 방법을 모르겠습니다.mvc에서 SQL에 대한 GoogleMap보기 저장 및 검색

데이터베이스에서 데이터를 검색 할 때 Google지도의보기를 면도기 뷰로 변경하려면 어떻게해야합니까?

일부 도움말을 포함한 모든 도움은 매우 감사하겠습니다.

내가 생각하고있는 한 가지 방법은 사용자가지도에서 놀고 Google지도보기를 변경할 때 값이 변경되는 숨겨진 입력 3 개를 만드는 것입니다. 하지만 JS와 Google Map을 사용하여이 작업을 수행하는 방법을 알지 못합니다.

답변

2

의 당신이 당신의 코드에서 모델 Map을 가지고있는 것처럼 매끄러운 가정 해 봅시다 :보기에

public class MapModel 
{ 
    /// <summary> 
    /// Lattitude on map 
    /// </summary> 
    public decimal Lat { get; set; } 

    /// <summary> 
    /// Longtidute on map 
    /// </summary> 
    public decimal Lon { get; set; } 

    /// <summary> 
    /// Map zoom level 
    /// </summary> 
    public int Zoom { get; set; } 
} 

장소 Google지도 스크립트

<head runat="server"> 
<title>Index</title> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 

    function initialize() 
    { 
    var mapDiv = document.getElementById('MapDiv'); 
    var map = new google.maps.Map(mapDiv, { 
     center: new google.maps.LatLng(<%= Model.Lat %>, <%= Model.Lon %>), 
     zoom: <%= Model.Zoom %>, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 

    google.maps.event.addListener(map, 'click', function(event) 
    { 
     // Puts coordinates to form (then pass to DB using Ajax, etc) 
     document.getElementById("Lat").value = event.latLng.lat(); 
     document.getElementById("Lon").value = event.latLng.lng(); 
     document.getElementById("Zoom").value = map.getZoom(); 
    }); 
    } 
    google.maps.event.addDomListener(window, 'load', initialize); 


<div id="MapDiv" style="width: 500px; height: 500px"></div> 
<input type="text" id="Lat" value="0" /><br /> 
<input type="text" id="Lon" value="0" /><br /> 
<input type="text" id="Zoom" value="0" /><br /> 
+0

감사합니다, 나는 복식으로 모델에 길고 위도 정의 할 수 ? 십진법은 내가 아는 한 돈을위한 것이다. – mans

+0

확실히 두 가지 용도로 사용하십시오. –