- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我即将开始为企业设计商店定位器。我有几个关于最佳路线的问题。主要问题位于粗体。
将有两列,1 列是 map 本身,1 列是当前位于 map View 中的所有商店的列表。我希望将要加载的谷歌地图放大到美国 map 上,并在其中有商店的州周围使用多边形。多边形不需要动态加载,它们可以从这个列表中手动编辑:Geo Boundaries
有什么函数或方法可以推荐我使用,只需查看当前 View 中的哪些标记,即可动态确定要在第 2 列中显示哪些标记/商店信息?例如,假设美国 map 已加载,2 个州(密歇根州和弗洛里亚州)上有多边形。每个密歇根州和佛罗里达州的经销商都位于右侧。如果此人单击密歇根的多边形,则 map 将放大位于密歇根的所有标记,并且该列仅更新为密歇根标记。如果客户端再次放大到南密歇根州,则只有当前仍在 View 中的标记会显示在该列上。
我的第二个问题是,商店将具有某些“属性”,我希望为 map 提供某种过滤系统。可以说,如果商店说西类牙语,或者如果他们在维修中心,就可以对其进行分类。如果选中“只说西类牙语的商店”,那么所有不说西类牙语的商店都将被卸载(或者它会刷新只有说西类牙语的商店)。与 sprint 的网站非常相似:Sprints Store Locator (但是,我正在寻找 AJAX 解决方案)编辑:更好的是 ace 硬件:AceHardware Locator 是否有一种内置方法具有过滤标记匹配的功能,或者您建议采用什么方法来实现这一点?
请注意:我想避免使用任何数据库,因为本网站的其他任何地方都不需要数据库,而且仅仅为了这个功能而运行 MySQL 似乎很浪费。我宁愿避免长时间存放。纬度。在文件中,但如果需要我可以这样做。商店不会经常改变,我不需要使用 GeoLocating 来获取纬度。长的。通过地址。
Jquery 会默认加载所以我想知道是否使用这个插件: http://googlemaps.mayzes.org/ 是否推荐。据我了解,他使用的是 google maps v2,而 v3 更高级,更易于处理。
具有我正在寻找的任何或所有功能的网站的任何示例/链接都会有所帮助。
最佳答案
这是一个按州过滤商店的解决方案。您将需要实现语言或其他过滤选项,但通用结构就在那里。基本思想是将所有商店数据保存在一个数组中,如果不符合过滤条件,则只需将标记映射设置为 null。我对州名称使用了文本匹配——如果你真的想花哨的话,你可以检查点击是否发生在多边形边界内。
我使用 jQuery 加载和处理状态 xml 数据(以及显示商店列表),因此您需要确保将数据存储在与脚本相同的服务器上。
<html>
<head>
<script type="text/javascript" src= "http://maps.google.com/maps/api/js?sensor=false">
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript">
</script>
<script>
var map;
var stores;
var options = {
currState: ""
}
//sample stores data - marker Obj will store reference to marker object on the map for that store
stores = [{
"name": "store1",
"lat": "37.9069",
"lng": "-122.0792",
"state": "California",
"languages": ["Spanish", "English"],
"markerObj": ""
}, {
"name": "store2",
"lat": "37.7703",
"lng": "-122.4212",
"state": "California",
"languages": ["English"],
"markerObj": ""
}, {
"name": "store3",
"lat": "39.251",
"lng": "-105.0051",
"state": "Colorado",
"markerObj": ""
}]
function init(){
var latlng = new google.maps.LatLng(37.9069, -122.0792);
var myOptions = {
zoom: 4,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), myOptions);
showStates();
showStores();
}
function showStates(){
//load the XML for state boundaries and attach events
$.get("states.xml", function(data){
$(data).find("state").each(function(){
coord = [];
state = $(this).attr("name");
stateCol = $(this).attr("colour");
$(this).find("point").each(function(){
lat = $(this).attr("lat")
lng = $(this).attr("lng")
coord.push(new google.maps.LatLng(lat, lng));
})
//draw state poly
statePoly = new google.maps.Polygon({
paths: coord,
strokeColor: "#000000",
strokeOpacity: 0.8,
strokeWeight: 1,
fillColor: stateCol,
fillOpacity: 0.5
});
statePoly.setMap(map);
//attach click events to a poly
addListeners(state, statePoly, coord);
//attach click events to poly
})
})
}
function addListeners(state, poly, coord){
google.maps.event.addListener(poly, 'click', function(){
//zoom in to state level
bounds = new google.maps.LatLngBounds();
for (i = 0; i < coord.length; i++) {
bounds.extend(coord[i])
}
map.fitBounds(bounds);
//do store display and filtering
filterStoresByState(state);
});
}
function showStores(){
for (i = 0; i < stores.length; i++) {
var myLatlng = new google.maps.LatLng(stores[i].lat, stores[i].lng);
marker = new google.maps.Marker({
position: myLatlng,
map: map
});
//store the marker object for later use
stores[i].markerObj = marker;
//generate a list of stores
$(".stores").append("<li>" + stores[i].name + "-" + stores[i].state + "</li>")
}
}
//do the filtering - you will need to expand this if you want add additional filtering options
function filterStoresByState(state){
$(".stores").html("");
for (i = 0; i < stores.length; i++) {
if (stores[i].state != state) {
(stores[i].markerObj).setMap(null);
}
else {
(stores[i].markerObj).setMap(map)
$(".stores").append("<li>" + stores[i].name + "-" + stores[i].state + "</li>")
}
}
}
</script>
</head>
<body onload="init()">
<div id="map" style="width: 600px;height: 400px;">
</div>
<div>
<ul class="stores">
</ul>
</div>
</body>
关于javascript - 谷歌地图 : Store locator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3915938/
我正在尝试在 python 中编写正则表达式来查找目录路径:我的文本如下所示: text = "The public disk is: \\\\diskA\\FolderB\\SubFolderC\\
我想写一个LocationListener,它把最近最精确的位置作为它的位置。我打算在我的 LocationListener 中使用此代码: @Override public void
我想建立一个有光泽和 plotly 的交互式图表。 Shiny 有一个内置功能来获取有关用户交互的信息。比如:input$plot_click、input$plot_dblclick、input$pl
我正在使用 MobileFirst 提供的 WL.Device.Geo.acquirePosition(onGeoLocationSuccess, onGeoLocationFailure, opti
我最近开始使用 ionic 框架,它里面有 angular js。为了在屏幕之间导航,我使用了 $location.path 并且效果很好。但是,在我下载的一个示例中,我看到 $state.go 被用
谁能解释一下这种行为?我使用 history.pushState(null, null, '#test'); 推送历史状态。然后,当尝试使用console.log(window.location.ha
这里是相关代码: https://www.facebook.com/sharer/sharer.php?u={{$location.absUrl()}} https://www.facebook.c
这两个重定向之间有什么区别?我有一个应用程序,当我使用时,它可以在 chrome 和 android 4 上正常工作,但在 android 2.x.x 上不能正常工作 document.locatio
JavaScript 的区别是什么 window.location.href = window.location.href 和 window.location.reload() 功能? 最佳答案 如果
有什么区别 window.location.href="http://example.com"; window.location.replace("http://example.com"); wind
JavaScript 的区别是什么 window.location.href = window.location.href 和 window.location.reload() 功能? 最佳答案 如果
以下 3 个指令之间有区别吗? location ~* \.(png)$ { expires max; log_not_found off; } location ~ \.(png)$ {
位于正文末尾之前的以下脚本在 Internet Explorer 和 Chrome(以及任何其他浏览器)中都会被调用。但重定向到指定的 URL 仅发生在 IE 中。我还尝试了 window.locat
我正在使用 Angular ngRouter。我需要更改 url 路径以及搜索参数。我知道 $location.path 和 $location.search,但是有没有一个函数可以同时设置它们? 最
在angularjs中用$location和window.location哪个更好。 例如,我们可以使用$location.path() 或window.location.href 来完成同样的工作。
我在我的网站上使用上述 2 个命令。似乎它们对 95% 访问它应该触发的页面的人有效,但对其他人则不会。 有谁知道是否可以完全阻止这些 javascript 命令?我真的很头疼为什么它们有时不起作用。
这是我无法弄清楚的另一个错误。 我有这个类ExtendedLocation extends Location实例化时抛出 ClassCastExceptioncurrentGpsLocation =
我一直在尝试简单地将一个包含两个变量(一个字符串和一个位置)的类推送和读取到 firebase,但我一直收到此错误。 **com.google.firebase.database.DatabaseEx
我注意到 iPhone 上的“常用位置”似乎比监控 iOS 访问的应用程序 (https://developer.apple.com/reference/corelocation/clvisit) 使
在我的 javascript 代码中,在某些时候,我需要刷新窗口(用户上传了新图片但在页面中仍然可以看到它) 我想知道为什么 location.href = location.href 不刷新窗口?
我是一名优秀的程序员,十分优秀!