- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在做一个项目,现在我无法再继续下去了,需要一些认真的帮助。让我给你一些背景知识。
我正在开发一项服务,让用户骑自行车去来自多个起点的同一目的地协调他们的游乐设施。 我们设计的部分工作流程让用户使用谷歌地图服务;他们输入起始目的地,谷歌创建它认为可行的路线,然后用户可以通过以下方式定制该路线拖动点以满足他们的特定需求。我们有这个接口(interface)开发并在以下位置很好地工作:
http://ridestreaming.com/google_maps/
我遇到了无法逾越的障碍是如何让用户编辑离开谷歌地图并保存在数据库中以备将来使用引用。似乎我们有一种方法可以在我们的Javascript,在此文件中(第 344-352 行):
http://ridestreaming.com/google_maps/workflow.js
var newString = JSON.stringify(directions);
//set up area to place drop directionsResponse object string
var directions_response_panel = document.getElementById("directions_response");
//dump any contents in directions_response_panel
directions_response_panel.innerHTML = "";
//add JSON string to it
directions_response_panel.innerHTML = "<pre>" + newString + "</pre>";
//run the ajax
runAjax(directions);
我们可以将路由数据作为 JSON 文件取出,将其字符串化,然后发送它通过 AJAX 到我们打算处理它并存储它的 PHP 文件在 MySQL 中。但是,从 Google map 返回的 JSON 出现畸形; PHP 在尝试对其进行解码时吓坏了,我跑了它通过在线验证器确认其畸形。这是在这一点上,我们完全感到困惑,不知道如何前进。
是否有人可以协助解决此问题?我正要用头撞墙。非常感谢任何回应。感谢您的宝贵时间!
最佳答案
我一直在做类似的事情,发现这真的很困难,但是经过几个小时的努力,我设法从用户拖动的 route 获取所有航路点并将其保存到数据库中..
所以,我有一个字段,其中包含用“;”分隔的所有航路点。
你必须有这个:
directionsDisplay = new google.maps.DirectionsRenderer({
'map': map,
'preserveViewport': true,
'draggable': true
});
在你的初始化函数中
这是我的 JS 的一部分:
var currentDirections;
var directionsDisplay;
var waypoints = [];
function saveWaypoints()
{
waypoints = [];
var waypts_field = document.getElementById('waypoints').value.split(';');
for(var bo = 0; bo < waypts_field.length; bo++)
{
if(waypts_field[bo] == ' ' || waypts_field[bo] == '')
{
waypts_field.splice(bo,1);
bo -= 1;
continue;
}
waypoints.push({ location: waypts_field[bo], stopover: false });
}
}
function getWaypoints()
{
currentDirections = directionsDisplay.getDirections();
var route = currentDirections.routes[0];
totalLegs = route.legs.length;
for (var i = 0; i < route.legs.length; i++) {
var routeSegment = i+1;
if(route.legs[i].via_waypoint[0] === undefined) continue;
document.getElementById('waypoints').value = '';
var via_waypoint_count = route.legs[i].via_waypoint.length;
queue = 0;
for(var bi = 0; bi < via_waypoint_count; bi++)
{
var count = 0;
var lat;
var lng;
for (key in route.legs[i].via_waypoint[bi]['location'])
{
if(count > 1) break;
if(count == 0)
{
lat = route.legs[i].via_waypoint[bi]['location'][key];
count++;
continue;
}
lng = route.legs[i].via_waypoint[bi]['location'][key];
count++;
}
reverseGeoCode(new google.maps.LatLng(lat,lng));
}
}
}
function reverseGeoCode(latlng)
{
queue += 60;
setTimeout(function(){
geocoder.geocode({ 'latLng': latlng }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
document.getElementById('waypoints').value += results[1].formatted_address + '; ';
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}, queue * 10);
}
我很快就把它从我的 JS 中删除了,所以如果它没有意义,我会发布我所有的 JS 并一点一点地解释它..
谢谢
关于php - 从谷歌地图中获取拖动的路线数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5160126/
我有两种类型的路由 Public 和 Private。 只有用户登录后才能访问所有私有(private)路由: return tokenService.token ? ( <>
我已按照 Laravel 5.5 文档在我们的应用程序上要求、安装和配置 Laravel Passport。我们仅使用密码授予功能,因为我们不打算将其用作社交登录工具。但是,按照所有说明操作后,我在尝
我想设置事件菜单项的样式,为此我需要将当前 url 与路由进行比较。我知道我可以在 javascript 中做到这一点,但我想知道其他人是如何解决这个问题的。 有什么建议么? 伪代码: My Page
我正在尝试在浏览器上以图形方式显示路径/路线以供客户查看。例如,基于 txt 或 XML 文件,包含说明。 4 90 5 90 2 或 F4,L90,F5,L90,F2 相当于
我创建了一个中间件来阻止我的 laravel 应用程序中的某些路由,但不起作用,无法弄清楚我做错了什么,这是我的代码: ps:我使用的是 laravel 5.2 路线: Route::get('sec
我正在使用 Java 工作。给定一个矩阵 NxM,我需要找到通过该数组的所有可能路径。只允许斜向上或斜向下,或向右斜行。 4x4 矩阵示例: 3 5 7 9 2 4 6 8 9 3 7
我是 Marionette 新手,只是找不到上类路线。 我正在使用 Marionette 的 2.4.1 版本,并尝试以最简单的方式进行操作,以便它能够正常工作。 此代码适用于旧版本的 Marione
我是 AngularJS 的新手。我正在尝试从这个网站( https://docs.angularjs.org/tutorial/step_07 )学习 AngularJS。我的代码如下 index.
我在 yandexmapkit-android 项目上工作。图书馆链接是 https://github.com/yandexmobile/yandexmapkit-android 文档非常薄弱,git
我正在阅读有关 Angular 路由的文档并创建了一个简单的测试: const routes: Route[] = [ { path: '', redirectTo: '/home', pat
我正在开发一项服务 (spring-boot),它获取一个 ID 列表,一个一个地从数据库中获取对象,将这些对象聚合成批处理,然后将它们保存在其他地方。目前,聚合后的批量大小约为 50 个对象,大约每
我正在制作一个网站,在用户登录后,用户将被重定向到主页。网站的主页和所有其他页面只能由登录用户访问,但即使在用户登录后(firebase auth),网站的其余部分( protected 路由)仍然无
我有一个惰性模块,我希望在桌面和移动设备上有不同的体验。基本上我想要我的桌面布局如下: Component1 显示一个列表,用户在列表中选择一个项目,component2 将显示详细信息。我创建了名为
我是 Angular 的新手,我正在尝试让我的路由器工作。基本上我在 / 有一个主页,其中有一个到 /courses 的路由器链接,它运行良好,但是当我重新加载 /courses 时(或输入地址in)
完整的 Mojolicious 应用程序有 routes将转储应用程序路由的命令: script/my_app.pl routes 我如何从 Lite 的测试脚本中做同样的事情应用? use Mojo
我有一个 Camel 2.13.1 应用程序,它使用我通过 CXF 组件访问的外部 Web 服务。我使用 Spring XML 路由元素的 startupOrder 属性来确保在我设置为在启动时调用一
我们有一个在 Karaf 2.4.3 和 Camel 2.15.3 上运行的数据处理应用程序。 在这个应用程序中,我们有一堆导入数据的路由。我们有一个管理 View ,其中列出了这些路由以及每条路由的
我正在尝试组合一个应用程序,我可以在其中查询谷歌路线服务,存储结果以建立缓存,然后根据需要呈现路线。 我可以取回方向数据并将其存储在数据库中就好了,这一切都很好,现在当我在 map 上渲染方向时,我的
我根据 Ryan Bates 的 railscast 使用设计登录创建了一个新项目. 它没有注册路线(与我之前制作的项目不同,步骤完全相同) This image显示了两个“rake 路由”命令。顶
我发现 Google Maps API 通过以下方式支持路线: var map; var directionsPanel; var directions; function initialize()
我是一名优秀的程序员,十分优秀!