地图画线

<%@page language="java" contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="/struts-tags" prefix="s" %>
<%@ taglib prefix="c" uri="core"%>
<%@page import="com.jltour.common.framework.Java91Config"%>
<%@ page import="com.jltour.common.constant.OptionType"%>
<%@ page import="com.jltour.common.manager.OptionManager"%>
<%@ taglib uri="java91" prefix="java91" %>
<html>
<head>
<title>google地图操作</title>
<script language='javascript' charset='utf-8' src='/js/framework.js'></script>
<script language='javascript' charset='utf-8' src='/js/area.js'></script>
<script language='javascript' charset='utf-8' src='/js/areafun.js'></script>
<script language='javascript' charset='utf-8' src='/js/city.js'></script>
<script language='javascript' charset='utf-8' src='/js/Validation.js'></script>
<script src='http://maps.google.com/maps?file=api&v=2&key=<%=Java91Config.getGoogleMapKey() %>'></script>
<link rel="stylesheet" type="text/css" href="/style/google.css"/>
<script type="text/javascript">
var pointArray = new Array();
GMarker.prototype.setIndex=function(index)
{
this.index=index;
}
var map;//地图
var polygon;//线对象
var markers=[];//修建的markers
var crenterMarker;//当前的中心点对象
var isCenter =false;//是否是中心点
var myIcon=new GIcon(G_DEFAULT_ICON,"http://www.google.com/mapfiles/marker.png");//图像
function createMarker(point){
var marker=new GMarker(point,{icon:myIcon,draggable:true,bouncy:true});
var index=markers.length;
//document.getElementById("jingwei").innerHTML = document.getElementById("jingwei").innerHTML+"|"+index+":("+point.y + "," + point.x+")";
GEvent.addListener(marker,'dblclick',function(){//双击删除
deleteMarker(marker);
});
GEvent.addListener(marker,'dragstart',function(){//鼠标按下
marker.setImage("http://www.google.com/mapfiles/dd-start.png");
});
GEvent.addListener(marker,'dragend',function(){//鼠标防开
marker.setImage("http://www.google.com/mapfiles/marker.png");
});
GEvent.addListener(marker,'drag',function(){//重画
redrawPolygon();
changMarkerTable(index);
});
marker.setIndex(index);
markers[index]=marker;
map.addOverlay(marker);
redrawPolygon();
initTemplate(index,point.x,point.y);//初始化添加模版
addRow(index);//在表中添加行
}

function createCenterMarker(point){
if(point){
if(crenterMarker){
map.removeOverlay(crenterMarker);
var marker = new GMarker(point);
map.addOverlay(marker);
crenterMarker = marker;
changCenterMarkerTable(point);//修改值
addPolygon();
}else{
var marker = new GMarker(point);
map.addOverlay(marker);
crenterMarker = marker;
initTemplate(88,point.x,point.y)
addRow(88);//在表中添加行
addPolygon();
}
}

}

function deleteMarker(marker){
if(!confirm("您确认删除吗?"))return;
var index=marker.index;
map.removeOverlay(marker);
deleteMarkerTable(index);
for(var i=index;i<markers.length-1;i++){
markers[i+1].setIndex(i);
markers[i]=markers[i+1];
}
markers.length=markers.length-1;
redrawPolygon();
}
function load(){
if(GBrowserIsCompatible()){
map=new GMap2(document.getElementById("map"));
map.addControl(new GMapTypeControl());//地图类型 地图 卫星
map.addControl(new GLargeMapControl());//放大缩小
map.addControl(new GScaleControl());//比例尺
map.enableScrollWheelZoom(); //设置地图可以由鼠标滚轮控制缩放(默认是不会)。
var centerPoint=new GLatLng(22.542169,114.123402);
map.setCenter(centerPoint,16);
GEvent.addListener(map,'click',function(overlay,point){
if(isCenter){
if(overlay){
map.removeOverlay(overlay);
}else if(point){
createCenterMarker(point);
}
}else{
if(point){
createMarker(point);
}
}
});
}
}
function addPolygon(){
var points=[];
for(var i=0;i<markers.length;i++){
points[i]=markers[i].getPoint();
}
if(markers.length>0){
points[markers.length+1]=markers[0].getPoint();
}
polygon=new GPolygon(points,"#ff0000",2, 0.3, "#6666FF", 0.4);//顏色,線條的粗細,顏色透明度
map.addOverlay(polygon);
}
function removePolygon(){
polygon.remove();
polygon=null;
}
function redrawPolygon(){//重畫
if(polygon){
removePolygon();
}
addPolygon();
}

function showAddress(value,cityName){
if(isNullValue(value)){
return false;
}
if(isNullValue(cityName)){
alert("城市不能为空");
return false;
}
var adressInput =cityName+"市 ";
map.geocoder = new GClientGeocoder();
if (map.geocoder) {
map.geocoder.getLatLng(adressInput,function(point){
if (!point) {
alert("不能解析: " + adress);
} else {
map.setCenter(point,14);
var baseIconQuery =new GIcon(G_DEFAULT_ICON,"http://www.google.com/mapfiles/marker.png");//图像
var marker = new GMarker(point,{icon: baseIconQuery,draggable: true});
map.addOverlay(marker);
}
});
}
}


</script>
</head>
<body οnlοad="load()" οnunlοad="GUnload()">
<table width="100%" border="0" cellspacing="0" cellpadding="0" class="searchtable">
<tr>
<td><table width="100%">
<tr height="50" >
<td width="80px" align="right">常用城市:</td>
<td colspan="5" >
<!--深圳--><input type='radio' id="70002" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="70002" ><label for="70002" style="CURSOR:pointer">深圳</label>
<!--香港--><input type='radio' id="30000898" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="30000898" ><label for="30000898" style="CURSOR:pointer">香港</label>
<!--澳门--><input type='radio' id="70139" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="70139" ><label for="70139" style="CURSOR:pointer">澳门</label>
<!--广州--><input type='radio' id="70011" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="70011" ><label for="70011" style="CURSOR:pointer">广州</label>
<!--三亚--><input type='radio' id="70030" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="70030" ><label for="70030" style="CURSOR:pointer">三亚</label>
<!--北京--><input type='radio' id="70082" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="70082" ><label for="70082" style="CURSOR:pointer">北京</label>
<!--上海--><input type='radio' id="70058" style="CURSOR:pointer;" οnclick="cityChangAll(this.value);" name="commoncity" value="70058" ><label for="70058" style="CURSOR:pointer">上海</label>
     
<INPUT TYPE="hidden" id="city_id" value="" name="hotelQueryPara.city">
<INPUT size="10" TYPE="text" style="vertical-align:middle;color:#697268;" id="city_name" value="" onKeyDown="return suggest.display(this,event);" onClick="suggest.display(this,event);">
   
行政区:<select id=zone name="hotelQueryPara.zone" οnchange="javaScript:zoneChange(this.value);mapZoneChange(this);" style="width:80px" ></select>
商业区:<select id=bizzone name="hotelQueryPara.bizzone" style="width:80px" οnchange="mapBizzChange(this);"></select>
</td>
</tr>
<tr height="50" >
<td width="80px" align="right">设置中心点:</td>
<td colspan="5" >
<input type='radio' id='datetyped' style="CURSOR:pointer;" name="iscenter" value="1" οnclick="setIsCerter(this.value);"/><label for='datetyped' style='CURSOR:pointer;color:#697268'>是</label>
<input type='radio' id='datetypem' style="CURSOR:pointer;" name="iscenter" value="8" οnclick="setIsCerter(this.value);"/><label for='datetypem' style='CURSOR:pointer;color:#697268'>否</label>
</td>
</tr>
<tr>
<td colspan="6" align="right">
<input type="button" value="查 询" οnclick="submit2();" style="CURSOR:pointer;" > 
<input type="reset" value="重 置" style="CURSOR:pointer;" > 
<input type="button" value="隐 藏" οnclick="queryFormDiv();" style="CURSOR:pointer;" >  
</td>
</tr>
</table></td>
</tr>
<tr>
<td ><table width="100%" class="searchtableMap" border="0" cellspacing="0" cellpadding="0">
<tr valign="top">
<td width="800" style="border-right:1px #52A6C6 solid;">
<table width="100%">
<div id="map" style="width: 800px; height: 600px"></div>
</table>
</td>
<td valign="top">
<form name="editForm" action="common/commonAction!listLocalzonexySave.action" method="post" target="editIFrame">
<table width="100%" class="contentTAble" id="contentTable">
<tr>
<th width="40">序号</th>
<th width="30">类型</th>
<th width="130">经度</th>
<th width="130">纬度</th>
<th width="40">中心点

<input type="hidden" value="" name="countryid" />
<input type="hidden" value="" name="stateid" />
<input type="hidden" value="" name="cityid" />
<input type="hidden" value="1" name="types" />
<input type="hidden" value="" name="selectzoneid" />

<input type="hidden" value="" name="updateid" />
<input type="hidden" value="" name="deleteid" />
</th>
</tr>
<tr>
<th colspan="5" style="text-align:right;">
<input type="button" value="绘图完成" onClick="setMapLine(1);">
<input type="button" value="保 存" onClick="submit2()">
</th>
</tr>
</table>
</form>
</td>
</tr>
</table>
</td>
</tr>
</table>
<table id="add_template" style="display:none">
<tr>
<td width="30"><input type="text" style="width:100%;" value="" name="localzonexy.numbers" /></td>
</tr>
<tr>
<td><select name="localzonexy.type" ><%=OptionManager.generateOptionString(OptionType.localzonexytype)%></select></td>
</tr>
<tr>
<td><input style="width:100%;" type="text" value="" name="localzonexy.jingdu" /></td>
</tr>
<tr>
<td><input style="width:100%;" type="text" value="" name="localzonexy.weidu" /></td>
</tr>
<tr>
<td><select οnchange="setEdit(this);" name="localzonexy.iscenter" ><java91:genoption type="<%=OptionType.YesOrNo%>" code="8" /> </select></td>
</tr>
</table>

<table style="display: none">
<tr>
<td>
<iframe name="editIFrame" width="100%" height="800" border="0" frameborder="0"></iframe>
</td>
</tr>
</table>
</body>
<script type="text/javascript">

var mapLine=8;

function setMapLine(values){
mapLine = values;
}

function submit2(){

var table = id("contentTable");
if(table){
if(table.rows.length<=2){
alert("请绘图");
return;
}
}
if(validateByform("editForm")){
if(mapLine == 8){
alert("请点击确认绘图完成");
return;
}

var county= idname("countryid").value;
var statu = idname("stateid").value;
var city = idname("cityid").value;
var selectzone =idname("selectzoneid").value;
var types=idname("types").value;
if(isEmpty(county) || isEmpty(statu) || isEmpty(city) || isEmpty(types) || isEmpty(selectzone)){
alert(county+"|"+statu+"|"+city+"|"+selectzone+"|"+types);
alert("请选择诚市或区域");
return;
}

var iframe=id("editIFrame");
iframe.detachEvent("onload", getIframResult); //先移除事件
if (iframe.attachEvent){
iframe.attachEvent("onload", getIframResult);
} else {
iframe.onload = getIframResult;
}
mapLine=8;
editForm.submit();
}
}
function getIframResult(){
}

var suggest = new city_all();

var cityObj=id("city");
var zoneObj=id("zone");
var bizzoneObj=id("bizzone");

var cityValue="${hotel.city}";
var zoneValue="${hotel.zone}";
var bizzoneValue="${hotel.bizzone}";

function cityChange(a){
cityChangeHandle(a,zoneObj);
cityChangeHandle2(a,bizzoneObj);
id("city_id").value=a;

var stateid = getStateByCityId(a);
var countryid = getCountryByStateId(stateid);
setvalue("cityid",a);
setvalue("countryid",countryid);
setvalue("stateid",stateid);
var cityNames = getCityNameByCityId(a);
showAddress(cityNames,cityNames);
}
//城市改变下拉也改变
function cityChangAll(a){
cityChangeHandle(a,zoneObj);
id("city_id").value=a;
name("cityid").value = a;//改变
var cityNames = getCityNameByCityId(a);
if(!isNullValue(cityNames)){
id("city_name").value=cityNames;
}
var stateid = getStateByCityId(a);
var countryid = getCountryByStateId(stateid);
setvalue("countryid",countryid);
setvalue("stateid",stateid);
}

function mapZoneChange(zoneObj){
name("selectzoneid").value = zoneObj.value;
settypeTemplate(1);
}

function mapBizzChange(bizzObj){
name("selectzoneid").value = bizzObj.value;
settypeTemplate(2);
}
function settypeTemplate(values){
var tables = id("add_template");
if(tables){
setSelectedByObj(tables.rows[1].firstChild.firstChild,values);
//alert(tables.rows[0].cells[1].firstChild.innerHTML);
}
}

function zoneChange(a){
zoneChangeHandle(a,bizzoneObj);
}

function addRow(index){
var table=id("contentTable");
var templateTable=id("add_template");
var newTr=table.insertRow(table.rows.length-1);
var cells=[];
var columnNum=table.rows[0].cells.length;
//newTr.id=index+1;
newTr.name=index+1;
for (var i=0;i<columnNum;i++ ){
cells[i]=newTr.insertCell(i);
cells[i].innerHTML=templateTable.rows[i].firstChild.innerHTML;
}
}
//初始化添加模版
function initTemplate(nos,jindu,weidu){
var templateTable=id("add_template");
templateTable.rows[0].firstChild.firstChild.value= nos+1;//序号
templateTable.rows[2].firstChild.firstChild.value= jindu;//经度
templateTable.rows[3].firstChild.firstChild.value= weidu;//纬度
}

function changMarkerTable(index){
var table = id("contentTable");
var trObj = null;
for(var i=0;i<table.rows.length;i++){
trObj = table.rows[i];
if(trObj.name){
if(trObj.name == index+1){
var point = markers[index].getPoint();
if(point){
trObj.cells[2].firstChild.value = point.x;
trObj.cells[3].firstChild.value = point.y;
}
continue;
}
}
}
}

function changCenterMarkerTable(point){
var table = id("contentTable");
var trObj = null;
for(var i=0;i<table.rows.length;i++){
trObj = table.rows[i];
if(trObj.name){
if(trObj.name == 89){
if(point){
trObj.cells[2].firstChild.value = point.x;
trObj.cells[3].firstChild.value = point.y;
}
continue;
}
}
}
}

function deleteMarkerTable(index){
var table = id("contentTable");
var trObj = null;
for(var i=0;i<table.rows.length;i++){
trObj = table.rows[i];
if(trObj.name){
if(trObj.name == index+1){
table.deleteRow(index+1);
changeMarkerTableIndex(index+1);
continue;
}
}
}

}
function changeMarkerTableIndex(index){
var table = id("contentTable");
var trObj = null;
for(var i=0;i<table.rows.length;i++){
trObj = table.rows[i];
if(trObj.name){
if(trObj.name >= index){
trObj.name = i;
trObj.firstChild.firstChild.value= i;//
}
}
}
}

function setIsCerter(values){
var table = id("add_template");
if(table){
setSelectedByObj(table.rows[4].firstChild.firstChild,values);
if(1 == values){
isCenter = true;
}else{
isCenter = false;
}
}
}

</script>
</html>
Vue是一种流行的JavaScript框架,用于构建用户界面。而高德地图是一种基于Web的地图服务,提供了丰富的地图展示和地理信息处理功能。在Vue中使用高德地图画线可以通过以下步骤实现: 1. 首先,在Vue项目中引入高德地图的JavaScript API。可以通过在HTML文件中添加`<script>`标签引入高德地图的API,或者使用npm安装相应的包。 2. 在Vue组件中创建一个地图容器,可以使用`<div>`标签来创建一个具有唯一ID的容器。 3. 在Vue组件的`mounted`生命周期钩子函数中初始化地图对象。可以使用`new AMap.Map()`来创建一个地图对象,并将其绑定到之前创建的容器上。 4. 使用高德地图提供的API来绘制线条。可以使用`AMap.Polyline`类来创建一个折线对象,并设置其路径、样式等属性。然后将折线对象添加到地图上,即可在地图上显示出线条。 下面是一个简单的示例代码: ```vue <template> <div id="mapContainer"></div> </template> <script> export default { mounted() { // 初始化地图对象 const map = new AMap.Map('mapContainer', { zoom: 13, center: [116.397428, 39.90923] }); // 创建折线对象 const polyline = new AMap.Polyline({ path: [ [116.368904, 39.913423], [116.382122, 39.901176], [116.387271, 39.912501], [116.398258, 39.904600] ], strokeColor: '#FF0000', strokeWeight: 6 }); // 将折线对象添加到地图上 map.add(polyline); } } </script> ``` 这样,当该Vue组件被渲染时,就会在地图容器中显示出一条红色的折线
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值