我正在使用Google Maps JavaScript API V3,官方示例总是包含此元标记:
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
Run Code Online (Sandbox Code Playgroud)
我见过的大多数第三方例子都是这样做的.我写了一个使用它的插件,我的一个用户告诉我,这使他无法放大和移出他的移动设备.我没有要测试的移动设备,我的搜索都没有显示任何有用的信息.
那么,标签的重点是什么?我应该留下吗?我应该尝试检测浏览器代理并仅显示桌面浏览器吗?
我将使用其他jQuery工具提示插件而不是Google Maps API的默认信息窗口.所以我需要得到标记的DIV及其像素位置.
但无法得到它,因为某些标记没有id或class.只有我可以从标记对象和未记录的pixelBounds对象访问地图画布div.
==追加:
我也试过下面的代码,但滚动地图时它没有改变.
var marker = new google.maps.Marker({...});
google.maps.event.addListener(marker, 'click', function() {
var px = this.getMap().getProjection().fromLatLngToPoint(this.getPosition());
console.log("(" + px.x + "," + px.y + ")");
});
Run Code Online (Sandbox Code Playgroud) 使用Maps API v3.根据Google文档,如果以编程方式调整地图容器的大小,则必须手动触发地图调整大小事件.
调整事件大小:当div更改大小时,开发人员应在地图上触发此事件.
因此我使用:
google.maps.event.trigger(map, 'resize');
Run Code Online (Sandbox Code Playgroud)
我应该使用哪个监听器来根据调整大小的地图容器的新边界更新我的标记?
google.maps.event.addListener(map, 'resize', function() {
console.log(map.getBounds());
});
Run Code Online (Sandbox Code Playgroud)
上面仍然显示调整大小之前的界限.
如果我有一个点击事件连接到我的地图,然后我连接了一个 mousemove 事件,点击事件将不再起作用。我想没有人知道这件事吗?顺便说一下,这是在 3.4 版中。
作为一个简单的例子:
var map;
function initialize() {
var myLatlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: myLatlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
var secondClick = false;
var firstClick = false;
var firstClickLatLng;
var secondClickLatLng;
var lines = [];
google.maps.event.addListener(map, 'mousemove', function (event) {
redrawLine(event);
});
google.maps.event.addListener(map, 'click', function (event) {
if (!firstClick && !secondClick) {
firstClick = true;
firstClickLatLng = event.latLng;
}
else if (firstClick && !secondClick) {
secondClick …Run Code Online (Sandbox Code Playgroud) 使用V3 API编写代码.
function initialize ()
{
if (GBrowserIsCompatible())
{
var ch = new GLatLng (0,0);
var myOptions = {
zoom:7,
center: ch,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map"), myOptions);
directionsDisplay = new google.maps.DirectionsRenderer(map, document.getElementById("map"));
directionsDisplay.setMap(map);
}
}
Run Code Online (Sandbox Code Playgroud)
使用V2 API编写代码.
function initialize ()
{
if (GBrowserIsCompatible())
{
map = new GMap2 (document.getElementById("map"));
map.setCenter (new GLatLng(0,0),1 );
}
}
Run Code Online (Sandbox Code Playgroud)
V2 API代码完美运行,V3 API代码显示任何地图.我错过了什么意思?
编辑 修改V3代码如下,但仍然没有地图:
var chicago = new google.maps.LatLng (0, 0);
var myOptions = {
zoom:1,
center: chicago,
mapTypeId: google.maps.MapTypeId.ROADMAP
} …Run Code Online (Sandbox Code Playgroud) 我需要让我的谷歌地图V3整整一圈.我在它上面使用CSS3边框半径,但它只能在Firfox中正常工作,其他只是将它保留为矩形.以下是代码:
<div class="map mapCircle" style="position: relative; background-color: transparent; overflow: hidden;">
<div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%; z-index: 0;">
<div style="position: absolute; left: 0px; top: 0px; overflow: hidden; width: 100%; height: 100%;">
...
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
和CSS:
.map.mapCircle {
width: 476px;
height: 476px;
}
.mapCircle>div>div:first-child {
-moz-border-radius: 238px;
-webkit-border-radius: 238px;
border-radius: 238px;
}
Run Code Online (Sandbox Code Playgroud)
是的,我知道,我可以使用一些背景颜色的叠加图像.但真正的问题是背景不仅仅是色彩.它根据其内容而变化,通常是渐变.有没有办法让Chrome和其他基于wabkit的浏览器和Opera(我对IE没有任何希望)以与FF相同的方式呈现它?
UPD:刚刚在IE9中测试过,它呈现正常.webkit和Opera出了什么问题?
UPD 2:我使用OverZealous的andwer并发现它仅适用于Safari.Chrome仅断言PNG掩码,Opera根本不是webkit.需要更多的想法
我试图设置谷歌地方自动完成,以从最近的点排序结果.我有这样的代码......
var defaultPlace = new google.maps.LatLng(49.227463, 16.546097);
var optionsAuto = {
location: defaultPlace,
radius: 20000,
types: ['geocode'],
componentRestrictions: {
country: 'cz'
}
};
var autocomplete = new google.maps.places.Autocomplete( inputStart, optionsAuto );
Run Code Online (Sandbox Code Playgroud)
类型和组件限制很有效,但位置和半径似乎不起作用.
我正在寻找一个jQuery autoellipsis插件.(autoellipsis插件将...在多行文本的末尾添加.)
我知道这些插件:autoellipsis和dotdotdot.但是我的jQuery Mobile项目都很慢.
什么是最快的jQuery autoellipsis插件?
编辑:我必须在窗口调整大小事件上调用autoellipsis插件.
如何在标记工具提示的文本中插入换行符.我正在使用\n哪个似乎不起作用.
见下面的代码:
mark = new google.maps.Marker({
map: map,
position: center,
title:inspStates[i].name+ "\n"+"total: "+inspStates[i].totalInsp+ "\n"+ info,
zIndex:3
});
Run Code Online (Sandbox Code Playgroud) 我有一个大约10个值的数组,我想知道是否有任何方法使用JS或JQuery来添加最高的6个值并得到总数.
我试图通过在Bison文件中包含以下内容来使用mpz_tGMP库中的类型作为类型yylval:
%define api.value.type {mpz_t}
Run Code Online (Sandbox Code Playgroud)
我检查了生成的解析器并正确生成了该行typedef mpz_t YYSTYPE,YYSTYPE稍后用于创建yylval.
mpz_t被typdefed如typedef __mpz_struct mpz_t[1];在GMP头文件gmp.h.反过来,__mpz_struct是典型的
typedef struct
{
// struct members here - don't believe they're important
} __mpz_struct;
Run Code Online (Sandbox Code Playgroud)
Bison运行没有错误,但每当我尝试创建可执行文件时,我都会收到以下错误:
calc.tab.c:在函数'yyparse'中:
calc.tab.c:1148:12:错误:从类型'struct __mpz_struct*'分配类型'YYSTYPE'时出现不兼容的类型
*++ yyvsp = yylval;
yyvsp被定义为指向YYSTYPE.
知道怎么解决这个问题吗?
我使用Google Maps API V3.
我迁移我的网站GMap API V2 - > V3.但是因为我使用了clearOverlays()方法在V2中一次删除了一个现有对象,并且删除了一个在V3中单独废除的对象.
V2
map.clearOverlays();
Run Code Online (Sandbox Code Playgroud)
V3
map.set_visible(false);
popup.close();
Run Code Online (Sandbox Code Playgroud)
好吗?或其他解决方案?
我有一个html表单,用于在我的数据中添加新位置,
我希望用户添加标记并删除最后一个标记,
我找到了这个代码,但它添加了多个标记
如何删除最后一个?
因为我只需要一个标记?这是http://saudi-hotels.info/add_hotel.php形式的演示
<script type="text/javascript">
var map;
function mapa()
{
var opts = {'center': new google.maps.LatLng(26.12295, -80.17122),
'zoom':11, 'mapTypeId': google.maps.MapTypeId.ROADMAP }
map = new google.maps.Map(document.getElementById('mapdiv'),opts);
google.maps.event.addListener(map,'click',function(event) {
document.getElementById('long').value = event.latLng.lng();
document.getElementById('lat').value = event.latLng.lat();
marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(event.latLng.lat(),event.latLng.lng()),
});
}
);
}
</script>
Run Code Online (Sandbox Code Playgroud)
请帮我 ,