如何拖动';分区';元素,将其更改为';标记器';。。使用jquery
这是我的代码:如何拖动';分区';元素,将其更改为';标记器';。。使用jquery,jquery,iphone,google-maps,drag,Jquery,Iphone,Google Maps,Drag,这是我的代码: <!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head> <meta http-equiv="Content-Type" content="tex
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
</head>
<body onload="initialize()" onunload="GUnload()">
<style type="text/css">
</style>
<div id="map_canvas" style="width: 500px; height: 300px;float:left;"></div>
<div id=b style="width: 50px; height: 50px;background:red;float:left;margin-left:300px;"></div>
<script src="jquery-1.4.2.js" type="text/javascript"></script>
<script src="jquery-ui-1.8rc3.custom.min.js" type="text/javascript"></script>
<script src="http://ditu.google.cn/maps?file=api&v=2&key=ABQIAAAA-7cuV3vqp7w6zUNiN_F4uBRi_j0U6kJrkFvY4-OX2XYmEAa76BSNz0ifabgugotzJgrxyodPDmheRA&sensor=false"type="text/javascript"></script>
<script type="text/javascript">
//**********
function initialize() {
if (GBrowserIsCompatible()) {
//
function createMarker(point, number) {
var marker = new GMarker(point);
var message = ["这","是","个","秘密","消息"];
marker.value = number;
GEvent.addListener(marker, "click", function() {
var myHtml = "<b>#" + number + "</b><br/>" + message[number -1];
map.openInfoWindowHtml(point, myHtml);
});
return marker;
}
//
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(39.9493, 116.3975), 13);
// Add 5 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 5; i++) {
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
map.addOverlay(createMarker(point, i + 1));
}
}
}
//*************
$("#b").draggable();
</script>
</body>
</html>
//**********
函数初始化(){
if(GBrowserIsCompatible()){
//
函数createMarker(点、数字){
var标记=新的GMarker(点);
var消息=[”这","是","个","秘密","消息"];
marker.value=数字;
addListener(标记“单击”,函数(){
var myHtml=“#”+number+”
“+message[number-1];
openInfoWindowHtml(point,myHtml);
});
返回标记;
}
//
var map=newgmap2(document.getElementById(“map_canvas”);
赛特中心地图(新格拉特林(39.9493116.3975),13);
//在地图的任意位置添加5个标记
var bounds=map.getBounds();
var soutwest=bounds.getsoutwest();
var northEast=bounds.getNorthEast();
var lngSpan=northEast.lng()-soutwest.lng();
var latSpan=northEast.lat()-soutwest.lat();
对于(变量i=0;i<5;i++){
var point=new GLatLng(soutwest.lat()+latSpan*Math.random(),
soutwest.lng()+lngSpan*Math.random());
addOverlay(createMarker(点,i+1));
}
}
}
//*************
$(“#b”).draggable();
要使其正常工作,您需要做以下几件事:
- 在可拖动元素上设置zIndex,使其显示在地图上方
- 在元素上设置revert标志,使其不会落在映射下
- 为stop事件添加一个处理程序,这样当用户在地图上删除元素时,您可以执行一些代码
- 从地图元素内部的偏移映射到地图边界左上角的经纬度偏移
$("#b").draggable({
zIndex: 2700,
revert: true,
revertDuration: 0,
stop: function(event, ui)
{
var dragOffset = ui.offset;
var mapOffset = $(".map").offset();
if (dragOffset.top > mapOffset.top &&
dragOffset.left > mapOffset.left &&
dragOffset.top < (mapOffset.top + $(".map").outerHeight()) &&
dragOffset.left < (mapOffset.left + $(".map").outerWidth ()))
{
// top left corner is inside the map div (you can finess this "inside map" check)
// add a marker at a random offset.
// you will need to do some additional work to map
// the page offset to lat/lng offset from the corner of the map
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
map.addOverlay(createMarker(point, i + 1));
}
}
});
$(“#b”).可拖动({
zIndex:2700,
回复:对,
持续时间:0,
停止:功能(事件、用户界面)
{
var dragOffset=ui.offset;
var mappoffset=$(“.map”).offset();
如果(dragOffset.top>mapOffset.top&&
dragOffset.left>mapOffset.left&&
dragOffset.top<(mapOffset.top+$(“.map”).outerHeight())&&
dragOffset.left<(mappoffset.left+$(“.map”).outerWidth())
{
//左上角位于地图分区内(您可以精细化此“内部地图”检查)
//在随机偏移处添加标记。
//你需要做一些额外的工作来绘制地图
//从地图角到lat/lng偏移的页面偏移
var point=new GLatLng(soutwest.lat()+latSpan*Math.random(),
soutwest.lng()+lngSpan*Math.random());
addOverlay(createMarker(点,i+1));
}
}
});
要使其正常工作,您需要做以下几件事:
- 在可拖动元素上设置zIndex,使其显示在地图上方
- 在元素上设置revert标志,使其不会落在映射下
- 为stop事件添加一个处理程序,这样当用户在地图上删除元素时,您可以执行一些代码
- 从地图元素内部的偏移映射到地图边界左上角的经纬度偏移
$("#b").draggable({
zIndex: 2700,
revert: true,
revertDuration: 0,
stop: function(event, ui)
{
var dragOffset = ui.offset;
var mapOffset = $(".map").offset();
if (dragOffset.top > mapOffset.top &&
dragOffset.left > mapOffset.left &&
dragOffset.top < (mapOffset.top + $(".map").outerHeight()) &&
dragOffset.left < (mapOffset.left + $(".map").outerWidth ()))
{
// top left corner is inside the map div (you can finess this "inside map" check)
// add a marker at a random offset.
// you will need to do some additional work to map
// the page offset to lat/lng offset from the corner of the map
var point = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
map.addOverlay(createMarker(point, i + 1));
}
}
});
$(“#b”).可拖动({
zIndex:2700,
回复:对,
持续时间:0,
停止:功能(事件、用户界面)
{
var dragOffset=ui.offset;
var mappoffset=$(“.map”).offset();
如果(dragOffset.top>mapOffset.top&&
dragOffset.left>mapOffset.left&&
dragOffset.top<(mapOffset.top+$(“.map”).outerHeight())&&
dragOffset.left<(mappoffset.left+$(“.map”).outerWidth())
{
//左上角位于地图分区内(您可以精细化此“内部地图”检查)
//在随机偏移处添加标记。
//你需要做一些额外的工作来绘制地图
//从地图角到lat/lng偏移的页面偏移
var point=new GLatLng(soutwest.lat()+latSpan*Math.random(),
soutwest.lng()+lngSpan*Math.random());
addOverlay(createMarker(点,i+1));
}
}
});