Post edits from QGIS to Open Street Map database - qgis

How can I post edits from QGIS to Open Street Map database?
Similar to JSOM interface which can extract the data form Open Street Map then edit the data and post the edits back to Open Street map.

Related

structured data is not showing in search

I Tested on Rich Results Test, this tool showing me proper preview of the data but, whenever I searched my site on google .it is not showing me a structure dat of the site ex(review, address, business name)

Is there a way to create an output form based on Google Sheets data?

What I want to make
Is this possible?
I'd like to create an output form that reads data from a Google Sheets spreadsheet. In the form, users would enter a few values (entering their name and some ID number, for example) and view the corresponding information in the connected spreadsheet but not any other information in the sheet. Something like an output form in Microsoft Access. I'm hoping there's a way to accomplish this in Google Sheets using existing tools and maybe some scripting.
More generally, though, any way to create this type of 'limited visibility' on a per-user basis for Google Sheets data would be useful. (The 'protect sheet' function in the menu doesn't accomplish this; see below.)
For reference, my specific use case at the moment is as a teacher and wanting a way for students to see specific information related to them from my student information spreadsheet but while not revealing other students' information. I would have a simple form where they enter a name and maybe some personalized code that I give them so they can see their attendance record or something else. For my purposes, I don't need the form to be extremely secure as none of the information is all that sensitive (although more secure is better), but I don't want to be just putting all the information there in front of them by giving them access to the entire sheet.
What I've tried so far
I made a new spreadsheet file with two sheets; one sheet was visible to function as a form, and the second sheet was not visible (which I accomplished via the 'protect' menu option). I used importrange() to read in the relevant data from my primary spreadsheet to the new spreadsheet's non-visible sheet. On the visible sheet, students entered their name from a drop-down and entered their student ID as validation. If the student's name and ID matched, the first sheet did a vlookup() to read in information from the protected sheet and some information from their student record.
Here's what I made, in case my description doesn't make sense: https://drive.google.com/open?id=1cHO2jzMh1mkXvlLh-M4eYqN7v11t95-GnfWqL5IwQ14&authuser=0
This had two problems, one small and one big.
The small problem was that every student could see the "form" sheet at the same time. If two students opened the spreadsheet at the same time they would see any information that the other student had entered. I handled this by writing a simple script to automatically reset the "form's" input cells after 20 seconds. Also, any time the form was opened by a new person, the "form's" output cells were erased. So, obviously not a brilliant solution, but for my purposes, this was mostly good enough.
The big problem was that Google's own preview viewer (built into Google Drive and the like) ignores protected ranges and sheets and displays the entire contents a spreadsheet. (Normally, protected sheets are not visible at all and don't appear in the list of sheets at the bottom of the screen unless the viewer has access to them.)
In my case this meant included the protected one that shouldn't have been visible at all, rendered as if it were a print preview, meaning the students were actually able to view all of the other students' data in one big table.
Are you familiar with Web Apps?
An Apps Script Web App allows you among others to output selected Google Document contents into a browser.
Hereby, you can use the method Session.getActiveUser() to obtain the email of the user and dynamically adjust the data the user is going to obtain in function of his email (BTW, you can also use Session.getActiveUser() in the spreadsheet, to detect the user automatically instead of asking him for his name).
Simple example workflow:
Replace in column A student names through student emails (the Gmail addresses with which the users authenticate their sessions and access Google Sheets)
Bind to the spreadsheet a script with a content similar to the following:
function doGet(){
var ss=SpreadsheetApp.getActive().getSheetByName('Data');
var range=ss.getDataRange();
var values=range.getValues();
var user=Session.getActiveUser();
var output="";
for(var i=1;i<ss.getLastRow();i++){
if(values[i][0]==user){
for(var j=1;j<ss.getLastColumn();j++){
output+=(values[i][j])+" ";
}
}
}
return ContentService.createTextOutput(JSON.stringify(output));
}
Make sure that you have a doGet() function and a return statement.
After running the script once manually to trigger authorization flow, deploy it as a Web App - executing it as User accessing the web app and giving access to Anyone (unless desired otherwise).
Copy the URL of your WebApp and forward it to your student.
When the student open the URL in their browser - they will obtain their results - provided their email is listed in the sheet.
Please note that the code provided is a simple sample, that retrieves
all data and outputs it as a string. Feel free to modify the script
e.g. retrieving only columns of interest and outputting the data as a
html table, rather than a simple string.

iTextSharp edit generated PDF and save back to database

I have process that I want to do that I'm not sure it is possible. I am using iTextSharp to generate and populate a PDF with collected data that a user has entered in a previous screen.
Then the PDF is saved to a SQL Server Database as binary data. Then it is pulled back for the user to view in the browser if they would like too.
It is possible to generate the PDF, do not flatten the form, and then allow the user to edit areas that may have not been prefilled by the users information. Then I will need to be able to save this back to the database.
I have some findings on using a adobe submit button that submits the pdf to a URL that would collect the data, but I want to know if iTextSharp is capable of this. Using ASP.NET or another example.
I do not want to save the form field information, but save the whole pdf to the database with some sort of submit button.

Address on Zend_Form using Google Maps API

So I'm new to both Zend and to Google Maps API, I want to create a form. Where the user inputs an address in a field (probably an field completely outside of the "form") the address is being looked up on google maps, preferably realtime but could also be done with a "search address" button. When user is happy with shown address, he submits form and address (or long/lat, whatever is best) is extracted from google map api and saved along with additional form data to database. How would this be done in the best way?
The easiest way would be to add two hidden fields to your form (lat/long) and handle the textfield in javascript. So when the user finished typing the address you start an ajax-request and write the resulting lat / long values in the hidden fields.
When submitted you should check the form and look for filled values in the lat / long fields. If they are missing show an error message to the user.

How does foursquare add a custom image annotation on their Open Graph map?

When foursquare works with Open Graph after a user has performed a checkin on their application (and assuming said user is linked to Facebook), foursquare posts to Open Graph a sample of this checkin data. What's interesting is that they do not have a standard map. Their map has a pin point on it in which an annotation embeds a custom image. It looks a little something like this:
I'm curious how this is done? I can get a regular map to show up with a pin point or a simple image view, but I can't get this custom annotation embedded within a map view.
From what I can tell, there is nothing in the documentation which shows how to further customize the Map layout or add any additional meta data to a GeoPoint object in order to get this additional functionality.
It's currently only in use by Foursquare - effectively it's a test right now.
There are plans to open it up more widely but there's nothing to announce right now - it'll be announced on the blog when opened up further - https://developers.facebook.com/blog/