애셋을 추적하는 웹 애플리케이션을 만들고 데이터베이스를 사용하여 애셋의 위치를 표시해야합니다. 나는 그것에 대한 코드를 작성하고 잘 작동합니다. 이제 저는 200 ~ 2000m의 가변 반경 내에있는 자산을 보여줄 필요가 있습니다. 나는 변수 서클에 대한 코드를지도의 아무 위치에서 클릭 할 때 작성했으며, 어디에서든지 (코드는 두 개의 다른 페이지에 별도로 작성 됨) 끌 수 있습니다. 나는이 두 가지를 결합하는 데 도움이 필요하다. 나는 그렇게했으나 실패하고 혼란스러워했다. 도와주세요. 백엔드는 C#과 ASP.NET입니다. 다른 건 묻어주세요 !! 이이 드래그 원과지도의 아무 곳이나 클릭 마커를 보여줍니다 그리기 원 기능입니다 데이터베이스지도에 drawCircle을 결합하여 동시에 여러 마커를 표시하고 원 아래에 표시되는 마커를 표시합니다.
<script type="text/javascript">
var markers = [
<asp:Repeater ID="rptMarkers" runat="server">
<ItemTemplate>
{
"Name": '<%# Eval("AID") %>',
"lat": '<%# Eval("Current_Location_Y") %>',
"lng": '<%# Eval("Current_Location_X") %>',
"description": '<%# Eval("Description") %>',
"CCId": '<%# Eval("CCID") %>'
}
</ItemTemplate>
<SeparatorTemplate>
,
</SeparatorTemplate>
</asp:Repeater >
];
</script>
<script type="text/javascript">
window.onload = function initMap() {
var mapOptions = {
center: new google.maps.LatLng(markers[0].lat, markers[0].lng),
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP ,
navigationControl: true
};
var infoWindow = new google.maps.InfoWindow/*()*/;
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
for (i = 0; i < markers.length; i++) {
var data = markers[i]
var myLatlng = new google.maps.LatLng(data.lat, data.lng);
switch (data.CCId) {
case "1":
icon = "images/red-dot.png";
break;
case "3":
icon = "images/yellow-dot.png";
break;
case "2":
icon = "images/green-dot.png";
break;
default:
icon = "images/Google Maps Markers/red_markerC.png";
}
var marker = new google.maps.Marker({
position: myLatlng,
map: map,
draggable: true,
title: data.title
});
(function (marker, data) {
google.maps.event.addListener(marker, "click", function (e) {
infoWindow.setContent(data.Name);
infoWindow.open(map, marker);
});
})(marker, data);
}
}
</script>
에서 마커를 플로팅 코드입니다.
<script>
var map;
var circle;
var marker;
var currentlatlng;
function setLatLongValue() {
jQuery('#txtPointA1').val(currentlatlng.lat()); //#txtPointA1
jQuery('#txtPointA2').val(currentlatlng.lng());
}
function loadMap() {
currentlatlng = new google.maps.LatLng(23.06368, 72.53135);
map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
center: currentlatlng,
mapTypeId: 'terrain',
mapTypeControl: true,
navigationControl: true
});
google.maps.event.addDomListener(map, 'click', function (e) {
currentlatlng = e.latLng;
if (currentlatlng) {
map.panTo(currentlatlng);
setLatLongValue();
setMarker();
}
});
}
function drawCircle() {
if (circle != undefined)
circle.setMap(null);
var radius = 200;
if (jQuery('#txtPointB1').val() != '' && !isNaN(jQuery('#txtPointB1').val()) && parseInt(jQuery('#txtPointB1').val()) > 0) {
radius = parseInt(jQuery('#txtPointB1').val());
}
jQuery('#txtPointB1').val(radius.toString());
var options = {
strokeColor: '#800000',
strokeOpacity: 1.0,
strokeWeight: 1,
fillColor: '#C64D45',
fillOpacity: 0.5,
map: map,
center: currentlatlng,
radius: radius
};
circle = new google.maps.Circle(options);
}
function setMarker() {
if (marker != undefined)
marker.setMap(null);
marker = new google.maps.Marker({
position: currentlatlng,
draggable: true,
map: map
});
if (marker) {
google.maps.event.addDomListener(marker, "dragend", function() {
currentlatlng = marker.getPosition();
setLatLongValue();
drawCircle();
});
drawCircle();
}
}
</script>
<script type="text/javascript" >
$(window).load(function() {
loadMap();
});
</script>
이것은 굉장하지만 개별적으로 할 수는 있지만 함께 할 수는 없습니다. 코드의 변경 사항은 무엇입니까? 도와주세요. – ARUS
놀라운! 반드시 이것을 시도 할 것이다. – ARUS
나는 그것을 시험해 보았다! 감사 – ARUS